Skip to content
adw0rdPublic

About

RCode: Терминальный ИИ-агент для разработки с Yandex AI Studio, GigaChat, OpenRouter и локальными моделями. Написан на Rust: работа с кодом, команды, субагенты и сохранение сессий.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

rcode

Терминальный агент для разработки с российскими LLM и свободным выбором провайдера.

Проверки Релиз MIT

Выберите GigaChat, Yandex AI Studio, OpenRouter, локальную модель (Ollama, llama.cpp, MLX, LM Studio на вашем компьютере) или свой OpenAI-совместимый API, подключите ключ и опишите задачу. rcode изучает проект, редактирует файлы, запускает команды и проверяет результат. Написан на Rust, интерфейс и справка — на русском.

GigaChat Ultra создаёт FastAPI-приложение в rcode

GigaChat-3-Ultra создаёт небольшое приложение на FastAPI и проверяет его тестами. Запись настоящего CLI; паузы ожидания сокращены.

Установка

На macOS и Linux с Homebrew:

brew install adw0rd/tap/rcode

Для обновления:

brew update
brew upgrade adw0rd/tap/rcode

После обновления перезапустите rcode. Настройки, ключи и сессии сохраняются отдельно от бинарника.

Скачайте архив для своей платформы со страницы релизов, распакуйте и добавьте rcode в PATH.

Платформа Архитектура архива
macOS, Apple Silicon aarch64-apple-darwin
macOS, Intel x86_64-apple-darwin
Linux, glibc 2.35+ x86_64-unknown-linux-gnu
Windows x86_64-pc-windows-msvc

Или установите из исходников с Rust 1.88+:

cargo install --git https://github.com/adw0rd/rcode.git --locked

Начать работу

Перейдите в папку проекта и запустите:

rcode

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

Создай приложение на FastAPI с GET /health и GET /greet?name=Мир.
Добавь тесты и проверь, что они проходят.

Для другой папки: rcode -C /путь/к/проекту. Для переключения модели используйте /model: последняя выбранная модель стоит первой, её можно принять нажатием Enter. /provider переключает провайдера и показывает доступные балансы в скобках.

Провайдеры

Провайдер Подключение Что понадобится
GigaChat rcode connect gigachat Authorization Key и выданный Scope, например GIGACHAT_API_PERS
Yandex AI Studio rcode connect yandex Секретный API-ключ и Folder ID каталога Yandex Cloud
OpenRouter rcode connect openrouter API-ключ; модели выбираются из каталога провайдера
Свой API rcode connect custom OpenAI-совместимый endpoint и ключ
Локальная модель rcode connect local Запущенный вами сервер Ollama, llama.cpp, MLX или LM Studio на 127.0.0.1; ключ не обязателен

Для GigaChat сертификат подключается автоматически, access token обновляется без участия пользователя. У Yandex идентификатор API-ключа и Folder ID — разные значения: нужен ID каталога.

Нужны собственный API-ключ и баланс или квота провайдера. Подписка на веб-чат не заменяет доступ к API. Для работы агента выбирайте модель с вызовом инструментов; для скриншотов — с поддержкой изображений. Список доступных моделей: rcode models --provider gigachat.

Локальная модель

rcode подключается к уже запущенному OpenAI-совместимому серверу на этом компьютере. Сервер и модель запускаете вы: rcode ничего не скачивает и не меняет настройки сервера.

rcode local discover        # 127.0.0.1:11434, :8080 и :1234
rcode local add qwen --base-url http://127.0.0.1:11434/v1 --model qwen3:8b --activate
rcode exec --profile qwen 'Объясни структуру проекта'

В диалоге: /provider → local → профиль или «Найти локальные серверы» → модель. Профилей может быть несколько, активный сохраняется.

  • Адрес — только 127.0.0.1, localhost или ::1. Удалённые API подключайте через custom.
  • Ключ необязателен. Если сервер его требует, передайте ключ не короче 8 символов: --api-key-stdin при добавлении или rcode local key ИМЯ --stdin. Ключ уходит только на адрес своего профиля; ключи облачных провайдеров из окружения не используются.
  • Контекст задаёт сервер: --context-tokens (по умолчанию 32768) лишь сообщает rcode его размер. У llama.cpp и Ollama rcode читает фактический контекст, когда сервер его сообщает. Футер показывает оценку в токенах.
  • В одном процессе rcode идёт одна генерация на сервер: субагенты ждут очереди. Отдельно запущенные rcode эту очередь не делят.
  • Вызов инструментов зависит от модели и сервера; llama.cpp запускайте с --jinja. Изображения отправляются только при --vision.
  • Для моделей с рассуждениями: поля reasoning и ведущий блок <think> скрываются. Модели, которые думают всегда (например, *-Thinking), добавляйте с --thinking on, если сервер поддерживает этот параметр; для Ollama он недоступен.

Подробнее — в руководстве.

Скиллы и команды

rcode умеет читать скиллы в формате SKILL.md: список «id — описание» всегда перед модели, полный текст загружается инструментом load_skill, когда описание совпало с задачей или вы назвали скилл. Текст скилла — данные и не меняет разрешений.

rcode skills install https://github.com/obra/superpowers.git   # git clone --depth 1 в RCODE_HOME
rcode skills link ~/work/my-skills --name mine                 # подключить каталог без копирования
rcode skills list && rcode skills update                       # каталог и обновление

Установить набор можно и прямо в диалоге: попросите модель — она запустит rcode skills install … через shell, а rcode покажет панель подтверждения. В сессии работают команды /skills (каталог) и /skill ID запрос (явный выбор).

Свои скиллы кладите в каталог данных rcode (RCODE_HOME, по умолчанию — каталог rcode в данных пользователя) в skills/ИМЯ/SKILL.md или в .rcode/skills/ проекта. Пользовательские команды — Markdown-файлы в RCODE_HOME/commands/ или .rcode/commands/: git/pr.md станет /git:pr, $ARGUMENTS и $1…$9 подставляются в текст запроса. Поля allowed-tools, hooks и скрипты наборов rcode не исполняет: права определяет только приложение.

Рекомендуемый набор: rstack

rstack — адаптация рабочих процессов gstack для инструментов и разрешений rcode. Рекомендуем начать с ревью изменений, проверки исправлений и поиска причин ошибок:

rcode skills install https://github.com/adw0rd/rstack.git --name rstack

После установки в диалоге:

/skill rstack:review Проверь текущие изменения и укажи подтверждённые ошибки.
/skill rstack:qa Воспроизведи баг, исправь причину и проверь результат.
/skill rstack:investigate Разберись, почему падает этот тест.

Или для одного запуска:

rcode exec 'Используй rstack:review для текущих изменений; ничего не исправляй.'

Скиллы сохраняют действующие разрешения проекта. Процедуры для браузера, iOS и внешних сервисов требуют отдельных runtime; сам набор их не устанавливает. Описание остальных процедур и ограничений — в README rstack.

Подробнее — в руководстве.

Возможности

  • Чтение, поиск и правка файлов с показом diff; отмена файловых изменений через /undo.
  • Команды shell, запуск проверок и ручные команды через !, например !git status.
  • Выбор модели и поддерживаемого effort без выхода из диалога.
  • Субагенты для исследования, выполнения задач и ревью.
  • Скиллы (SKILL.md) и пользовательские слэш-команды; наборы скиллов ставятся одной командой.
  • Открытие веб-страниц для модели: web_fetch читает http(s)-страницы без ключей и подтверждений.
  • Веб-поиск через API по выбору: Yandex Search API, Brave или Tavily; ключ только в credentials.json.
  • Скриншоты PNG/JPEG/TIFF: вставьте путь к файлу или используйте /attach; если модель без vision — скрин прочитает вспомогательная модель (/vision).
  • Сохранённые сессии, история ввода, автокомпакт и экспорт диалога в Markdown.
  • Полноэкранный интерфейс с Markdown, закреплённым футером, прокруткой и копированием мышью.
  • Баланс OpenRouter и остатки пакетов GigaChat в футере с обновлением раз в минуту.

Основные команды

Команда Действие
/model, /effort Выбрать модель и доступную глубину рассуждений
/provider Выбрать провайдера и посмотреть доступные балансы
/balance Обновить баланс провайдера и посмотреть лимиты ключа
/connect Подключить провайдера
/permissions Выбрать режим доступа
/plan Перейти к планированию без изменений файлов
/diff, /undo Посмотреть изменения или отменить файловые правки
/resume ID Восстановить нужную сессию
/attach "скрин.tiff" Что за ошибка? Отправить изображение с вопросом
/export Сохранить доступную переписку в Markdown
/agents Посмотреть задачи субагентов
/skills, /skill ID Каталог скиллов и явный выбор скилла
/help Все команды и сочетания клавиш

Нажмите / для меню, Ctrl+P/N для истории ввода, Shift+Enter для новой строки. Если терминал не различает Shift+Enter, используйте Alt+Enter или Ctrl+J. Колесо мыши прокручивает ответы, выделение копирует текст. Esc или Ctrl+C прерывают текущую работу.

На вопрос «Какой сейчас баланс?» агент сам проверит остаток текущего провайдера и ответит по данным API. Результат явной проверки сохраняется в диалоге; фоновый индикатор остаётся локальным.

Сессии сохраняются между запусками:

rcode sessions
rcode --resume ID_СЕССИИ

rcode --resume без ID выбирает последнюю сохранённую сессию текущего проекта. При параллельной работе используйте конкретный ID.

Разрешения и данные

По умолчанию rcode показывает diff и запрашивает подтверждение изменений и shell-команд. /permissions auto-edit разрешает файловые правки, /permissions full-access — также shell и внешние каталоги без подтверждений. Режим сохраняется для текущего проекта.

Shell работает с правами вашего пользователя. /undo отменяет правки файловых инструментов; изменения shell отменяются вручную. Известные секретные файлы и игнорируемые пути закрыты для файловых инструментов. Собственный ввод !команда выполняется сразу как явное действие пользователя.

Настройки, ключи и сессии лежат отдельно от бинарника и сохраняются после его обновления. На macOS это ~/Library/Application Support/rcode. Ключи хранятся локально без шифрования; на Unix файлы создаются с правами 0600. Контекст проекта и вложения передаются выбранному вами API при запросах к модели.

Подробнее: руководство, история изменений, участие в разработке.

Лицензия

MIT.

About

RCode: Терминальный ИИ-агент для разработки с Yandex AI Studio, GigaChat, OpenRouter и локальными моделями. Написан на Rust: работа с кодом, команды, субагенты и сохранение сессий.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages