#Anvil Docs

Anvil is the safety layer in front of every risky action your code takes — money moves, agent tool calls, external mutations, irreversible sends. Wrap a call, and Anvil prevents costly damage, enforces your rules, and proves what happened.

anvil protect starts you in ghost mode: every wrapped call runs exactly like it did before, and Anvil records what it would have caught. When the ghost log shows Anvil catching what you expected, flip one action to enforce. (Wiring the SDK by hand instead? A fresh self-hosted install enforces — see Default mode.)

Anvil is in a gated beta, so you need a passcode first. Email henry@anvilcontrol.ai — usually same-day. Without one, sign-in stops at an invite card and anvil protect refuses rather than provisioning a key.

With a code, either door works. Sign in at app.anvilcontrol.ai and your workspace exists the moment you redeem it; anvil login then joins a machine to it. Or run anvil protect <action> --invite <code> first and it asks for your work email and provisions the workspace itself. Use the same email for both — one email is one workspace, and two addresses make two.


#Getting Started

  • Start Here — what Anvil is, why it exists, and the three things it does for every risky action.
  • Quickstart — get Anvil watching a real call in your codebase in five minutes.
  • Core Concepts — the shared vocabulary the rest of the docs assume, and the SDK surface with it: guard(), safe.protect, safe.wrap, key, and the verdict they return.

#The Journey

#Policies & Rules

  • Policies & Rules — every rule primitive, what it takes, and the block reason it produces.

#Operations

  • Running in Production — what changes the moment you flip an action to enforce, and the runbook when something breaks.
  • Where Anvil Runs — Anvil Cloud (the default, what everyone uses) vs. self-hosted (real code, early support, design-partner engagement).
  • Do I need a database? — no, to start. Yes before you enforce money on a runtime that keeps its own receipts.

#Reference

  • CLI Reference — the commands you'll actually reach for, task-first then per-command. anvil --help lists the rest.
  • Languages — JavaScript and TypeScript are supported; Python, Go, Ruby, and Java are not yet.

#Common paths

New to Anvil. Start Here → Quickstart → Core Concepts.

Ready to try it right now. Quickstart → Ghost → Enforce, safely.

Not sure you want a code change. Ways to protect an action — one of the four needs none.

Evaluating for a team or an enterprise deploy. Start Here → Policies & Rules → Running in Production → Where Anvil Runs → Do I need a database?.

Already in ghost, looking to flip. Ghost → Enforce, safely → Policies & Rules → Running in Production.

Just need a command. CLI Reference.

Not writing JavaScript or TypeScript. Languages — the honest answer first, before you install anything.

It ran, and nothing showed up in the dashboard. Your calls run but the dashboard is empty — usually the app is missing its own key. Nothing ran at all is the other half.

It asked for a passcode, or refused to provision a key. That's the gated beta working as intended — Before you start covers what you need, and the invite is an email away.


#Beyond the docs

Esc
↵ to open · ↑↓ to move · Esc to close