Перейти к содержимому
  • открытый код
  • AGPL-3.0
  • v0.2.0
  • Bun ≥ 1.3.14
  • TypeScript

Кодовый агент в терминале с кабиной, а не с журналом чата.

Rovecode работает на Bun, говорит с 16 провайдерами или с любой точкой доступа, совместимой с OpenAI, и прогоняет каждый вызов инструмента через политику, запрещающую по умолчанию, прежде чем тот коснётся вашего репозитория. Свободное ПО под AGPL-3.0.

$ rovecode "fix the failing test"
rovecode · atlas · feature/authreal frame
TUI sextant размером 160 на 44 ячейки: дерево файлов со статусами git, панель кода с src/auth/callback.ts и выделенными изменёнными строками, панель сообщений со строками инструментов чтения и правки и карточка подтверждения с просьбой запустить bun test, план на шаге 1 из 4, 13 процентов израсходованного контекста и облачный питомец rovecode, ждущий кивка.
+4 −1 примененосначала спросить · карточка подтвержденияконтекст 13 % от 200k

Настоящий кадр: карточка подтверждения для bun test, строка правки +4 −1, контекст на 13 % от 200k. Отрисовано художниками sextant при фиксированных часах.

  • 2,200+тестов
  • 16встроенных провайдеров
  • 4уровня политики
  • 15языков на этой странице
  • AGPL-3.0лицензия

Кодовый агент для терминала. TypeScript на Bun, 47 перенесённых шаблонов, одна политика, запрещающая по умолчанию, перед каждым инструментом.

команды, использующие rovecode

  • Northwind Robotics
  • Harbourline Payments
  • Meridian Studio
  • Cobalt Grid
  • Larkspur Health
  • Tessellate
  • Ferrous Labs
  • Quill & Compass

Имена-заполнители, пока первые клиенты не согласятся быть упомянутыми.

02кабина

Шесть панелей на одном экране. Нужный файл никогда не уезжает вверх.

Файлы со статусом git, код с полосой выделения и ±-разницей, компактные строки инструментов, план, расход и питомец. Отрисовано без экрана художниками sextant при фиксированных часах: тот же путь кода, которым рисует TUI, а не макет.

панель сообщений · строка за строкой

Один прогон, переписанный с кадра выше.

Каждый вызов инструмента — одна строка: глагол, файл и что изменилось. Правка легла как +4 −1. Команда оболочки ждёт за одной карточкой с тремя ответами; Esc отклоняет, и ответ действует до конца сессии.

Дочерние агенты не могут спрашивать. Запрещённый argv вообще не доходит до карточки.

03проблемы → решения

Четыре беды терминальных агентов и что rovecode делает с каждой.

Сказано теми словами, какими вы сказали бы за клавиатурой, отвечено механизмом и его границей. Каждая полоса — настоящий фрагмент кадра или настоящий файл настроек.

  1. ~/.rovecode/providers.json
    {
    "default": "kaesra/zai-org/glm-5.3-flash",
    "providers": {
    "kaesra": {
    "baseUrl": "https://api.kaesra.tech/v1",
    "protocol": "openai",
    "keyEnv": "KAESRA_API_KEY"
    },

    01проблема

    Каждый агент приходит приваренным к API одного поставщика и его странице цен.

    что делает rovecode

    Один шов StreamFn и живой реестр провайдеров. 16 названных провайдеров или любая точка доступа, совместимая с OpenAI либо Anthropic, из providers.json; провайдер, добавленный в другом терминале, обслужит уже следующий вызов. Цепочки отката по ролям сдвигаются на 429 или 5xx.

    rovecode provider add homelab http://10.0.0.7:8000/v1 --no-key
  2. The messages panel: a user line, the assistant's note, then compact tool rows for read and edit with +5 −2

    02проблема

    Журнал чата уносит с экрана тот самый файл, который агент правит.

    что делает rovecode

    Панельная кабина: файлы, код, сообщения, план, расход и облачный питомец. Панель сообщений держит каждый вызов инструмента в одной компактной строке; панель кода показывает единственный применённый фрагмент.

    files · code · messages · plan · usage · rovecode
  3. The approval card: needs your permission, bash rm -rf node_modules && git checkout -- ., with deny selected

    03проблема

    Модель просит rm -rf, и обвязка это выполняет, потому что никто не сказал нет вовремя.

    что делает rovecode

    Сначала шаблонные правила, запрещающие по умолчанию, затем вердикты execpolicy, где запрещённое не доходит ни до исполнения, ни до человека, затем карточка подтверждения на исправленных аргументах. 4 наложенных слоя, и ни один не притворяется песочницей.

    rules → execpolicy → approval → runtime denylist + cwd lock
  4. The /rewind picker: rewind to a turn, rows #38 to #41 with #40 selected

    04проблема

    Ход 40 идёт не так, и единственный путь назад — новый разговор.

    что делает rovecode

    Дерево сессии JSONL только на дозапись с цепочкой хешей sha256. /rewind открывает выбор ходов, ветвится от любого и подставляет в редактор полный текст того хода; контрольные точки shadow-git восстанавливают в 3 режимах, не трогая ваш .git.

    /rewind /checkpoints /restore rovecode trace <session-id>
  1. 01кокпит sextant
  2. 02провайдеры с горячей перезагрузкой
  3. 03Клиент MCP
  4. 04Лестница безопасности
  5. 05Дерево сессии + контрольные точки
  6. 06ACP для Zed + JetBrains
  7. 07Безголовый HTTP + SSE
  8. 08Фоновые подагенты
  9. 09Хуки
  10. 10OpenTelemetry

04возможности

Десять возможностей, каждая — перенос со следом file:line.

Rovecode переносит подтверждённые шаблоны из pi, opencode, codex, cline, aider, gemini-cli и других. Перенос ложится только после того, как критик со свежим контекстом сверит его с планкой, записанной до начала работы.

поверхность

кокпит sextant

6 панелей на truecolor-TTY не меньше 100×30: файлы со статусом git, код с полосой выделения и ±-разницей, компактные строки инструментов, план, расход, питомец. 3 палитры, /theme переключает на ходу; --classic сохраняет чат pi-tui.

rovecode · ROVECODE_TUI=sextant|classic · /theme night|ember|contrast
Фрагмент кадра sextant: дерево файлов и панель кода с полосой выделения правки

провайдеры

провайдеры с горячей перезагрузкой

16 встроенных плюс всё, что вы внесёте в providers.json. Каждый вызов разрешает провайдера по живому снимку: добавьте его в другом терминале, и работающая кабина использует его на следующем вызове. Без перезапуска.

rovecode provider add|list|test · rovecode model use provider/model
~/.rovecode/providers.json
{
"default": "kaesra/zai-org/glm-5.3-flash",
"providers": {
"kaesra": {
"baseUrl": "https://api.kaesra.tech/v1",
"protocol": "openai",
"keyEnv": "KAESRA_API_KEY"
},
"homelab": {
"baseUrl": "http://10.0.0.7:8000/v1",
"protocol": "openai",
"noKey": true,
"models": ["qwen3-coder-30b"]
}
}
}
  • контекст

    Клиент MCP

    Серверы stdio и HTTP из .rovecode/mcp.json. Ленивое раскрытие через 2 инструмента реестра, поэтому простаивающий сервер стоит почти ноль токенов.

    mcp_list · mcp_call
  • безопасность

    Лестница безопасности

    Каждый вызов инструмента поднимается на четыре ступени, прежде чем выполниться. Запрещённый argv отклоняется прежде, чем его увидит любой хук; --yolo пропускает запросы, но никогда правила запрета.

    rules → execpolicy → approval → runtime

  • память

    Дерево сессии + контрольные точки

    JSONL только на дозапись с цепочкой хешей sha256. /rewind ветвится, /resume продолжает, контрольные точки shadow-git восстанавливают в 3 режимах и никогда не трогают ваш .git.

    /rewind · /checkpoints · /restore
  • ACP для Zed + JetBrains

    Agent Client Protocol v1 по stdio, официальный SDK.

    rovecode acp
  • Безголовый HTTP + SSE

    Сессии, один поток RunEvent, OpenAPI на /doc. Порт 4100, только петля.

    rovecode serve
  • Фоновые подагенты

    Ограниченные дочерние сессии FIFO, по умолчанию 3 одновременно; заметки приходят на следующем ходе родителя.

    /tasks
  • Хуки

    9 типизированных хуков в .rovecode/hooks.ts, каждый ограничен 5 с. pre_tool может только запретить.

    pre_tool · approval · on_event
  • OpenTelemetry

    Один трейс на прогон: run ⊃ turn ⊃ tool с токенами, задержкой и стоимостью. Точка доступа не задана — экспортёра нет.

    ROVECODE_OTEL_ENDPOINT

05безопасность и развёртывание

Четыре слоя перед каждым вызовом инструмента. Ничто не покидает машину, которую вы не настроили.

Модель безопасности так, как её излагает README, вместе с ограничениями. Каждый слой называет, что он решает и где останавливается; ни один из них не песочница.

  1. слой 01

    01rules

    Правила с шаблонами в режиме deny-by-default по инструменту и argv. Запрещённый шаблон отклоняется до того, как что-либо запустится.

    пределСопоставление шаблонов, а не намерения: новая запись опасной команды уходит на следующий слой.

  2. слой 02

    02execpolicy

    Вердикты по разобранному argv: allow, prompt, forbidden. Запрещённое не доходит ни до выполнения, ни до человека.

    пределЧитает команду, а не оболочку, в которой она пойдёт; алиас или тело скрипта для него непрозрачны.

  3. слой 03

    03approval

    Одна карточка по исправленным аргументам: разрешить, всегда, отклонить. Ответы кэшируются на сессию; подагенты спрашивать не могут.

    пределРешение человека: --yolo пропускает эту ступень, но никогда правила запрета выше неё.

  4. слой 04

    04runtime

    Денилист bash и блокировка cwd при выполнении; Esc убивает текущий вызов, а в Windows — всё его дерево процессов.

    пределДелегирование, а не изоляция. Недоверенной работе место в контейнере или микро-ВМ.

развёртывание и данные

  • 01

    Self-hosted по определению

    Запускается из исходников на вашей машине или в вашем CI. Аккаунт не обязателен: он открывает планы со страницы цен и никогда не запирает CLI. Bun ≥ 1.3.14 — единственное требование.

  • 02

    Никаких обращений домой

    Исходящий трафик идёт только к настроенному вами провайдеру, к перечисленным вами MCP-серверам и к web_fetch, когда модель об этом просит. Каталог цен — офлайн-снимок; самообновления нет.

  • 03

    Телеметрия по выбору

    Экспорт OpenTelemetry выключен, пока не задан ROVECODE_OTEL_ENDPOINT; и тогда он несёт идентификаторы, размеры и исходы — никогда промпты, аргументы или вывод.

  • 04

    Аудиторский след по устройству

    Сессии — это JSONL только на дозапись с цепочкой хешей sha256; каждый запуск экспортирует один trace (run ⊃ turn ⊃ tool), включая отменённые.

  • 05

    Состояние платформ

    Windows в первую очередь: разработка и релизные ворота идут на Windows 11. POSIX-пути протестированы, Linux и macOS ещё не проверены в CI.

  • 06

    Лицензия

    AGPL-3.0-only. Меняйте и распространяйте свободно; запуск изменённой сборки как сетевого сервиса обязывает вас предложить её исходники этим пользователям.

06из терминала

Четыре настоящих кадра в 160×44, важные места пронумерованы.

Отрисованы без экрана художниками sextant при фиксированных часах: тот же путь кода, которым рисует TUI, а не макет. Наведите на кадр, чтобы сгладить его; на строку — чтобы зажечь её метку.

rovecode · atlas · feature/auth · 160×44real frame
кадр sextant после правки: панель кода в режиме разницы показывает один фрагмент, панель сообщений перечисляет строки чтения и правки

Правка легла. Панель кода показывает именно этот фрагмент.

Снято до подтверждённой правки, восстановлено по её собственным якорям после правки без подтверждения.

  1. 1Переключитесь в режим ±-разницы, когда правка ложится
  2. 2Прочитайте +4 −1 против файла на диске
  3. 3Проследите компактные строки: чтение, затем правка
  4. 4Смотрите, как контекст доходит до 13 % от 200k
rovecode · atlas · feature/auth · 160×44real frame
кадр sextant с открытой карточкой подтверждения: bash bun test tests/auth.test.ts, разрешить всегда отклонить

Команда оболочки ждёт кивка. Одна карточка, три ответа.

Подтверждения разрешаются на исправленных аргументах и помнятся в пределах сессии; дочерние агенты не могут спрашивать.

  1. 1Увидьте точный argv до запуска
  2. 2Выберите разрешить, всегда или отклонить; Esc отклоняет
  3. 3Заголовок переходит в ждёт вас
  4. 4Питомец просит кивок, а потом его помнит
rovecode · atlas · feature/auth · 160×44real frame
кадр sextant после прогона: панель кода в режиме run показывает вывод bun test с 18 пройденными, план 4/4 готов

Тесты прошли. Панель $ хранит вывод; заголовок замораживает часы.

Метки PASS и FAIL читают код выхода из собственной строки заголовка инструмента.

  1. 1Прочитайте вывод в режиме $, 18 пройдено
  2. 2План закрывается на 4/4 шагах
  3. 3Строка инструмента несёт последнюю строку вывода
  4. 4Стоимость выходит $0.071 по офлайн-каталогу
rovecode · atlas · feature/auth · 160×44real frame
кадр sextant с открытой доской экипажа: две дорожки, написание тестов идёт и обзор готов

Две фоновые задачи, по одной дорожке каждой, на доске экипажа.

Дочерние сессии делят единственный цикл агента; выход из TUI отменяет каждого живого потомка.

  1. 1Откройте доску ∷ agents по ⌃a
  2. 2Каждая дорожка показывает метку, время и статус
  3. 3Сводка экипажа остаётся в панели плана
  4. 4Тем временем родительский прогон продолжает правки

07быстрый старт

Три команды от клона до работающего агента.

Без настроенного провайдера одиночные прогоны используют сценарного поддельного провайдера — так же работает и дымовой тест упаковки.

  1. 01

    Клонировать и связать (Bun ≥ 1.3.14)

    Точка входа CLI — TypeScript, который запускает bun; node её не выполнит. bun link помещает rovecode в PATH.

    $ git clone https://github.com/9Code-Labs/rovecode && cd rovecode && bun install && bun link
  2. 02

    Подключить модель

    rovecode setup проведёт по шагам: выберите провайдера, вставьте ключ скрыто, один крошечный тестовый вызов, готово. Или сохраните ключ напрямую через rovecode auth set, или направьте ROVECODE_BASE_URL на любую точку доступа, совместимую с OpenAI.

    $ rovecode setup
    или
    $ rovecode auth set anthropic
  3. 03

    Запустить задачу или открыть кабину

    Просто rovecode открывает поверхность sextant. Запрос в кавычках — одиночный прогон; --output json возвращает ровно один объект результата.

    $ rovecode "fix the failing test"
    $ run · exit 0
    Вывод прогона: 18 пройдено, 0 провалено, 41 вызов expect(), 18 тестов в 1 файле.
13
размещённые api
3
локальные среды

08провайдеры

16 встроенных провайдеров или любой URL, совместимый с OpenAI.

Сохранённые учётные данные важнее переменных окружения <NAME>_API_KEY; явная пара ROVECODE_BASE_URL / ROVECODE_API_KEY важнее обоих.

размещённые api

локальные среды

  • kaesra
  • openai
  • anthropic
  • deepseek
  • groq
  • openrouter
  • together
  • mistral
  • cerebras
  • fireworks
  • perplexity
  • xai
  • moondream
  • ollama
  • lmstudio
  • vllm

● локальным средам ключ не нужен · rovecode auth set <имя> сохраняет ключ в ~/.rovecode/credentials.json; он запрашивается в терминале и никогда не выводится.

любая точка доступа · на ходу

Добавьте провайдера в другом терминале; работающая кабина возьмёт его на следующем вызове. Без перезапуска.

$ rovecode provider add homelab http://10.0.0.7:8000/v1 --no-key
~/.rovecode/providers.json
{
"default": "kaesra/zai-org/glm-5.3-flash",
"providers": {
"kaesra": {
"baseUrl": "https://api.kaesra.tech/v1",
"protocol": "openai",
"keyEnv": "KAESRA_API_KEY"
},
"homelab": {
"baseUrl": "http://10.0.0.7:8000/v1",
"protocol": "openai",
"noKey": true,
"models": ["qwen3-coder-30b"]
}
}
}

09их словами

Команды, перенёсшие ревью в терминал.

  • Ревью переехало в терминал, а карточка одобрения стала разговором. Выпускаем столько же, а переписки — втрое меньше.

    Aylin Demirci

    Head of Platform · Northwind Robotics

  • Политика с запретом по умолчанию — причина, по которой безопасность дала согласие. Каждый вызов инструмента — строка в журнале, который мы и так читаем.

    Marcus Oyelaran

    Staff Engineer · Harbourline Payments

  • Двенадцать человек, локальные модели, никакого поставщика между нами. Работает там, где код наших клиентов имеет право работать.

    Inés Ferrer

    Основательница · Meridian Studio

Иллюстративные цитаты вымышленных команд, написанные для страницы, — до запуска их заменят настоящие.

10цены

Бесплатно для старта. С ценой для команды, которая выпускает.

Каждый план запускает того же агента за той же политикой, запрещающей по умолчанию. Планы различаются тем, сколько его вы запускаете — и с кем.

  • Free

    Чтобы попробовать агента на своих репозиториях.

    $0/ месяц

  • Pro

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

    $20/ месяц

  • Max

    Для инженера, чья неделя проходит внутри него.

    $200/ месяц

  • Teams

    Для команды, которая делит кредиты, знания и политику.

    $80/ месяц

    минимум $80 · $40 за полное место / месяц

Все планы

11вопросы

Возражения — с конкретными ответами.

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

Всё здесь взято из разделов README.md: Модель безопасности, Известные ограничения, Наблюдаемость и Лицензия и уведомления. Где README говорит о границе, о ней говорит и эта страница.

Нет. Перед каждым вызовом инструмента и вокруг него работают четыре наложенных слоя: правила политики, запрещающие по умолчанию, вердикты execpolicy (запрещённая команда не доходит ни до исполнения, ни до человека), ворота подтверждения на исправленных аргументах и список запретов bash во время работы с блокировкой cwd. Где выполняется bash — выбирается: напрямую, WSL2 или Docker, но каждая ступень — делегирование, а не изоляция. Для недоверенной работы используйте контейнер или микроВМ.

12взять rovecode

Шесть панелей. Шестнадцать провайдеров. Бесплатно для старта, с ценой для команд.

$ git clone https://github.com/9Code-Labs/rovecode && cd rovecode && bun install && bun link
Rovecode, облачный питомец, с поднятым большим пальцем