Gajae-Code (gjc) — кодинг-агент, работающий по уже оплаченной подписке

· 2 мин чтения
coding-agent agent-harness cli tui telegram
📂 Исходный код на GitHub

Gajae-Code (gjc) — внешний кодинг-агент с plan-gated workflow: вход по существующим coding-подпискам, вопросы через Telegram/Discord/Slack, экономия контекста и SDK для внешних контроллеров. MIT, около 2,8 тыс. звёзд на GitHub.

Gajae-Code (gjc) — кодинг-агент, работающий по уже оплаченной подписке

Gajae-Code (gjc) — опенсорсный (MIT) кодинг-агент для терминала с девизом «Encode intention. Decode software». Его главная идея сформулирована прямо в подзаголовке проекта: агент работает по подписке, которая у вас уже оплачена, — без отдельного API-биллинга и тревожного подсчёта токенов. Вторая идея: сначала план, потом правки — агент интервьюирует вас, строит и критикует план, и только после аппрува трогает код. Третья: агент не привязан к терминалу — когда ему нужно решение, он присылает вопрос в Telegram, Discord или Slack, и вы отвечаете откуда угодно, хоть со смартфона посреди ночи.

Формально Gajae-Code называют «внешним харнессом кодинг-агента»: его можно бросить в любой репозиторий или worktree. Проект экспериментальный и находится на бета-стадии — авторы честно предупреждают о шероховатостях и советуют проверять результат перед использованием в важной работе.

Проблемы, которые решает gjc

Авторы формулируют четыре типовых боли существующих агентов:

Проблема Что происходит Решение в Gajae-Code
Отдельный API-биллинг Вы платите за подписку и за токены по API /login по уже оплаченной подписке: Claude, Codex, Cursor, Copilot, OpenCode Go, GOAT, ClinePass и другие
Агент «сначала правит» Меняет код до того, как понял задачу; переделки Plan-gated workflow: интервью → план → критика → правки, с гейтами подтверждения
Привязка к терминалу Агент задаёт вопрос в 2 ночи — работа стоит до утра Вопросы уходят в Telegram/Discord/Slack, ответ можно дать откуда угодно
Раздувание контекста Чтение целых файлов и потоки логов съедают окно Структурные саммари, выгрузка артефактов, кэш-осознанный роутинг, компакция

Установка и режимы запуска

Готовые бинарники для Linux (x64/arm64), macOS (arm64/x64) и Windows (x64); Bun нужен только для сборки из исходников. Есть npm-пакет gajae-code. Установка через скрипт с зафиксированным тегом версии:

curl -fsSL https://raw.githubusercontent.com/Yeachan-Heo/gajae-code/v0.15.3/scripts/install.sh -o gjc-install.sh
sh gjc-install.sh
gjc

Первый запуск:

/login                       выбрать провайдера / coding-план
/skill:deep-interview        прояснить туманные требования
/skill:ralplan               построить и покритиковать план
gjc ultragoal create-goals --brief-file <approved-plan>

Режимы работы:

gjc                                # в текущем чекауте
gjc --tmux                         # leader-сессия на базе tmux
gjc --tmux --worktree my-task      # изолированный worktree для рискованных задач
gjc @screenshot.png "Что поменять?"   # подача изображения

Ядро проекта написано на Rust (каталог crates, Cargo-тулчейн), обвязка — на TypeScript под Bun.

Подписки вместо API-ключей

После /login gjc работает поверх подписок, которые вы уже оплачиваете. Поддерживаются OAuth-входы для:

Подписка OAuth-метод
Claude Pro / Max anthropic
ChatGPT Plus / Pro (Codex) openai-codex (браузер) · openai-codex-device (headless)
Cursor cursor
GitHub Copilot github-copilot
OpenCode Zen / OpenCode Go opencode-zen · opencode-go
Kimi Code / Moonshot kimi-code · moonshot
Z.AI GLM Coding Plan zai
MiniMax Coding Plan minimax-code · minimax-code-cn
xAI (Grok) xai
Alibaba Token Plan / Qwen Portal alibaba-token-plan · qwen-portal

Есть и пресеты для ключевых планов одной командой — gjc setup provider --preset commandcode-goat или --preset cline-pass: пресет прописывает тип API, base URL, переменную окружения и подтягивает живой каталог моделей, так что новые модели появляются без обновления gjc.

За пределами подписок работают 50+ провайдеров по API-ключам, локальные рантаймы (Ollama, LM Studio, vLLM) и шлюзы (Cloudflare AI Gateway, Vercel AI Gateway, LiteLLM). Свои эндпоинты регистрируются в models.yml, поддерживаются пулы аккаунтов одного провайдера с usage-aware роутингом, смешивание вендоров по ролям агента и централизованные командные креденшалы через auth broker.

План до мутаций

Поверхность workflow нарочно маленькая — четыре скилла и четыре ролевых агента:

deep-interview -> ralplan -> ultragoal
               └─ опциональная autoresearch-миссия, когда план требует исследования
  • deep-interview — превращает расплывчатые запросы в конкретные требования.
  • ralplan — строит и критикует план реализации до любых изменений кода.
  • ultragoal — ведёт цели через исполнение, ревизии, верификацию и сбор доказательств.
  • autoresearch — запускает направленные исследовательские миссии со структурированным вердиктом.
  • executor / architect / planner / critic — ролевые агенты для реализации и read-only ревью.

Опционально доступен экспериментальный computer-use — управление десктопом. Правки кода проходят через гейты подтверждения: мутация должна «заслужить своё место».

Ответ со смартфона

Когда агенту нужно решение, он стучится в мессенджер:

  • Форум-топики сессий в Telegram с живым выводом, обновлениями контекста, вложениями-картинками, инлайн-кнопками и свободным текстом в ответ.
  • Настройка один раз: через /settings → Notifications в сессии или headless — gjc notify setup|status|health|test|recovery. Токены маскируются при вводе и больше не показываются.
  • gjc daemon держит одного безопасного long-poll-владельца на токен бота, чтобы новые сессии подключались без конфликтов Telegram 409.
  • Наряду с Telegram работают Discord и Slack; универсальный протокол action_needed/reply позволяет любому боту или мобильному приложению возвращать ответы без скрейпинга терминала.

Экономия токенов

GJC оптимизирует обе стороны токен-счёта:

  • Кэш-попадания — управление cacheRetention по провайдерам (для Anthropic по умолчанию длинное 1-часовое удержание кэша), ранжирование провайдеров по дешёвым путям cacheRead, опциональные session-affinity заголовки для переиспользования серверных prompt-кэшей.
  • Экономия контекста — чтение файлов возвращает структурные саммари вместо целых файлов; раздутый вывод шелла сворачивается и выгружается в retrievable-ссылки artifact:// вместо затопления контекста; компакция и branch-саммари удерживают длинные сессии в окне без потери проделанной работы.

Внешние контроллеры и SDK

Любой внешний контроллер — OpenClaw, Hermes, Grokbot, Discord-бот, cron-скрипт — может вести настоящие сессии gjc через брокерский SDK session CLI (gjc sdk session list/inspect/send/status/tail/...) и комплект процедур sdk-skills/ (gjc-sdk-discover, gjc-sdk-operate, gjc-sdk-author). Обмен — durable-ходы и JSON без креденшалов, никакого скрейпинга вывода терминала. Для событийного fan-out по многим worktree есть Coordinator MCP-мост (gjc mcp-serve coordinator). Дедлайн длинного промпта — прогресс-зависимый lease на бездеятельность (30 минут по умолчанию) с потолком в 6 часов, продлеваемый только реальным исполнением инструментов.

Интеграция с оболочками агентов

GJC подключается к популярным десктопным/мобильным оболочкам на трёх разных уровнях поддержки:

Хост Поддержка Что даёт
Paseo ★★★★★ первоклассная Нативный ACP-провайдер, ставится самой gjc (gjc setup paseo): каталог моделей, режимы Default/Plan, уровни thinking, настоящие permission-промпты, мобильное управление
Orca ★★★★☆ gjc как кастомный CLI-агент (команда gjc без аргументов), worktree на сессию, diff-ревью и SSH-worktree силами Orca
T3 Code ★★★☆☆ эксперимент Нативного харнесса пока нет upstream — gjc запускается рядом

С другими инструментами gjc живёт бок о бок, не заменяя их: для Codex CLI и Claude Code рекомендованный сценарий — gjc --tmux или gjc --tmux --worktree <name>.

Скиллы, темы и кастомизация

GJC использует конвенцию SKILL.md из Claude Code / Codex, но загружает рантайм-скиллы только из канонических локаций: .gjc/skills/ внутри проекта или ~/.gjc/agent/skills/ глобально. Каталоги Claude Code и Codex служат источниками импорта (gjc skills discover подскажет точную команду копирования; gjc migrate делает импорт неинтерактивно). Четыре встроенных workflow-скилла нельзя подменить скиллами с диска.

Темы: тёмная red-claw по умолчанию, светлая blue-crab, плюс миграционные темы claude-code, codex и opencode для лёгкого перехода «на глаз». Для диагностики кастомизаций есть единая read-only команда gjc customize doctor — она показывает источник, приоритет и статус каждого скилла, хука, MCP-сервера или плагина, не печатая креденшалов.

Конфигурация и обновления

Бюджеты ретраев настраиваются в ~/.gjc/config.yml; невалидная аутентификация, переполнение контекста и отмены пользователем остаются fail-fast. При старте gjc в фоне проверяет релизы на GitHub (только уведомляет, ничего не ставит), а gjc update атомарно заменяет бинарник с релиза.

Сообщество уже обросло расширениями: gjc-remote (управление сессиями с удалённых хостов через Discord), маркетплейс плагинов oh-my-gajae-code и сторонний десктоп-GUI gajae-code-app.

Проект развивается активно (более 8,6 тыс. коммитов, около 2,8 тыс. звёзд на GitHub), документация живёт на gajae-code.com и в каталоге docs/.

Источник: https://github.com/Yeachan-Heo/gajae-code