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
CLI

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.
All reasons and checks

empero-org/abacus

Install

Manual install

curl -fsSL https://abacus.empero.org/install.sh | sh

macOS and Linux; puts `abacus` in `~/.local/bin`.

Access and checks

How we review

Broad 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.

CLI tools

Octomind is a coding agent in one Rust binary: safety rules in TOML instead of approval prompts, with a supervisor model on top

CLIBroad access657Repository stars

OpenCrabs is a self-improving AI agent in Rust as a single binary: terminal, daemon, messengers, memory and skills.

CLIBroad access1KRepository stars

Agav is a terminal coding agent that reads a repository, edits files, runs tests and switches between seven model providers.

CLIExtended access178Repository stars

A teaching terminal coding agent in Python, built as a "nanoGPT for agents": read it, take it apart and fork it

CLIBroad access1.9KRepository stars

Viden is a terminal cockpit for a coding agent: chat with a model, approve edits and supervise Codex and Claude in one window.

CLIBroad access86Repository stars

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

CLIBroad access3.6KRepository stars

Comparison with similar tools

Cards that share the main search query, and how they differ.

ToolOfficialRepository starsMain difference
Abacus (this card)no115
OpenCodeno226,389a general open terminal agent; Abacus adds a reviewer model for risky actions and a single Rust binary
Aiderno50,089works 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.

README badge

Report a problem