A small coding agent for the terminal. Bring your own key and your own model: it works in one directory through a handful of tools, and a deterministic harness decides what it may touch.
Documentation: fuseraft.ai/anchor
- Your model, your key. Claude, OpenAI and xAI, or any server that speaks the OpenAI API:
your company's LLM gateway, OpenRouter, a LiteLLM proxy, or a local model in Ollama, vLLM or LM
Studio. Name a server once and use its models as
work/<model>; switch with/modelmid-session. Set how hard the model thinks with/effort, and watch its thinking as it streams. - Safe by default. Writes, most shell commands and reads outside the directory ask first, with
a diff for every write. Secret files and dangerous commands are always denied, even with
--yolo. An "always" answer is remembered per directory, in~/.anchor. - Full-screen terminal UI. Streaming Markdown with highlighted code,
@pathattachments, search, history and/copy.--plaingives a line-by-line REPL. - Themes. Built-in themes, sample themes and your own in small JSON files, with hex colors and full-screen backgrounds.
- Long sessions. Older turns are summarized to fit the context window. Sessions resume, and
/undoreverts a turn's file changes. - Extensible. Sub-agents, Agent Skills and MCP servers, all behind the same approval checkpoint.
- Scriptable.
-pruns one prompt,--jsonstreams events, and--untilkeeps going until a check passes.
Status: 0.10.1. Linux, macOS and Windows (shell commands run in Git for Windows' bash).
curl -fsSL https://raw.githubusercontent.com/fuseraft/anchor/main/install.sh | bash # Linux, macOS
irm https://raw.githubusercontent.com/fuseraft/anchor/main/install.ps1 | iex # Windows (PowerShell)
brew install fuseraft/tap/anchor # HomebrewOr use Scoop (scoop bucket add fuseraft https://github.com/fuseraft/scoop-bucket, then
scoop install anchor), grab a release, or build with
./build.sh (.NET 10 SDK). Script installs update themselves; see
Install.
Run anchor setup. It asks where your models come from (Anthropic, OpenAI, xAI, or your own
server's URL), keeps the key in your OS keychain where there is one, and lets you pick a model.
To use more than one server, such as your team's gateway and a model on your laptop, name each in
~/.anchor/config.json. See Configuration for
named providers, local servers, custom headers and reasoning effort.
anchor # interactive
anchor --resume # continue the latest session here
anchor -p "why does the build fail?"
git diff | anchor -p "review this change"
anchor -p --yolo "fix the failing tests" --until "dotnet test"In the REPL, /help lists the commands, !cmd runs a command in your own shell, and Ctrl+C
cancels a turn. AGENTS.md in the directory is added to the system prompt.
/theme lists the themes and switches between them: default, bright, light, mono and
rust are built in. For more, copy one of the sample themes (ember, tide, forest, neon,
phosphor, paper) into ~/.anchor/themes/:
mkdir -p ~/.anchor/themes
curl -fsSL https://raw.githubusercontent.com/fuseraft/anchor/main/themes/ember.json -o ~/.anchor/themes/ember.jsonThen /theme ember, or "theme": "ember" in the config. /theme save <name> writes the current
colors to a file to start your own; Making a theme
explains the format.
Safety · Work until a check passes · Sub-agents · Skills · MCP · Scripting · JSON protocol · Commands
DESIGN.md explains how anchor is put together and why. ./build.sh runs the tests and publishes
bin/anchor; dotnet test runs just the tests (they need git and python3). The docs site in
docs/ is built with Starlight: npm install && npm run dev there
to preview, and pushes to main deploy it.
MIT
