Bring any model. Keep your record.
The app owns the structured learning record. Models and agents are interchangeable workers on it, so nothing about your learning lives in a vendor's memory feature.
Fifteen ways in, today.
Every provider the app connects to now. More are on the way, and any OpenAI-compatible endpoint already works.
- AnthropicHosted
- OpenAIHosted
- Google GeminiHosted
- OpenRouterGateway
- OmniRouteGateway
- GroqHosted
- MistralHosted
- DeepSeekHosted
- xAIHosted
- Together AIHosted
- FireworksHosted
- CerebrasHosted
- OllamaOn your machine
- LM StudioOn your machine
- Any OpenAI-compatible endpointAny address
Three ways in, often confused.
They run in different directions, so each is stated on its own.
Bring your own model
Rheticus calls a model
Paste a provider API key, use a router such as OpenRouter, or point the app at a model on your own machine. Add several keys to one provider and they are used in turn.
Connect an agent
An agent calls Rheticus
The app runs a small MCP server on your machine with a handful of scoped learning tools. Claude Code, Codex and other MCP clients can read your plan, fetch your next task and record an attempt.
Just use the files
Anything reads Markdown
Export a track, or everything, to plain Markdown with front matter. Any editor or agent can read it without Rheticus installed.
What this does not mean: Rheticus does not embed another product's interface, and it cannot use a consumer chat subscription as an API.
What each job asks of a model.
Some work needs a capable model. The planner, the schedule and every question code can mark need none at all.
| Job | Structured output | On a small local model |
|---|---|---|
| Curriculum Architect: mapping a field | Needed | Often struggles |
| Tutor: teaching a lesson in parts | Needed for the plan | Usually manages |
| Assessor: writing questions | Needed | Sometimes |
| Assessor: marking | Needed for written answers | Code marks what code can |
| Planner, schedule and reviews | No model at all | Always works |
The MCP server: small on purpose.
Off until you turn it on. Agents get a few tools and only the access you grant, one agent and one tool at a time.
get_capabilitiesWhat this agent may do, and the rules agents follow
Readlist_tracksYour tracks, with counts per mastery state
Readget_track_planModules and lessons, with states and what each needs first
Readget_competencyOne lesson: state, misconceptions, recent attempts, next review
Readget_next_taskThe planner's next steps, each with its reason
Readsearch_libraryNotes and the sources you let agents read
Readrecord_attemptSubmit an answer. Code marks what code can
Writepropose_noteA note for your vault, waiting for your approval
Proposepropose_itemA practice question, waiting for your approval
Proposepropose_evidenceA mark. Always provisional, always under the agent's name
Propose
{
"mcpServers": {
"rheticus": {
"command": "rheticus",
"args": ["--mcp"],
"env": { "RHETICUS_MCP_TOKEN": "the token the app shows you" }
}
}
}Four permission modes
- Deny
- The tool is unavailable to this agent.
- Read
- Read tools return data. Private notes are never included.
- Propose
- Writes arrive as proposals you approve in the app. This is the default.
- Write
- Applies at once. Offered only for recording attempts and notes, never for evidence.
Not exposed at all: deleting anything, editing the curriculum, changing settings, reading keys, or raising a mastery state directly. Every call is logged on your machine.
The parts worth saying out loud.
Model independence comes with trade-offs. Here they are.
An API key is not a chat subscription
Providers bill API usage separately from their consumer chat plans. The app says so during setup, counts what each request cost, and stops at caps you set by day, week or month.
You see where your material goes
The model in use is always on screen, and you choose which model does which job: conversations, background work and search.
Keys stay out of reach
Keys live in your operating system's credential store. They are never written to the database, the logs, an export or a note.
Some tracks never leave
Mark a track as local-only and it refuses hosted providers and is invisible to every external agent.
Small models have limits
A small local model may not manage structured work such as mapping a field. The app says so plainly, and leans on questions code can mark where it can.
Agent evidence is always provisional
An outside agent is a model the app did not configure. Its markings move a state visibly as provisional and carry the agent's name.
Your model. Your agents. Your record.
Free during the early beta, with everything unlocked. Join the beta and the Windows build comes to you first.