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