Abacus CLI
A terminal coding agent in one Rust binary that reads code, edits files and runs tests with any model of your choice.
- 115 ★ on the repository
- Last commit
Broad access
Why this level
- The agent runs shell commands and changes and deletes files, and does so without review in YOLO mode.
- Approved commands, plugin hooks and MCP servers run with your user permissions.
Install
Manual install
curl -fsSL https://abacus.empero.org/install.sh | shmacOS and Linux; puts `abacus` in `~/.local/bin`.
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- The agent runs shell commands and changes and deletes files, and does so without review in YOLO mode.
- Approved commands, plugin hooks and MCP servers run with your user permissions.
This is third-party code. Review the repository files before installing.
What it does
Abacus is a coding agent that runs in the terminal and acts in your repository: it reads code, edits files and runs commands and tests. It connects to any OpenAI-style Chat Completions endpoint, the OpenAI Responses API and the Anthropic Messages API, including local models from Ollama, llama.cpp and LM Studio. It is one executable for macOS, Linux and Windows. There are two permission modes. In AUTO, edits inside the workspace and read-only commands run immediately, and the rest first goes to a reviewer model that compares the action with your request. If it cannot decide, Abacus shows the action and waits for `y` or `n`. YOLO runs everything without review. It includes skills with `SKILL.md`, plugins with `plugin.toml`, MCP server connections through `config.toml`, sub-agents, goals with long sessions, scheduled jobs, headless runs with the `-p` flag and an app server for graphical clients.
Who it is for. Developers who want a terminal agent and choose the model themselves, including a local one with no cloud.
Good fit when
- You need a terminal agent that works with a local model from Ollama or LM Studio.
- You want dangerous commands reviewed first by a separate reviewer instead of running silently.
- You need a one-off task without a UI: `abacus -p` with JSON output for a script.
- A long task should run toward a goal until the tests are green.
Not a fit when
- You need a plugin inside your editor rather than a separate terminal program.
- You need chat-platform integrations: Abacus has none.
- The repository is untrusted and you cannot run the agent on the host without a container.
Example request
Run the tests, find why the import module fails and fix it, then show the diff and make no commit without my confirmation.Limitations
The reviewer, approvals and path checks are guardrails, not a sandbox. The reviewer is a model and can be wrong. An approved command, a plugin hook or an MCP server still runs with your user account, reads files and reaches the network, so for untrusted repositories and unattended work run the agent in a container or VM. Built-in web search and page reading exist, but browser control is available only through an MCP server or plugin. The license is a modified MIT that requires crediting the original project.
How to disable. Delete the `abacus` binary from `~/.local/bin` and the `~/.abacus` directory with keys and settings. Revoke the keys with the provider.
FAQ
How do I install Abacus?
On macOS and Linux with `curl -fsSL https://abacus.empero.org/install.sh | sh`, on Windows with `irm https://abacus.empero.org/install.ps1 | iex`. Then `abacus setup` connects a provider.
How does AUTO differ from YOLO?
In AUTO anything beyond workspace edits and safe commands first goes to the reviewer, while in YOLO actions run at once. Switch with `Shift+Tab` or `/mode`.
How do I run it without a UI?
With the `-p` flag, for example `abacus -p "Run the tests and fix failures" --yolo`. Set output with `--output-format` as `plain`, `json` or `streaming-json`.
How do I add an MCP server?
Add a section like `[mcp.local]` with `transport`, `command` and `args` to `config.toml`. `abacus mcp` lists connected servers.
Where does Abacus look for skills?
In `~/.abacus/skills/`, `~/.agents/skills/` and in `.abacus/skills/` and `.agents/skills/` inside the workspace. `abacus skills` lists them.
Discussion
No questions or reviews yet.
Related
CLI toolsOctomind is a coding agent in one Rust binary: safety rules in TOML instead of approval prompts, with a supervisor model on top
OpenCrabs is a self-improving AI agent in Rust as a single binary: terminal, daemon, messengers, memory and skills.
Agav is a terminal coding agent that reads a repository, edits files, runs tests and switches between seven model providers.
A teaching terminal coding agent in Python, built as a "nanoGPT for agents": read it, take it apart and fork it
Viden is a terminal cockpit for a coding agent: chat with a model, approve edits and supervise Codex and Claude in one window.
A local-first AI agent running on your own machine via llama.cpp that drives a browser, edits files, runs approved commands and remembers context across session
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Repository stars | Main difference |
|---|---|---|---|
| Abacus (this card) | no | 115 | |
| OpenCode | no | 226,389 | a general open terminal agent; Abacus adds a reviewer model for risky actions and a single Rust binary |
| Aider | no | 50,089 | works as a pair-programming assistant with commits; Abacus runs autonomous sessions with goals and sub-agents |
README in short
The agent reads the workspace `AGENTS.md`, stores sessions and can sync between devices. A desktop window, Abacus Desktop, drives the same agent.