Abacus CLI

Кодинг-агент в терминале на одном бинарнике Rust: читает код, правит файлы, гоняет тесты и работает с любой моделью по выбору.

  • 115 ★ репозитория
  • Последний коммит
CLI

Широкий доступ

Почему такой уровень

  • Агент выполняет команды оболочки, меняет и удаляет файлы, и в режиме YOLO делает это без проверки.
  • Одобренные команды, хуки плагинов и MCP-серверы работают с правами вашего пользователя.
Все причины и проверки

empero-org/abacus

Установка

Ручная установка

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

macOS и Linux; кладет `abacus` в `~/.local/bin`.

Доступ и проверки

Как мы проверяем

Широкий доступИнструмент может менять данные, выполнять команды или работать с секретами.

  • Агент выполняет команды оболочки, меняет и удаляет файлы, и в режиме YOLO делает это без проверки.
  • Одобренные команды, хуки плагинов и MCP-серверы работают с правами вашего пользователя.

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

Abacus — агент для работы с кодом, который запускается в терминале и действует в вашем репозитории: читает код, правит файлы, выполняет команды и тесты. Он подключается к любой конечной точке с Chat Completions в стиле OpenAI, к OpenAI Responses API и к Anthropic Messages API, включая локальные модели Ollama, llama.cpp и LM Studio. Это один исполняемый файл для macOS, Linux и Windows. Режимов прав два. В AUTO правки внутри рабочей папки и команды только для чтения выполняются сразу, а остальное сначала проверяет модель-ревьюер, которая сверяет действие с вашей просьбой. Если она не может решить, Abacus показывает действие и ждет `y` или `n`. В YOLO выполняется все без проверки. В составе скиллы с `SKILL.md`, плагины с `plugin.toml`, подключение MCP-серверов через `config.toml`, подагенты, цели с длинными сессиями, запланированные задачи, безголовый запуск флагом `-p` и серверный режим для графических клиентов.

Для кого. Разработчикам, которые хотят агента в терминале и сами выбирают модель, в том числе локальную без облака.

Подходит, если

  • Нужен терминальный агент, работающий с локальной моделью из Ollama или LM Studio.
  • Хочется, чтобы опасные команды сначала проверял отдельный ревьюер, а не выполнялись молча.
  • Нужна разовая задача без интерфейса: `abacus -p` с выводом в JSON для скрипта.
  • Длинную задачу нужно вести по цели, пока тесты не станут зелеными.

Не подходит, если

  • Нужен плагин внутри вашего редактора, а не отдельная программа в терминале.
  • Требуется интеграция с чат-платформами: в Abacus ее нет.
  • Репозиторий недоверенный, и запускать агента на хост-машине без контейнера нельзя.

Пример запроса к агенту

Запусти тесты, найди причину падения в модуле импорта и исправь, затем покажи diff и не делай коммит без моего подтверждения.

Ограничения

Ревьюер, подтверждения и проверки путей — ограждение, но не песочница. Ревьюер сам модель и может ошибиться. Одобренная команда, хук плагина или MCP-сервер работают с правами вашего пользователя, читают файлы и ходят в сеть, поэтому для чужих репозиториев и работы без присмотра агента запускают в контейнере или виртуальной машине. Встроенный веб-поиск и чтение страниц есть, а управление браузером доступно только через MCP-сервер или плагин. Лицензия измененная MIT с обязательным указанием авторства.

Как отключить. Удалите бинарник `abacus` из `~/.local/bin` и каталог `~/.abacus` с ключами и настройками. Отозвать ключи нужно у провайдера.

Частые вопросы

Как установить Abacus?

На macOS и Linux командой `curl -fsSL https://abacus.empero.org/install.sh | sh`, на Windows через `irm https://abacus.empero.org/install.ps1 | iex`. Затем `abacus setup` подключает провайдера.

Чем AUTO отличается от YOLO?

В AUTO все, кроме правок в рабочей папке и безопасных команд, сначала идет на проверку ревьюеру, а в YOLO действия выполняются сразу. Режим переключается по `Shift+Tab` или `/mode`.

Как запустить без интерфейса?

Флагом `-p`: например `abacus -p "Run the tests and fix failures" --yolo`. Вывод задается `--output-format` как `plain`, `json` или `streaming-json`.

Как подключить MCP-сервер?

Добавьте в `config.toml` секцию вроде `[mcp.local]` с `transport`, `command` и `args`. Список подключенных серверов покажет `abacus mcp`.

Где искать скиллы?

В `~/.abacus/skills/`, `~/.agents/skills/`, а также в `.abacus/skills/` и `.agents/skills/` внутри рабочей папки. Команда `abacus skills` показывает список.

Обсуждение

Вопросов и отзывов пока нет.

Octomind — кодовый агент на Rust в одном бинарнике: правила безопасности в TOML вместо запросов подтверждения и супервизор

CLIШирокий доступ657Звезды репозитория

OpenCrabs — самообучающийся ИИ-агент на Rust в одном бинарном файле: терминал, демон, мессенджеры, память и скиллы.

CLIШирокий доступ1 тыс.Звезды репозитория

Agav ведет задачу в терминале как кодинг-агент: читает репозиторий, правит файлы, гоняет тесты, работает с семью провайдерами.

CLIРасширенный доступ178Звезды репозитория

Учебный терминальный агент для кода на Python, задуманный как «nanoGPT для агентов»: прочитать, разобрать и форкнуть

CLIШирокий доступ1,9 тыс.Звезды репозитория

Viden — терминальная панель для кодового агента: чат с моделью, подтверждение правок и надзор за Codex и Claude в одном окне.

CLIШирокий доступ86Звезды репозитория

Локальный ИИ-агент, который работает на своем железе через llama.cpp, водит браузер, правит файлы, выполняет разрешенные команды и помнит контекст между сессиям

CLIШирокий доступ3,6 тыс.Звезды репозитория

Сравнение с похожими

Карточки с тем же главным запросом: чем они отличаются.

ИнструментОфициальныйЗвезды репозиторияГлавное отличие
Abacus (эта карточка)нет115
OpenCodeнет226 389открытый терминальный агент общего назначения; Abacus добавляет модель-ревьюера для опасных действий и один бинарник на Rust
Aiderнет50 089работает как ассистент парного программирования с коммитами; Abacus ведет автономные сессии с целями и подагентами

Коротко о README

Агент читает `AGENTS.md` рабочей папки, хранит сессии и умеет синхронизироваться между устройствами. Есть окно для рабочего стола Abacus Desktop, которое работает с тем же агентом.

Бейдж для README

Сообщить о проблеме