@brokkai/anvil-linux-x64
v0.25.0
Published
Native Anvil x86_64-unknown-linux-gnu binary for the @brokkai/anvil npm package
Readme
Anvil is a Rust Agent Client Protocol server: one reusable agent engine for editors, bots, TUIs, and internal tools.
It is intentionally just the ACP server. Anvil owns model routing, the tool loop, permission enforcement, sessions, context compaction, sandboxing, and MCP integration. The ACP client owns the user experience.
ACP client stdio / JSON-RPC Anvil
---------- ---------------- -----
Zed -----------------------------------------> agent loop
JetBrains ---------------------------------------> model routing
issue bot ---------------------------------------> permission gate
custom TUI ---------------------------------------> tools + sessionsWhy Anvil
- One engine, many frontends. Reuse the same execution semantics from a supported editor or any ACP-over-stdio client.
- Model routing built in. Connect Codex/ChatGPT, Bedrock, Ollama, ds4, DeepSeek, Kimi, OpenAI-compatible providers, or OpenRouter.
- Real agent tooling. Filesystem and shell tools, managed Bifrost code intelligence, MCP servers, skills, plugins, and subagents.
- Explicit safety boundaries. Clients choose permission behavior while Anvil applies permission gates, workspace path checks, and the configured sandbox strategy.
- Persistent work. Load and resume sessions with durable history, usage reporting, and context compaction.
Install and Evaluate
Install the released native binary through uv, with no Rust toolchain required:
uv tool install brokk-anvil
anvil --version
# later
uv tool upgrade brokk-anvil
uv tool uninstall brokk-anvilThe Python package version pins the matching GitHub release. On first run it downloads the native archive for macOS, Linux glibc, Windows, or Android/Termux, verifies the published SHA-256 sidecar, and caches the binary. See the installation guide for exact version pins, cache paths, and unsupported-platform behavior.
Or install with Homebrew on macOS (Apple Silicon and Intel) or Linux (x86-64 and ARM64 glibc):
brew install brokkai/tap/anvil
anvil --versionOr install through npm on any supported platform (macOS, Linux glibc, Windows, Android/Termux) — the package installs the released native binary, no Rust toolchain needed:
npm install -g @brokkai/anvil
anvil --version
# or run one-shot without installing
npx -y @brokkai/anvil --versionOr install the latest checksum-verified release on macOS, Linux, WSL, or Android/Termux:
curl -fsSL https://raw.githubusercontent.com/BrokkAi/anvil/refs/heads/master/install.sh | bash
anvil --versionTo review the installer before running it, download install.sh, inspect it, then run it with bash. You can also download an archive from GitHub Releases, or install from crates.io:
rustup target add wasm32-wasip2
cargo install brokk-anvil --locked --force
anvil --versionRunning anvil directly starts a stdio JSON-RPC server; use it through an ACP client. Continue with the installation guide or the reproducible ten-minute evaluation.
For scripts, CI jobs, and Makefiles, anvil --print runs one prompt headlessly with a built-in ACP client and exits — no external client required:
anvil -p "summarize the failing test" # prompt as an argument
echo "fix this test" | anvil -p # or on stdin (also: anvil -p -)
anvil -p "…" --output-format json # one JSON object at exit
anvil -p "…" --output-format stream-json # newline-delimited records, result last
anvil -p "…" --permission-mode yolo # manual (default) | auto | yolo
anvil -p "…" --cwd /path/to/repo --model "codex::gpt-5-codex+high"
anvil -p "…" --resume SESSION_ID # continue an existing sessionHeadless runs never block on a human: manual rejects every permission request but still honors agent-side approvals that never reach the client (read, search, and fetch; sandboxed shell commands on the conservative read-only safelist; and remembered repo-scoped Always allow grants); auto accepts edit/delete/move but rejects shell execution; and yolo accepts everything. The final assistant message goes to stdout (text), or a machine-readable payload with session_id, resumed, result, stop_reason, usage, and error (json / stream-json); progress and diagnostics stay on stderr, and the exit code is non-zero on agent or transport failure (#356).
anvil serve (included in all official binaries; source builds can opt out with cargo build --no-default-features --features wasm-sandbox) starts the same runtime as an HTTP daemon on a loopback listener (default 127.0.0.1:26845), exposing versioned REST endpoints for session lifecycle, model discovery, the tool catalog, and asynchronous prompt runs with Server-Sent-Event streaming and cancellation (/health, /v1/models, /v1/tools, /v1/sessions, /v1/runs). The daemon supports bearer-token authentication (required for non-loopback binding), server-enforced workspace roots, and interactive permission approval endpoints. The wire contract is versioned and checked in under openapi/ (OpenAPI document, SSE event schema, and compatibility policy), with a black-box conformance suite holding the implementation to it. Official TypeScript, Rust, and Python SDK packages are regenerated from that contract during CI and release; their shipped runtime code is generated rather than handwritten.
Configure a supported ACP client directly from the installed binary:
anvil install zed
anvil install jetbrains
anvil install neovim --plugin codecompanionSupported Clients
- Zed, JetBrains, and Neovim have direct installers and verified configuration shapes.
- Other ACP clients can launch Anvil as a custom stdio agent.
- The client-building guide and
examples/show issue triage, review, and issue-drafting automations.
Documentation and Development
The Anvil documentation is the canonical user reference for providers, commands, tools, permissions, sessions, extensibility, and trust boundaries.
See CONTRIBUTING.md for source development, runtime invariants, tests, dependency-license policy, pull requests, and releases.
License
Anvil is licensed under LGPL-3.0-only. See the practical License and Use Cases guide, the controlling LICENSE, and third-party notices.
