Skip to content

Creating a shared code

Once an activity is ready, you hand it to a class as a code: a short link that opens the activity for anyone who has it. Creating one takes a minute, and you can create as many codes for the same activity as you like, for example one per class.

The activity’s YAML file must be reachable at a public web address. There are two ways to get one:

  • Host the file yourself, for example in a public GitHub repository, and use the raw file address.
  • Upload it to Novedu’s file store. Every stored file gets a public address, and the file list offers a Create code shortcut that opens the create form with the kind and the address already filled in.

Novedu checks the activity file before storing anything. If the file has errors, the form lists them and no code is created; fix the file and submit again.

  1. Open Codes and select New code.
  2. Under Activity, pick the kind of activity: tutor, quiz, writing, or coding.
  3. Paste the file’s address into Activity YAML URL.
  4. Add a Note for yourself, for example “3AHIF linked lists exercise”. Only teachers see it; it labels the code in your list.
  5. Set Available from and Available until if the code should only work during a certain time. Both fields use your local time, and either may stay blank to leave that side open. The Now, +1h, +1d, and +1w buttons fill common values.
  6. Fill in the LLM override only if this one code should run on different AI settings than the activity file names.
  7. Select Create code.

The override section has three fields and a row of buttons:

  • LLM provider override and LLM model override, two free-text fields. They always go together: fill in both, or leave both blank. The provider is one of SCCH, Azure Foundry, or OpenRouter, written exactly like that.
  • Reasoning (optional), a dropdown that starts on Provider default and offers the thinking-effort levels none, minimal, low, medium, high, and xhigh. A level only works alongside a provider and a model; on its own it is rejected. Not every model accepts every level, and some ignore the difference between them, so the chapter on choosing an AI model is worth reading before you set one.
  • Preset buttons that fill the whole override in one click, one per common combination, covering all three providers: OpenRouter · GLM 5.3 Flash, for example, fills in the provider OpenRouter and the model z-ai/glm-5.3-flash. A preset for a reasoning model sets its level too, a preset for a plain model puts the dropdown back on Provider default. Clear empties all three fields, so the code uses the activity’s own settings again.

The override replaces the activity file’s whole llm: block for this code. If the activity file sets a reasoning level and you leave the dropdown on Provider default, the code runs without one. Repeat the level in the override whenever you want to keep it. The chapter on choosing an AI model explains the settings themselves.

One thing to keep in mind when you override: SCCH, the school’s Austrian LLM hosting partner, doesn’t bill per use, but Azure Foundry and OpenRouter are both paid per use, and a high thinking effort multiplies what a lesson costs on them. Pointing a code at either one is a spending decision as well as a quality one.

Novedu generates the code text for you, a short random string; you can’t choose your own. After creating it you land on the code’s page, which shows the full link with a copy button. Share it however you reach your class: paste it into your learning platform, show it on the projector, or write it on the board. Students can also type just the code on the Novedu start page.

For a coding activity, opening that same link is how a student picks up the personal key their coding tool needs; the chapter on connecting a coding activity covers that step.

What you can change later, and what’s fixed

Section titled “What you can change later, and what’s fixed”

You can reopen any code from the list and edit three things at any time:

  • the note,
  • the availability window,
  • the model override.

Three things are fixed when the code is created and never change: the kind of activity, the activity file’s address, and whether the activity records who did what (anonymous or per-user, taken from the activity file at creation time). To share a different file, create a new code.

The code points at your file, not at a copy of it. If you edit the activity file itself, students get the new version the next time they open the link.

The Codes page holds every teacher’s codes, and it opens on your own: the Owner box starts on your name. Pick All owners to see the whole staff room’s codes, pick a colleague to see only theirs, or select Clear to come back to your own. You can also filter by note or code text and by kind of activity, and sort by any column header.

A code’s owner is the teacher who created it, and that never changes. Every teacher can still open, edit, and delete any code, so ownership is a way to find your own work quickly, not a lock.

If you’re comfortable with a terminal, the Novedu CLI creates codes too, with the same checks as the web form. Sign in first with novedu-cli login, then:

Terminal window
npx @novedu/cli codes create --module quiz \
--file https://raw.githubusercontent.com/Teaching-HTL-Leonding/novedu-chat-mvp/refs/heads/main/activities/examples/sorting-algorithms/sorting-quiz.yaml \
--note "3AHIF sorting quiz" \
--start 2026-07-07T08:00:00Z --end 2026-07-07T10:00:00Z

--start and --end take ISO 8601 times with an explicit offset (the Z above means UTC) and may be left out for an open-ended code. --llm-provider and --llm-model set the model override, always together, and --llm-reasoning adds a thinking-effort level (none, minimal, low, medium, high, or xhigh) on top of that pair; without the pair it is rejected, and left out it drops whatever level the activity file sets. novedu-cli codes list shows your codes.