notes__write, and every chat opened
after it can too. Nothing was installed, restarted or deployed, and nobody opened
an editor.

The same run, in the chat: the agent reading its own repository, testing the tool, and pushing the version
The loop
1
You ask, in the chat
Say what you want the agent to be able to do, or how you want it to behave.
Ask for the outcome — “keep notes for me” — rather than for a file with
particular contents. The agent reads its own repository before it changes
anything, so it already knows the shape its code has to have.
2
It edits its own checkout
Your machine carries the harness at
~/harness. The agent edits that
directory: a new file under tools/, a line in programs/splox/main.py, a
paragraph in a prompt. This is the part you can watch happen — every edit is
a tool call in the transcript.3
It tries it before it tells you
A good change ends with the agent having run the thing. In the transcript
above it loaded the tool the same way the platform’s own loader does and
exercised nine cases against it, including a path-traversal attempt, before
it published anything.
4
It publishes a version
git commit and git push from the checkout. That is what a version is —
there is no separate deploy. The push either produces the next numbered
version or is refused with what is wrong with the tree, and until it succeeds
nothing anybody else runs has changed.5
The next turn is different
The platform asks the harness who your agent is at the moment it needs to
know — at the start of every run. There is nothing to reload.
Two speeds, and the one that surprises people
A change lands in this conversation as soon as the file is saved, because this machine is reading the checkout the agent just edited. The next message you send picks it up. A change reaches a new chat, or a second machine only after the publish. If you ask for something, see it work, then open a fresh chat and find the old behavior, the answer is almost always that the agent edited but did not push.Say “publish it when it works” in the original ask and you skip the round trip.
The agent that wrote the notes tool tested it first and pushed once, which is
also the order you want: a published version that was never run is a version you
will have to go back past.
What you can ask for
A tool it does not have
“Give yourself a tool that does X.” A named call it can reach for, described
in its own words, on every run from then on.
A way to reach you
“Answer me in Telegram.” “Watch this mailbox.” A program that keeps running
on the machine after the conversation ends.
Something on a schedule
“Do this every morning.” The same shape, triggered by the calendar instead of
by a message.
Different behavior
“Be shorter.” “Stop asking me before you run things.” “Use a cheaper model
when we are only talking.”
Access to a service
“Get into my Linear.” Part of this one is yours: somebody has to click
Authorize.
Undoing any of it
“Put back how you answered before version 7.” Every version is kept, and
going back is another ask.
What a version is
A numbered snapshot of the whole harness, with the sentence that says why it was made. Here is a real history, read off the account this documentation was written from:The two questions after every change
Did it work? The transcript is the first answer — the agent’s edits and its test runs are tool calls you can open. The second answer is the version list: if the change is not in it, it was not published. Both are on Versions. How do I go back? Ask. “Undo the last change” and “go back to how you answered before version 5” are both things the agent does with git in one turn, and both end in a new version whose message says what was undone. If the agent itself is the thing that got worse — it will not stop apologising, or it now refuses ordinary work — When it goes wrong is the page for that, because the fix there is to pin the machine to an older version rather than to ask the broken agent for help.What it costs to be wrong
A change that misses costs one run. The notes tool above was 9 minutes and $0.37 of the account’s usage, and that is the whole exposure: the previous version is still in the list, no other machine picked the new one up until the push, and any run already going kept the version it started on. The thing that does not undo itself is what the agent wrote to disk. Code goes in the harness and is versioned; files go in the machine’s home directory and are not. If an ask involves deleting or rewriting your data, that part is worth saying out loud in the ask — “don’t touch what’s already in there” — because git will not give it back.You can look, without writing anything
The machine opens in VS Code and over SSH from the chat’s side panel. That is for reading what the agent wrote, checking which version is running, and watching a program’s log — not for authoring. See VS Code and SSH.What is actually on the machine
The checkout at
~/harness, what lives in it, and why the platform reads that
file at the moment it needs to know.
