Anvil 0.0.2 is an alpha testing release. It may have bugs, and we can't yet guarantee your memories carry across updates. Keep backups of anything that matters. If something here doesn't match what you see, tell us.
Install it, create your vault, connect your assistant. This page also lists every change Anvil makes to your assistant's settings, what you still set by hand, and how to undo it.
Get the file for your system from the download page, which has the install steps for each one. Here is what the installer puts on your machine.
| System | Where Anvil goes | The anvil command |
|---|---|---|
| Windows (.msi) | C:\Program Files\Anvil, with Start menu and desktop shortcuts. If your PC lacks Microsoft WebView2, the installer downloads it. | Added to your PATH. Works in any new terminal. |
| macOS (Homebrew) | Anvil.app in Applications. It opens with no security prompts. | On your PATH. |
| macOS (.dmg) | Anvil.app in Applications, after you approve it twice in Privacy & Security (see the download page). The command-line tools are inside the app. | Not on your PATH. Run /Applications/Anvil.app/Contents/MacOS/anvil, or add it to your PATH (see what you do by hand). |
| Linux (.deb, .rpm) | /usr/bin, plus an entry in your app menu. | On your PATH. |
| Linux (AppImage) | Runs from wherever you keep the file. Nothing is installed. | Not installed. |
Installing changes nothing in your assistants. No installer touches Claude, Codex or any other assistant. Anvil only changes their settings when you click Connect in the app or run anvil connect (step 3).
Your data lives in one folder: ~/.anvil on macOS and Linux, C:\Users\<you>\.anvil on Windows.
Open Anvil. The first time, it walks you through these steps.

Setting up takes a minute or two on a slower computer. Keep the window open: when it is done, Anvil shows your recovery PDF, and nothing moves on until you have saved it.



Keep the recovery PDF somewhere outside the Anvil folder, such as a USB stick or your password manager. If you set the vault up from the terminal (anvil vault init), the PDF is saved inside ~/.anvil by default, and that folder is deleted if you ever uninstall Anvil.
After you unlock the vault, Anvil keeps an unlock key in your system's credential store (Keychain on macOS, Credential Manager on Windows, Secret Service on Linux), so you aren't asked every time it starts. On macOS, click Always Allow when the Keychain asks.
If your system can't keep that key (some Linux desktops have no credential store), Anvil asks for your passphrase after each restart instead:


127.0.0.1:11434.Connecting is what lets your assistant use Anvil's memory. You can do it three ways.
anvil connect finds your assistant and asks before each change. To pick one yourself, name it. To see what would change without changing anything, add --dry-run.
anvil connect --client code --dry-run| Assistant | Name for --client | Found automatically? |
|---|---|---|
| Claude Code | code | Yes |
| ChatGPT / Codex | codex (or chatgpt) | Yes |
| Claude Desktop | desktop | macOS only. On Windows and Linux, name it. |
| GitHub Copilot (VS Code) | copilot (or vscode) | No, name it |
| LM Studio, Cline, opencode | lmstudio, cline, opencode | No. Use the app's Use a local model app button, or name it. |
| Several at once | both (Claude Code and Codex), all (Claude Code, Claude Desktop, Codex and Copilot) |


Cursor, Windsurf and Gemini CLI aren't connected automatically yet. Any assistant that supports MCP can still use Anvil if you add the anvil-mcp server to its settings yourself.
The same rules apply to every assistant:
<file>.anvil-bak. That copy is never overwritten.In the paths below, ~ is your home folder. On Windows that's C:\Users\<you>.
gets the most: memory tools, four hooks and a short set of instructions
| File | What Anvil adds |
|---|---|
~/.claude.json | An MCP server called anvil. It gives Claude Anvil's tools: recall memories, write memories, and the rest. |
~/.claude/settings.json | Four hooks, listed below. Each one runs the anvil command. |
~/.claude/CLAUDE.md | A block of instructions between <!-- anvil:begin --> and <!-- anvil:end -->. Anvil rewrites that block when it updates it. Put your own text outside the markers. |
The four hooks
| When | What it does |
|---|---|
| Before each prompt | Finds the memories that match what you asked and hands up to eight of them to Claude. The first prompt of a session also brings your standing rules and the project briefing. |
| Before each tool use | Warns Claude if it's about to repeat a mistake Anvil knows about. It only warns: it never blocks or approves anything. |
| When Claude finishes | If the session produced something worth keeping that isn't saved yet, it asks Claude to write it to memory before stopping. |
| Before an automatic compact | When Claude Code is about to shorten a long conversation on its own, it asks Claude to save its conclusions first. A /compact you type yourself is never held up. |
The instructions block says
MEMORY.md).Optional, off unless you tick them
"attribution": {"commit": "", "pr": ""} in settings.json, so commits and pull requests carry only your name.Also in the checklist, on by default
Not touched: your permissions, allow-lists, status line, model choice and everything else in those files.
memory tools and instructions. Codex has no hooks, so the instructions ask it to recall and save memories itself
| File | What Anvil adds |
|---|---|
~/.codex/config.toml | An [mcp_servers.anvil] section, with a 60-second start-up allowance. The rest of the file is kept byte for byte. |
~/.codex/AGENTS.md | An anvil:begin / anvil:end block: check Anvil's memory first, write lasting facts back to Anvil, plus the same rules as Claude Code. The optional personality works here too. |
Codex settings live in the same ~/.codex folder on every system, and they cover both the ChatGPT desktop app and the Codex command line.
memory tools only: no hooks, no instructions
| System | File: Anvil adds an anvil MCP server |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json |
memory tools only
| System | File: Anvil adds an anvil server |
|---|---|
| macOS | ~/Library/Application Support/Code/User/mcp.json |
| Windows | %APPDATA%\Code\User\mcp.json |
| Linux | ~/.config/Code/User/mcp.json |
| Copilot CLI | ~/.copilot/mcp-config.json, only if you already use the Copilot CLI |
memory tools only
| App | File: Anvil adds an anvil MCP server |
|---|---|
| LM Studio | ~/.lmstudio/mcp.json |
| Cline (VS Code) | Cline's cline_mcp_settings.json, in VS Code's user folder |
| opencode | ~/.config/opencode/opencode.json (Windows: %APPDATA%\opencode\opencode.json) |
One more thing happens when you connect from the app. If you connect Claude or ChatGPT, Anvil also uses that sign-in for its own work, so you don't need a separate key.
anvil connect --refresh after every Anvil update.Your assistant only reads its settings when it starts, so:
Updates can bring new instructions and settings. Apply them to the assistants you've already connected:
anvil connect --refreshIt changes only assistants that are already connected, and it doesn't ask any questions.
anvil command on your PATH so you can type anvil in Terminal (Homebrew does this for you):
echo 'export PATH="/Applications/Anvil.app/Contents/MacOS:$PATH"' >> ~/.zshrcAssistants sometimes write their own memory files despite the instructions. anvil doctor warns you when it finds them. To move what's in them into Anvil:
anvil memory tripwire --ingestWe build Anvil with Anvil connected to Claude Code and Codex. This is our setup, if you want to work the same way.
anvil doctor finds memory files, we move them in with anvil memory tripwire --ingest.anvil connect --refresh after every update, so every assistant has the current instructions.To match this, open Settings › Assistants, tick Anvil's personality and Leave AI credit lines off commits and pull requests for each assistant, and click Save and apply.
anvil statusanvil doctor checks the background service, your settings, model providers, the vault, memory and more, and says how to fix anything that's wrong. It doesn't check your assistant connections; step 3 does that.
anvil doctor
anvil doctor. Report a bug (2) sends us a report./mcp: anvil should be listed as connected. Then tell your assistant something worth remembering, start a new session and ask about it.anvil connect --client code (or codex) and answer n to the first question. Either way removes Anvil's MCP server, hooks, instructions block and the credit-line setting.anvil entry from the file listed above, or put back the .anvil-bak copy. That copy is the file as it was before Anvil first changed it, so it won't include changes you made since.anvil uninstall takes Anvil out of every assistant, stops it, and deletes what it created. Run it without --yes first to see the list.
| System | How |
|---|---|
| Windows | Settings › Apps › Installed apps, then … beside Anvil, then Uninstall. Anvil's uninstall screen asks about your data, cleans up your assistants, then removes the app (pictures below). |
| macOS | First run anvil uninstall --yes --backup encrypted, then drag Anvil to the Bin. |
| Linux | First run anvil uninstall --yes --backup encrypted, then sudo apt remove anvil or sudo dnf remove anvil. |



On macOS and Linux, run anvil uninstall before you remove the app. If you delete the app first, your assistants' settings still point at an Anvil that isn't there.
Your data: --backup encrypted saves one passphrase-protected archive to your Documents folder first, and --backup readable saves plain files. --keep-data leaves your memories and keychain entries in place.
In the app, open Settings › System and choose Report a bug, or run anvil report-bug "what happened". Reports never include your memories, prompts or code. For the full feature reference, see the Anvil docs.