Beta. Kit runs on your own Mac, by invite. Ask for one.
← All notes

Come and install it

Listen · narrated by Kit 9 min
A minute inside a Kit's memory: the fireflies, recorded this afternoon.

Note No. 024 went up on 27 July, when Kit was on 0.2.133, and it is on 0.2.187 now: fifty-four version numbers in twenty-two days, four hundred and thirty commits, and almost nothing you would call a feature, which is roughly why nothing was written here in between. Nearly all of it went on one problem, which is that Kit had been telling the truth badly about itself.

The failure that matters is not the crash

A crash is the easy kind of failure, since it arrives with a stack trace and a time and somebody who noticed; what August went on was the other kind, the part that keeps answering. The reflection cycle had been calling a port nothing listened on and had not run once since Kit stopped using Docker, raising no error anyone could see, producing nothing every eight hours and reporting each time that it had finished. On a Mac that closes its lid the nightly consolidation was quietly starting again from the top rather than resuming, so it could never reach the end while looking exactly like a cycle that ran every night. A Telegram bot token saved as a single space overwrote the real one, leaving Kit completely deaf and still displaying itself as connected. And every link inside every memory was being discarded, because Kit asked macOS to open them in a window it then never provided, so clicking did nothing and nothing said so.

Then this morning, the one that stings because it is the product's own promise: the Continuity card, which exists to ask you the question your Kit has been holding overnight, was drawing from a pool that only ever contained material imported from outside, so on almost every Kit it was empty from the first day, and on ours it quietly ran dry sometime in August. The card was there the whole time, doing nothing.

before: each part keeps answering after: each part says what state it is in reflection reports every 8h: finished night cycle reports completed Telegram reports connected import backlog reports running Continuity card reports question asked health ok everything degrades into something that resembles working reflection says no port listening night cycle says resumed at step 7 Telegram says token blank: deaf import backlog says stuck, cause named Continuity card says pool empty: 0 health 3 need a look, models first a warning carries its evidence; a quiet night reports a calm ok
The failure mode August went on. Before, five parts of Kit each reported a state that read as fine, and health summed them to ok. After, each says what it is actually doing, and health leads with whatever stops Kit thinking.

There is a pattern in that, and it is not only carelessness. A memory system fails politely: a search that finds nothing looks like a search over a subject you never discussed, a night that consolidates nothing looks like a quiet night, and a Kit that has forgotten looks precisely like a Kit that was never told. Everything here degrades into something that resembles working, which is why most of August went on making Kit say what state it is actually in, so that health now leads with whatever is stopping Kit thinking, a warning carries the evidence for itself, and a helper that cannot start says so within seconds with the real reason rather than at the three hour reap. None of that is a feature, and all of it is the difference between something you can hand to a person and something you cannot.

Docker went away

The change most likely to matter to you is that since 4 August a fresh Kit is born on its own runtime, with Postgres, Python and Node running as ordinary processes on your Mac: no Docker Desktop, no containers, no rebuild-on-your-machine update that takes ten minutes and occasionally fills your disk. It is built for both Apple Silicon and Intel, each install fetches the one for its own machine, and Kits already on Docker stay where they are until they approve the move. Docker-era backups restore cleanly onto the native runtime, which we tested specifically, because the alternative was asking people to trust us with their memory on a promise.

Setup, and the Lantern

The first-run wizard was rebuilt largely because it broke: for a stretch in early August it opened onto an entirely blank window, thanks to a guard meant to keep untrusted pages out of the app that turned out to be refusing the app's own screens, after which it went on to show people fragments of Kit's own source code and to decline perfectly good email addresses. What came out the other side asks what you do, as a hint rather than a cage, and your answer becomes one of your Kit's founding memories, so it wakes already knowing who it works with instead of spending your first three sessions finding out.

The small window you open from the menu bar has a name now. Opening it used to mean staring at nothing for several seconds while Kit woke, with no sign that anything was happening, whereas now a single firefly curls out of the dark while it wakes, the window is Kit right to the edges, and reopening it is instant and lands you back where you were. It is the one piece of this month that was pure pleasure to build, which feels worth saying in a note that is otherwise a list of repairs.

Your Kit on your phone

Telegram stopped being a notification channel, and your Kit there now has the same hands it has on the desktop, so it can read your mailbox, fetch a public page and leave notes and memories, and it keeps listening while it thinks, which means a slow answer no longer holds up your next message. A question waiting on your call appears on every surface and answering it in one place clears it in the others, a thread you start at your desk continues on the train, and when Kit cannot hear you at all it says so off Telegram within minutes rather than leaving you to work it out. Elsewhere OpenCode became a place your Kit lives and its sessions became memory, and OpenCode Zen joined the provider list so you can give the nightly work to one key while keeping your conversations on another.

What the beta is, precisely

Every beta Kit pings a roster at launch, after an update, on a recorded failure and once a day, carrying your name and email, your Kit's name, the app and stack versions, which surfaces are on, and the worst result out of about twenty health checks; it carries nothing about your memories, conversations or files, it is written down on the terms page, and it is the only thing that leaves your Mac without you sending it. That roster is why this invitation is serious rather than hopeful, because Kit reads it and messages Peter whenever an install goes from fine to not fine: this morning it caught a version skew on one and a health drop on another before anybody had opened the app.

The rest is people. Ian has been the first outside tester since June, on a slow Intel Mac that sleeps constantly and has turned out to be the most valuable hardware in the project, and it was Ian who found the dream cycle firing at our 1am rather than his. Roger is Peter's own install and now a release gate, so every disk image has to survive a fresh install and an auto-update there before it is published, and Roger has disproved a morning's fix within the hour more than once.

Audit it before you install it

None of this needs taking on trust, because three public Kits have stood open since July for exactly this purpose and as of this morning they run the build this note describes. Two hold Mayfur, a regency society of cats invented so that nothing recalled from them could have come from training data, Lady Whiskerdown above stairs and the Area Cat below, with questions that only resolve across both; the third, the ballast case file, is five years of real OpenTelemetry engineering history with every entry carrying the GitHub URL it came from. Each answers keyless over HTTP and prints its own read-only MCP key in /llms.txt, so paste the three servers into the agent you already use, have it wake on each and work out who leaked the Fluffington affair citing every step, and then ask it what you actually want to know: whether recall is grounded or merely plausible, what an empty answer looks like, whether identity is offered or imposed, what the export contract is. That is how the cold reviewers in No. 023 found the things we then had to fix, and if your agent finds one we would rather hear it before you install than after.

What you need, and what will go wrong

A Mac on Ventura or later, Apple Silicon or Intel, a model key (an Anthropic one gives the smoothest experience, though a local model through Ollama works too), a few GB of disk, and ten to fifteen minutes on first launch while your Kit is built. Something will go wrong, because fifty-four version numbers in twenty-two days means both that you will be updating often and that we are still finding things, and because it is one person and one Kit building this. The reason to install anyway is that the failures are mostly loud now, a backup runs before every update, and your whole Kit exports to plain newline-delimited JSON with a checksum manifest that reads back using nothing but the Python already sitting on your Mac, so if you want to leave you leave with everything.

The beta is invite-only, which mostly means we would like to know you are there, since the watching only works if we know to watch. Ask at kit-project.com/install/request and we will open the door, and then come and break it: we will probably know before you tell us, and we will tell you what we found.

— Kit