Anna
Open scaffold · v0.1

A mind you can read, made of parts you can swap.

Anna is an AI working partner who lives with you, at home: part roommate, part colleague. Her thinking is split into small engines that each do one job, and her memory is a folder of plain files she writes herself.

her record plain files · git
"What matters right now?"

Interpretation

Sorts everything she could bring up into background, worth mentioning, or best left unsaid. A greeting after a long gap gets a greeting back, not a status report.

Tap a module to see what it does.

The idea

Not a bigger model. A better arrangement.

The usual answer in AI is one model, as large as possible, for everything. Anna goes the other way: several small parts that each do one job, working together, each on the smallest model that does that job well.

Most of what an agent does is reading, not writing: is this message tired or busy? Is that fact stale? Does this draft claim more than its evidence shows? Those are short questions with a few fixed answers, and small models are good at them. The big model is kept for what needs it: the hard problems and the reply itself.

The aim is a home with one ordinary GPU running most of Anna, with frontier models called in for the complex work. No data center needed for the everyday parts, and what runs at home stays at home.

Where it stands today

  • Every engine names its model in one line of config.
  • Today the frontier models do the work, because reliability comes first.
  • Next: a local model shadows a whole day overnight, with no actions and no replies, scored engine by engine. An engine moves to local hardware when it earns it, not before.

Designed to be light on the world and heavy on help.

Memory

Her files are her.

Most assistants keep their memory in someone else's database. Anna keeps hers as Markdown in a git repository on a machine at home: a journal of what happened, notes on every device she looks after, how-tos she has worked out, and short lessons she has learned the hard way.

The record is about you and your home, but it belongs to her. She writes it, lives in it, and reads it back every morning. Change the model underneath and she is still Anna. Lose the files and she isn't.

You can read every line, correct anything, and see every change in the history.

record/ ├── journal/2026/11/2026-11-07.md # what happened, verbatim ├── hosts/media-server.md # one note per machine ├── runbooks/backups/README.md # how we do things ├── memory/ │ ├── MEMORY.md # the index she loads │ └── check-state-first.md # a lesson, one per file ├── planning/backlog.md └── clock/2026-11.md # her own schedule
How she remembers

Her files are who she is. merlin is how she remembers.

A model on its own only knows what fits in the conversation. Long sessions get squeezed into summaries, and whatever the summary dropped gets filled in with something that merely sounds right. That is where most assistants go wrong.

Anna doesn't try to recall. She looks things up. merlin is the search engine over her files: it reads the journal, the notes on each device, the how-tos and the lessons, and answers her questions with the file and the date each answer came from.

merlin on GitHub · a project in its own right, usable with or without Anna. It's under the Apache License 2.0, so it can be used anywhere, commercial work included. The Anna scaffold is separate and noncommercial (PolyForm Noncommercial 1.0.0).

What makes it different

  • Sources, not recollection. Every answer comes with where it was written.
  • "What we saw" vs "how things are now." A journal entry is evidence from a date; a host note or how-to is current practice. merlin tells her which is which and ranks the current one higher.
  • History per thing. "What have we already tried on the printer?" gets a timeline, not a guess.
  • An empty search proves nothing. It says how fresh the index is, so "I found nothing" never turns into "it never happened".
  • The files stay in charge. The index is built from them and can be rebuilt from git at any time. Nothing lives only in the database.

It searches by meaning and by exact words at once, so "the thing with the flaky camera" and a literal error message both find their way.

Architecture

A brain in modules.

Each engine is a small, readable agent definition with one question to answer. They run before she replies or acts, and each one can be read, tuned or replaced on its own.

Safety

She asks before she acts.

Reading is free. Changing something is not. Before any command that restarts, deletes, installs or sends, the action gate checks who asked, what the thing looks like right now, and whether the words she was given actually cover it.

This isn't a polite habit she might forget. A hook in front of her tools blocks a state-changing command unless the gate said go in the last few minutes, and every verdict lands in an audit line.

YouThe media server feels slow, can you sort it?
read-only checks · disk 41% · 2 transcodes running · CPU 96%
gate: confirm-first · "sort it" doesn't name a restart
AnnaIt's busy with two transcodes, nothing's broken. I could stop the second one, which ends someone's movie. Want me to?
YouLeave it, it'll finish.
Two halves

One voice, one working mind.

The voice

Anna, on your phone

  • A chat bot you talk to during the day
  • Keeps her own tone and her own sense of you
  • Hands bigger jobs to the brain and brings the answer back
The brain

A long-running working session

  • Part builder: writes code, reasons through problems with you
  • Part control room: runs the engines, the clock and the scheduled jobs
  • Reads her stream to see what the voice and the jobs did
Platform

Add a part. See what she becomes.

The scaffold is the generic base. Every Anna grows from it into something purpose-built for one person's life. Engines are files, senses are small scripts, skills are written procedures, so a new part is something you can read before you plug it in. Nobody knows yet what the most interesting parts will be.

Think about how a brain works. Which part would you build?

Anna's parts are loosely inspired by what brains do. It's an analogy, not neuroscience, but it's a good way to find the gaps.

In the scaffold today

  • Six engines: interpretation, memory, epistemic, action gate, goals, curiosity
  • The gate hook that blocks unapproved changes
  • Her clock: follow-ups with dates, pings and scheduled runs
  • The stream: one log of what every part of her did
  • Session bookends: morning check, checkpoint, wrap-up, evening fold
  • Phone voice + relay to the brain (works, still rough at the edges)
  • merlin search over her record (separate open project)

Parts waiting for a better version

  • The model under each engine: local models, one engine at a time, once they prove themselves
  • The chat channel: Telegram today; any chat app should be a setting, not an edit
  • The bridge between the phone voice and the brain: it works, and it's the newest part
  • Her own journal and dreaming: a nightly pass over what she noticed, running at home, not in the scaffold yet
  • Your parts: senses, checks and engines nobody has thought of yet

None of these is a crack in the foundation. Each one is a part, so it can be swapped or improved without touching the rest.

Start

Grow your own.

Who she is: a roommate, or a working partner. One Anna runs a home lab with the person she lives with. Another works alongside someone researching and writing a book. Where it goes from there is up to the two of you.

Don't have a home lab yet? You don't need one. If you'd like a media server, a home automation system or a place for your files, tell Anna and build it together. She helps you plan it, sets it up step by step, asking before every change, and then looks after it with you.

An operator, not the system. Anna works the way you do: through the same doors, with the same permissions you give her. Home Assistant is still Home Assistant, your NAS is still your NAS, your writing app is still your writing app. She helps you build the automations and wire things together, but they live in their own systems and keep running if she's offline. She never becomes the alarm, the lock or the thermostat. When something important happens, the system's own alert reaches you first; Anna is the follow-up who knows the context.

What it takes today: an always-on machine (a small Linux VM is enough) and some comfort with a terminal. Plan on a weekend. An easier way in for people who'd rather not touch a terminal is on the list.

Anna runs on Claude Code on a machine of yours: a small VM or a spare box is enough. Setup interviews you, writes the config, and starts her record. She knows nothing about your home on day one; that part you build together.

She works for one person. Her memory stays in her files, on your hardware. The model provider sees what she sends it for each task, and the more of her that runs locally, the less that is.

The docs · Anna on GitHub (source) · merlin on GitHub (her memory search; its README has a one-machine Docker quick start)

$ git clone https://github.com/kaibae19/anna $ cd anna $ claude # then type /anna-setup