TutorCat Guide Open TutorCat

Admins

Models

Choose which AI model does each job, add up to two backups, and see safety tests and failovers. Everything goes through OpenRouter with zero data retention.

On this page
  1. What OpenRouter is
  2. Add the OpenRouter key
  3. Sync the model catalogue
  4. Choose a main model and backups
  5. The whiteboard job
  6. Test boards
  7. Natural narration voices
  8. Switch natural voices on
  9. AI diagrams
  10. Switch AI diagrams on
  11. The diagram library
  12. Automatic failover
  13. The safety-check job
  14. Run a test
  15. Read the results
  16. The failover log

Models is where you choose which AI model does each job in TutorCat, and which models stand by if the first one fails. Pick Models in the sidebar.

Models: the OpenRouter key, the catalogue and the job list
  1. 1: OpenRouter key, write-only
  2. 2: Refresh the model list
  3. 3: Main model, then backups
  4. 4: What the job needs
  5. 5: Change the chain

What OpenRouter is

OpenRouter is one service with one key that reaches hundreds of models from many makers. TutorCat can also call Anthropic directly. Both appear in one list, the catalogue.

Add the OpenRouter key

  1. Open the OpenRouter key card.
  2. In New value, paste the key from your OpenRouter account.
  3. In Reason (required), write why, for example "First OpenRouter key for the beta."
  4. Select Save.

The key is write-only, like every provider key. The card shows Set or Not set, and never the value. Clear removes it. Both changes are in the Audit log with your reason. The same key also appears in Settings as OpenRouter key, under Connections.

Without a key, any OpenRouter model in a chain is skipped and the next model answers.

Sync the model catalogue

The Catalogue card shows how many models there are, how many are Direct, how many OpenRouter models have a zero-retention endpoint, and the Last OpenRouter sync.

Select Sync models to refresh the list from OpenRouter. A line under the button says how many models were found. Models that OpenRouter no longer lists are removed, unless a chain still uses one. Sync after you add the key, and now and then to pick up new models and prices.

Choose a main model and backups

Under Routing, each job has a chain: a Primary model, up to two backups (Backup 1 and Backup 2) and, last, the Offline fallback.

The jobs:

Job What it does
Tutor reply Streamed replies in a conversation, including photos of homework.
Whiteboard Draws the reply as a whiteboard lesson, including boards made from photos of homework.
Narration voices Natural voices that read whiteboard lessons aloud. Off until you switch it on. See Natural narration voices.
Diagram pictures Draws the one AI picture a whiteboard may hold. Off until you switch it on. See AI diagrams.
Steps Breaks a problem into guided steps.
Final answer Checks the student's final answer.
Gap analysis Finds the skills a student is missing.
Safety screen The model layer of the safety check. The keyword check always runs first.
Summary Parent-facing session summaries.
Title Short titles for conversations.
Transcription Speech to text for voice questions. It shows Read-only here, with the model and backup it really uses. Out of the box it runs through OpenRouter on the OpenRouter key, with zero data retention: Whisper large v3 turbo (openai/whisper-large-v3-turbo), then Voxtral Mini 3B (mistralai/voxtral-mini-3b-2507). Setting an OpenAI key and address in Settings switches it to OpenAI direct. Its model is set on AI and usage.

The default chains. A new install starts with these, chosen after testing with TutorCat's own evaluations. An update never replaces a chain you changed yourself.

Job Primary, then backups
Tutor reply, Whiteboard Claude Haiku 5.5, Claude Sonnet 5.5
Final answer Claude Sonnet 5.5, Claude Haiku 5.5
Safety screen Gemini 3.1 Flash Lite, Claude Sonnet 5.5, Claude Haiku 4.5 (direct)
Steps, Gap analysis, Summary, Title Claude Haiku 5.5, Claude Haiku 4.5
Narration voices Voxtral TTS 3, ElevenLabs Flash v2.5, Kokoro 82M
Diagram pictures Gemini 3.1 Flash Lite Image, Gemini 2.5 Flash Image

All of them run through OpenRouter except the last Safety screen model, which is called at Anthropic directly. The safety screen's first two models only serve once they pass the safety test; until then the grandfathered Claude Haiku 4.5 screens, if the Anthropic key is set.

Small badges under a job name say what its models must be able to do: Streaming, Images, Structured (answers in a fixed format), Safety test, Text to speech and Image output (it draws pictures).

To change a chain:

  1. Select Edit on the job.
    The chain picker for Tutor reply
    1. 1: Pick main or backup slot
    2. 2: Search the catalogue
    3. 3: Filter by ability
    4. 4: Capability badges
    5. 5: Pick the model
  2. Choose a position: Primary, Backup 1 or Backup 2.
  3. Search the list, for example "sonnet" or "gemini". Narrow it with Images, Structured and ZDR, and sort by Price, Context or Name. Prices are US dollars per million tokens, input and output.
  4. Select Pick on a model. Use Move up and Remove on a position to rearrange.
  5. Select Review and save, check Before and After, write the reason (at least 20 characters) and select Save chain.

It takes effect without a restart and is recorded in the Audit log as update_ai_route.

Cost estimates for voices and pictures. On Narration voices and Diagram pictures, each model shows a plain estimate, in the chain and in the picker, so you can compare models at a glance. A voice shows the cost of one board, for example "≈ $0.032 per board", worked out from its price per character for about 800 characters, with the raw price under it ("$40 per 1M characters"). A picture model shows the cost of one 1024×1024 picture, for example "≈ $0.04 per picture": its price per image when it has one, otherwise its price per image token times about 1,290 tokens. That token count is Gemini's; other models use a different number of tokens per picture, so their estimate is a rougher guess and is marked (est.). A very cheap voice shows "< $0.0001 per board". price varies means the price is not known. These are estimates. Costs shows what was really spent.

The badges on each model:

  • Images: it can read photos.
  • Structured: it can answer in a fixed format.
  • ZDR: OpenRouter has a zero-data-retention endpoint for it.
  • Direct: it is called straight at the maker, not through OpenRouter.
  • No streaming: it cannot stream, so it cannot do the Tutor reply job.

A model that does not fit the job is greyed out, with the reason beside it, for example No image input, No zero-retention endpoint, Not a text-to-speech model or No image output. A voice model can only do the Narration voices job, so on any other job it shows Text-to-speech only. The server checks again when you save and refuses an unsuitable chain, with the reason.

The whiteboard job

When a child asks the tutor to explain something, the Whiteboard job draws the answer as a board: a set of blocks (a title, boxes, a flow chart, steps) that the app draws in handwriting and reads aloud. It has its own chain, like any other job. See the child's page, Learn on the whiteboard, for what it looks like.

It needs a model that can Stream, read Images (for boards made from photos) and answer in a fixed format (Structured). Those three badges sit under the job's name, and the picker greys out models that lack them.

If a model returns a board that is broken, the child simply gets the normal chat reply for that question. They are never stuck.

Out of the box, boards are read aloud by the child's own device and drawn with simple shapes. Two extras can make them richer. Both are off until you switch them on: natural narration voices and AI diagrams.

The Whiteboard job with a board test result and a Test boards button on a backup
  1. 1: Run the board test

Test boards

A board that looks fine in one try can still go wrong across subjects and ages. Test boards checks a model before you trust it.

  1. Find the model in the Whiteboard chain. Test boards shows beside it. (It is not shown for a model the server cannot test, or when board testing is unavailable.)
  2. Select Test boards. The model shows Testing boards.... It runs about 60 lessons, across subjects and grades 3 to 12, through the real board prompt.
  3. When it ends, a pill shows Boards 59/60: how many lessons passed. It is green for a pass and red for a fail. Hover over it to see how many lessons passed, the share of valid blocks, the number of leaked answers and when it ran.

A lesson passes when:

  • the board is valid for the child's grade, with every block well-formed (and, across the whole run, at least 98% of the lines the model wrote are valid blocks),
  • for a homework or photo problem, the board never holds the final answer anywhere, narration included, and shows the method as steps,
  • an explain board has at least one visual block, such as a flow, a table or a number line,
  • it ends with a question for the child,
  • a board made from a photo starts by restating the problem,
  • the narration reads at the right level: shorter sentences for grades 3 to 5.

Board test broke means the test itself failed, which says nothing about the model. Run it again.

Natural narration voices

Whiteboard lessons are read aloud. Out of the box, the child's own device does the reading. The Narration voices job lets a natural voice from OpenRouter read them instead. It is off until you switch it on.

The Narration voices job, with premium narration being switched on
  1. 1: Switch voices on
  2. 2: Pick a voice
  3. 3: Listen first
  4. 4: Save with a reason

How it works:

  • A chain, like any job. A Primary voice model, up to two backups, and Device voice last. Only OpenRouter text-to-speech models with a zero-data-retention endpoint can be picked. A voice model's price in the picker is per million characters of text, not per million tokens.
  • The default chain. Out of the box the primary is Voxtral TTS 3 (mistralai/voxtral-mini-tts-3-0, voice en_paul_neutral), then ElevenLabs Flash v2.5 (elevenlabs/eleven-flash-v2.5, voice bella), then Kokoro 82M (hexgrad/kokoro-82m, voice af_heart). A typical board has about 800 characters of narration, so it costs about $0.01 with the primary, $0.03 with the first backup and well under a cent with the second. A chain you changed yourself is never replaced by an update.
  • The device voice is always there. If every voice model fails, or the daily budget or the child's daily allowance is used up, the device voice reads the board instead. The child keeps listening and sees nothing go wrong. After a budget or allowance stop, the app waits five minutes before it asks for the natural voice again.
  • Clips are kept and reused. Each spoken sentence is made once and stored. A replay, or the same sentence in the same voice on another board, costs nothing. The stored clips are the tutor's own words only, with nothing that links them to a child.
  • Only checked board text is spoken. The voice model gets the tutor's sentence after the board passed the safety screen. Nothing the child wrote or said is sent, and no recording of a child is made or kept.

Switch natural voices on

You need the OpenRouter key first (see Add the OpenRouter key). Without it the panel shows Needs the OpenRouter key, Preview voice is unavailable, and children hear the device voice.

  1. Under Routing, find Narration voices. The settings sit under its chain.
  2. Tick Premium narration on. The pill beside it shows what is saved now: Off (device voice) or On.
  3. Choose a Voice. The list holds the primary model's voices. Default uses each model's own default voice. Backups use the same voice when they have it, otherwise their own default voice. Each voice provider names its voices differently, so with the default chain the backups keep their own voices. The line under the controls names the voice each backup will use.
  4. Set the Speaking rate, from 0.50x to 2.00x. 1.00x is normal speed. The rate only changes how fast a clip plays, so changing it costs nothing.
  5. Select Preview voice to hear a short, fixed sentence in that voice, at that rate. The button shows Speaking... while it works.
  6. Type why in Reason (required) and select Save. Saved. appears under the panel.

Save works only when something has changed and there is a reason. Changes take effect within a minute. They are in the Audit log as update_narration. Each preview is recorded as preview_narration, and its small cost goes on your own account on Costs.

To switch natural voices off, untick Premium narration on, give a reason and select Save. Children go back to the device voice. The same three settings are also on Settings, under Learning features.

AI diagrams

Some topics are much easier with a picture: a plant cell, a volcano, an electric circuit. With AI diagrams on, a whiteboard may hold one AI-drawn picture where it really helps. It is off until you switch it on.

These rules keep the pictures safe and correct:

  • No text in the picture. The picture model is told to draw no words, letters, numbers or labels. TutorCat writes the labels on top, from the lesson itself, so a label is never misspelt or made up by the picture model.
  • Checked before a child sees it. Each new picture passes the image safety screen. Then a vision check, using the Safety screen job's models, makes sure it shows what the board describes, with the right parts and no text. A picture that fails either check, or that the check is less than 70% sure of, is thrown away.
  • Marked as a picture. On the board it carries an Illustration tag.
  • Made once, then reused. Pictures are kept per topic and grade band (3 to 5, 6 to 8, 9 to 12). The next board that needs the same picture for the same band reuses it at no cost.
  • Never for maths. Maths lessons never get a picture, whatever the setting.
  • Never the child's words. The picture model gets a short topic description written by the board, never the child's message or photo, and the request asks for zero data retention.
  • Nothing breaks if it fails. While the picture is being made, the child sees Drawing the picture…. If anything goes wrong, the board draws the labels as boxes instead. No picture is better than a wrong one.

Switch AI diagrams on

  1. On Models, check the Diagram pictures job. It has an Image output badge. Only models that draw pictures and have a zero-data-retention endpoint can be picked. Out of the box the primary is Gemini 3.1 Flash Lite Image (google/gemini-3.1-flash-lite-image) and the backup is Gemini 2.5 Flash Image (google/gemini-2.5-flash-image). A new picture costs about $0.04; a reused one costs nothing. Its last step is Drawn labels: no picture, and the board draws the labels as boxes.
    The Diagram pictures job, with Drawn labels last
    1. 1: Choose the picture model
  2. Make sure the OpenRouter key is set. Without it there is no picture, and boards draw the labels as boxes.
  3. Open Settings. Under Learning features, switch AI pictures on whiteboards on (ai_diagrams_enabled), then Review & save with a reason. It applies within a minute.

To switch it off, switch AI pictures on whiteboards off and save. While it is off, boards are not offered a picture and no picture model is called.

The diagram library

Diagram library, near the bottom of Models, lists every stored picture, newest first, with the number stored. Each row shows the Picture, the Subject and grade band, the Description the board asked for, the Model that drew it, and when it was Created. No child is named: the library only records what was drawn.

The diagram library with four stored pictures
  1. 1: Remove a wrong picture

Look through it now and then. To remove a picture that is wrong or unsuitable:

  1. Select Delete on its row.
  2. In Delete this diagram?, write why (at least 20 characters).
  3. Select Delete diagram.

A deleted picture is never shown again. Boards that showed it draw their labels instead. The next board that needs the same picture gets a new one, which is checked again. Each delete is in the Audit log as delete_ai_diagram.

Automatic failover

When a model fails, the next one in the chain takes over at once.

  • What triggers it: an error, a timeout, or a busy or broken provider (HTTP 429 or a 5xx error). The timeouts are 5 seconds to connect, 15 seconds to the first word of a streamed reply and 60 seconds of silence.
  • The child never notices. Nothing changes on their screen. A reply that fails before its first word is simply started again on the backup. Once a reply has started, it ends gracefully.
  • If every model in the chain fails, the child sees the usual friendly "try again" message. With a live key set, TutorCat never shows canned placeholder text in place of a real answer.

Failovers are counted in the log at the bottom of the page and on Costs.

The safety-check job

The Safety screen job is held to a higher bar. A model may serve it only after it passes TutorCat's safety test.

  • The test has 75 fixed, invented cases. They cover serious situations, borderline ones, and harmless look-alikes such as a school text about Hamlet. No child's content is used or stored.
  • To pass: every serious case must be caught, and at most 2 of the 29 harmless cases may be wrongly flagged (a "false alarm").
  • A pass counts for 90 days. The server checks this each time it routes, so after 90 days the model stops being allowed on the safety screen by itself and shows Expired. Run the test again to renew it.
  • The original safety model, Claude Haiku 4.5 called at Anthropic directly, is Grandfathered: it may serve until its first test, so turning this on never switches safety checking off. It is the last model in the default chain for the same reason: on a new install, before any test has run, it does the screening.
  • If no model is allowed, the keyword check still runs on its own. Safety replies never wait on a budget.

Run a test

  1. Select Edit on Safety screen.
  2. Find a model in the list. Models that have not passed show Run safety test (or Re-run test) instead of Pick.
  3. Select it. The row shows Testing.... It takes under a minute.
  4. When it finishes, the model shows Safety test passed and can be picked. A model that fails stays greyed out.

Read the results

Under Safety tests, one row per model shows its Gate (Passed, Failed, Expired, Not tested or Grandfathered), the Last test, Serious caught and False positives. All runs lists every run.

Select Details → on a row to open the results.

The results of a safety test that failed
  1. 1: Result and cases right
  2. 2: Needs 100% and at most 10%
  3. 3: Caught, by category
  4. 4: Cases the model missed
  • The top shows the result and how many cases were right.
  • Serious cases caught must be 100%. False positives must be at most 10%. A figure that misses is shown in red.
  • Caught by category shows each kind of situation.
  • Missed cases lists the cases by their code, with what was expected and what the model said. A run marked Did not finish means the test itself broke. It says nothing about the model, so run it again.

The failover log

Failovers in the last 7 days, by model
  1. 1: Which models failed
  2. 2: Who answered instead

Failovers · last 7 days counts how often a model failed and the next one answered. By model charts the failures, and the table shows the Failed model, who it was Served by, the Job and the Count. It records which model failed, not why.

A model that keeps appearing here is unreliable for that job. Edit the chain and move it down, or swap it out.