Technical documentation

Respecting the course

Why Simeon waits until training is off, why there's a local option with Ollama, and why we removed sharing plans during beta testing. · 3 November 2026

Download for your agent (.md)

The whole entry as Markdown, to give to Claude Code, Codex or Cursor: paste it in, or put the file in your project.

The idea in one paragraph

A course's slides, past papers and solutions belong to the school and their authors. A student can use them for their own revision, but that doesn't make them Simeon's to pass around, or an AI company's to learn from. So Simeon holds one position: each student uses their own course, on their own computer, for their own revision. Three decisions come from that. Before Claude or ChatGPT reads a course, Simeon waits until the student says training is off. There's a local option, Ollama, where the course never leaves the computer. And during beta testing we removed sharing plans, even though it was the easiest way for Simeon to spread.

1. Why we insist on training off

To build a plan, Claude Code or ChatGPT Codex reads the course and sends what it reads to its company, under the student's own account. On personal plans, both companies may train their models on that content unless the student turns it off. A student who agreed to that for their own chats never decided it for a lecturer's slides, and arguably it isn't their decision to make. Once content has gone into training, there's no taking it back out.

The setting takes a minute, costs nothing and doesn't change the plan. With so little on one side and so much on the other, we stopped treating it as a preference.

Our first version, in October 2026, was a suggestion: a note with a Not now button. A note like that is easy to press past on the way to the thing you came for, and the course is already on its way by the time you think about it. So since November the job waits. Before Simeon reads your course comes up before a build, an update, flashcards or a summary, and it only ends in one of two ways: I understand, and training is off, or Cancel. Open the setting goes straight to the company's page and leaves the pop-up where it is.

Assistant The switch Turn it off, and
Claude Code claude.ai: Settings → Privacy → Help improve Claude Anthropic keeps chats and coding sessions for 30 days instead of up to 5 years
ChatGPT Codex chatgpt.com: Settings → Data controls → Improve the model for everyone OpenAI won't train on new conversations; how long it keeps them is under its own policy
Ollama None needed No AI company sees the course

Three details of how it's built:

What it can't do. Simeon can't see the setting, so "training is off" is the student's word. We could only make it a real lock if we could read their account, and we don't want to. And turning training off isn't the same as nothing leaving the computer: the course still goes to the company to do the work, and it's kept there for a while under their terms. For anyone who wants more than that, there's section 2.

2. Why there's a local option

Some students won't want a course on a company's servers, whatever the setting says. Some schools' rules may not allow it. And some students don't pay for an AI subscription at all. Ollama answers all three: the model runs on the student's own computer, free, with no account.

The promise is simple to say and took some care to keep. Simeon runs Codex against a local model, and we found that a Codex signed in to ChatGPT still talks to chatgpt.com, even when its model is local: we saw 8 to 10 connections a question. So Simeon gives Codex its own folder when it runs on Ollama (CODEX_HOME), one that has never been signed in, and then it talks only to Ollama on the same computer. If you make the same promise in your own software, watch the network to check it.

It's offered, not pushed, because it costs something, and we say so:

The local option is also why training off can be a firm rule. A student who won't or can't turn it off, or who'd rather nothing left at all, still has a way to use Simeon.

3. Why we removed sharing plans

Simeon used to turn a plan into a file a friend could open and add to their own copy. One plan for a course is useful to everyone on that course, and it was our best idea for how Simeon would spread through a class.

We took it out during beta testing, in v2026.10.26. A plan holds the course's questions, model answers and marking points. On a student's own computer, for their own revision, that's private study. Sent to the next person, it's distribution, and a button in the app would have made Simeon the thing doing it. No wording or limit on the file changes that, so we removed the feature instead of adding terms to it.

It also made the app simpler to secure. A plan from someone else is untrusted input to a page that can talk to the app, and every string in it had to be cleaned. With sharing gone, a plan from a stranger has no way in. (A plan restored from a recovery code still goes through the same cleaning.)

The cost is real. A friend now has to install Simeon and build a plan, where before they could open a file, and study groups can't work from one copy. We think that's the right trade.

4. What we don't claim

Reusing it in other software: a recipe

If your product hands someone else's material to an AI:

  1. Work out whose material it is, and write down the one sentence you'll hold to. Every decision here came from ours.
  2. Check what's on by default on the user's account. If their chats can train a model, your product is what puts the material there.
  3. Make the job wait. Say it before the first job, link straight to the setting, and don't start until they answer. Keep the answer on their computer.
  4. Offer a way that sends nothing, and be plain about what it costs. That's what makes a firm rule fair.
  5. Watch the network before you promise that nothing leaves.
  6. Don't build the feature that turns private use into distribution, however well it would spread your product. Send people to your product instead of to the material.

Sources

Where to look in the code

What File
The pop-up, and the job waiting on it local/mac-app/Sources/AITerms.swift; aiTermsSheet in desktop/
Where the switch is, and the student's answer local/mac-app/Sources/Training.swift
Ollama: Codex never signed in, and which models fit local/mac-app/Sources/Assistant.swift (ollamaCodexHome, ollamaBudget); desktop/src-tauri/src/assistant.rs
/import answering 410 local/mac-app/Sources/AskServer.swift
Cleaning a recovered plan src/import_plan.py (clean_plan)
Tell a friend shareSimeon and dashShare in src/build_app.py; Links.shareSimeon in the Mac app