tauko turns the time I spend waiting for Claude Code into short study sessions. When I send a prompt, a flashcard opens in a pane next to the chat. I answer one or two cards, and when Claude finishes, the pane tells me and I go back to work. The source and installer are on GitHub.
Why I made it#
I wrote about this in I Don’t Need AI for That: I give a task to an AI agent, and while it writes the code, I open TikTok. It happens many times a day. Each wait is only thirty seconds or a couple of minutes, but together they add up to an hour or more.
I didn't want to stop using agents. I wanted those gaps to leave something behind. Spaced repetition already works well in small sessions, and I'm learning Finnish, so I tried putting flashcards exactly where the phone used to be.
The name is Finnish for "a pause".
The wait is the trigger#
Study apps need me to decide to study. tauko doesn't: the Claude Code plugin opens the pane when I press enter and shows "Claude is done" when the turn ends. The status line under the prompt shows how many cards are left today.
One card takes 5 to 20 seconds. If Claude finishes in the middle of a card, I can leave it; nothing is lost and the card comes back later.
Answering a card#
I type the answer and press enter. The check ignores case and punctuation, and a missing accent or a single typo counts as "almost" instead of wrong. That matters for languages: cene instead of cené is close, but it is a different word.

After each answer I grade the card from Again to Easy. tauko uses FSRS, a spaced-repetition scheduler, to decide when I see it next: minutes for new cards, weeks for cards I know well. Pressing e asks Claude to explain the answer I actually gave, and k retires a card I already know.
Learning, not only testing#
Flashcards are good at keeping what I've already met, but they don't introduce new ideas. So a course can start each idea with a short lesson of 40 to 80 words, which takes under 40 seconds to read. A quick check follows, and then the spaced cards take over.
Making a course#
A course is a folder of JSON files, so I can write one by hand. Usually I ask Claude instead:
tauko gen "Spanish for travellers" -level A2
Claude drafts the lessons and cards. A second, independent pass checks every answer and fixes wrong or ambiguous cards. tauko then runs its own checks on the result: unique IDs, one blank in each fill-in card, and the rest of the course format.

Since version 0.5, I can do the same from the pane. I type a topic, keep working, and the new course opens in the pane about a minute later. With no courses installed, the pane starts on this screen, with the public gallery one press away.

How it is built#
tauko is a single Go binary. A small local server holds the scheduler and a SQLite database, and every client talks to it over HTTP: the Claude Code pane, the terminal, a browser page, and my phone over Tailscale. My progress stays in ~/.tauko on my machine. There is no account and no telemetry; it only goes online to download gallery courses and to call Claude.
What I want to improve#
Generated courses are drafts. The verification pass catches a lot, but a wrong or awkward card still gets through sometimes, and today the fix is editing the JSON. I want a key for "my answer was right" that adds the answer to the card.
I also want to match the material to the wait: a lesson when Claude is working on something long, a quick review when it isn't. And I want to try quizzes about the code Claude has just changed, so I keep my own skills while the agent writes code.
If tauko helps you too, you can leave a tip.