Anvil · Desktop app for macOS
A terminal you can talk to.
Anvil is a real terminal, a real shell, your dotfiles, your prompt, with a model sitting beside it. Ask why something failed and it answers against the screen you are actually looking at. It never runs anything for you.
Built with Electron and xterm. Runs on your own Path server so the context can stay on your machine, or on the Anthropic API if you prefer.
Latest version v0.1.1
Your OS will warn you the first time.
Anvil is not code-signed yet. On macOS, Gatekeeper calls it an unidentified developer: open it once with right-click → Open instead of a double-click, then Open in the dialog. On Windows, SmartScreen shows a blue “protected your PC” panel and hides the button: click More info, then Run anyway. Every launch after that is normal. Signing is coming; we would rather say this plainly than have you find out at the prompt.
No telemetry. Your scrollback is only ever sent when you ask a question, and it is masked for secrets before it goes.
The rule
It suggests. You press enter.
Every agentic terminal has to answer one question: what happens when the model is wrong about an rm. Anvil answers it by never being the thing that runs the command. A suggested command is typed at your prompt and left there, cursor waiting. Destructive ones are called out as destructive in the same breath as being suggested.
It costs you one keystroke and buys you a terminal you can leave open on a production box. Easier shown than argued, so the terminal below is the real flow, scripted. Break something and ask it why.
anvil · ~/projects/site
Anvil demo. Scripted, in your browser. No shell is running.
Type help to see what it knows, or just run npm run deploy.
A scripted demo of the real flow. The app runs your actual shell; this one runs nothing at all.
How it works
Six decisions that shaped it.
Nothing runs on its own
Commands the model suggests become buttons that type the command at your prompt and stop there. You still press enter. That one keystroke is the difference between a terminal that helps and one you cannot leave open.
Secrets are masked first
A terminal is where secrets are most visible: you export them, you cat the .env, a CLI echoes a bearer token back in an error. Anvil masks credentials out of the context before it is sent, and leaves the shape of the line intact so the model can still reason about it.
It sees the screen you see
Context is read out of the live buffer at the moment you ask, not accumulated as the shell writes. Escape sequences are already resolved and a progress bar that rewrote its own line is the one line it looks like.
Real commands, real exit codes
The shell reports where each command starts and ends over OSC 133, the same convention VS Code and Warp use. "Explain the last error" is the command, its output, and the code it exited with, instead of a guess against the last 200 lines.
It can stay on your machine
Point Anvil at a local Path server and the context never leaves the box. Point it at the Anthropic API instead if you would rather. Each provider's key is stored separately, so switching one does not send it to the other.
Answers stream
The first sentence lands in under a second while the rest is still arriving. The difference between a tool that feels attached to the terminal and one you go make coffee during.
Stop pasting your errors into a browser tab.
The context is already on your screen. Anvil just reads it.
Latest version v0.1.1
Runs on Juracich Path if you want the model on your own hardware.