Understand code you didn't write
The code map indexes the project as you open it and draws what depends on what,
with a plain sentence about what each file is for. Ask what reads a file, and
the answer comes from the graph rather than from a guess.
- Search never lies to you: creating, deleting and the agent's own writes all refresh the index.
- All of it is computed on your machine — no service, and nothing uploaded.
See everything it did. Undo any of it.
Hand it a task and watch the steps go by. When a turn ends it reports what
changed, file by file — and Undo this turn puts those files back
exactly as they were.
- Four approval modes — Read only, Approve for me, Ask me, Full access.
- Steer mid-run: a message goes into the turn that is running, not the next one.
- Ask me genuinely stops and asks, in the chat, when only you can decide.
Agentapp-server transport
Group pinned notes at the top of the list, and add a test for it.
- read
src/store.ts
- read
tests/store.test.ts
- edit
src/store.ts +8 −2
- write
tests/pinned.test.ts +24 −0
- run
npm test 4 passed
Edited 2 files +32 −2 — pinned notes sort first,
and the rule is covered by a test.
Drawn, not captured — the step list and the change log as the app shows them after a real turn.
Change the code where the code is
The editor is Monaco, with tabs and real saves — the floor, not the pitch. The
part worth your time is ⌘K: select a block, describe the change, and accept or
reject the diff without leaving the file.
- Undo, redo, select, move: the keys you already press.
- Reviews are one thread per line, so clustered findings stay readable.
Read the change, then commit it
The diff, the commit graph and the commit box are one screen. Stage a file or a
single hunk, compare any commit against your working tree, and on a repository
it recognises a failed CI run opens beside the change that caused it.
- Stage one hunk, so a stray debug line does not have to ride along with the fix.
- It stays in step with checkouts and the agent's own writes, so it never misreports what is uncommitted.
It checks its own work with your project's tests
The agent is told to verify with what the project already has — your build, your
test command, your dev server — instead of inventing a harness for the
occasion. It is an expectation rather than a guarantee, and it is the
difference between “done” and done.
- A run that changed no files says so, rather than being presented as a finished task.
- The bottom dock is a real shell, so you can watch the verification go by — or take over.
Give it your tools and your conventions
Skills and MCP servers install into the project and are handed to the agent —
including the skills already on your machine. It can follow the way your team
works instead of a generic one.
- Every entry shows the command it will run before you install it.
- Trust is on the card: built-in, official, or community.
Pay for the model, not for the app
Eleven providers ship in the picker, and any OpenAI-compatible endpoint can be
added with a base URL and a key. Point it at a free tier — or at a local model,
and nothing is metered at all. The ledger keeps tokens and cost per provider,
including what a local model saved you.
- Your keys go to the OS keychain: the app can set or clear one and ask whether it exists, never read it back.
- Small local models often cannot drive tools — the app says so instead of pretending a run worked.