Gajae Code MVP
Encode intention. Decode software.
The coding agent that runs on the plan you already pay for — and answers to your phone.
️ Explore Gajae-Code App → Desktop & self-hosted web GUI
Experimental, community-built third-party project — not an official first-party Gajae-Code app.
Quick Start · Why · Coding Plans · Phone · Workflow · Token Diet · Controllers · Agent Shells · Docs
Log in with the subscription you already have, plan before a single file mutates, execute with evidence — and answer the agent's questions from your terminal, your phone, or your own bot.
Gajae-Code (gjc) is an external coding-agent harness: drop it into any repository or worktree. No separate API billing. No per-token anxiety. No terminal babysitting.
Gajae-Code is an experimental, beta-stage project. Expect rough edges and verify outputs before relying on it for important work.
Most coding agents fail on three fronts: they bill you twice, they mutate before they understand, and they go silent the moment you step away from the keyboard.
| Problem | What Happens | Gajae-Code Fix |
|---|---|---|
| Separate API billing | You pay for a plan and per-token API costs | /login with the coding plan you already pay for — Claude, Codex, Cursor, Copilot, OpenCode Go, GOAT, ClinePass, and more |
| Code-first agents | The agent edits before it understands; you rework | Plan-gated workflow: interview → plan → critique → then mutate, with approval gates |
| Terminal-bound sessions | Agent asks a question at 2 AM; work stalls until morning | Questions route to Telegram/Discord/Slack; you answer from anywhere |
| Context bloat | Whole-file reads and log floods burn the window | Structural summaries, artifact spill, cache-aware routing, compaction |
Install — prebuilt binaries for Linux (x64/arm64), macOS (arm64/x64), and Windows (x64). Bun is not required:
curl -fsSL https://raw.githubusercontent.com/Yeachan-Heo/gajae-code/v0.15.3/scripts/install.sh -o gjc-install.sh
sh gjc-install.sh
gjcPiping main executes mutable content; use it only if you explicitly want the latest installer:
curl -fsSL https://raw.githubusercontent.com/Yeachan-Heo/gajae-code/main/scripts/install.sh | shWindows (PowerShell), tagged:
Invoke-WebRequest -UseBasicParsing https://raw.githubusercontent.com/Yeachan-Heo/gajae-code/v0.15.3/scripts/install.ps1 -OutFile gjc-install.ps1
powershell -File gjc-install.ps1First use — pick your plan and go:
/login pick a provider / coding plan
/skill:deep-interview clarify ambiguous requirements
/skill:ralplan build and critique the plan
gjc ultragoal create-goals --brief-file <approved-plan>Run modes:
gjc # run in the current checkout
gjc --tmux # tmux-backed leader session
gjc --tmux --worktree my-task # isolated worktree for risky work
gjc @screenshot.png "What should I change?" # image inputNightly channel: sh gjc-install.sh --channel nightly (use the tagged installer downloaded above). Full install matrix, Windows setup, update channels, and shell completion: docs/install.md. Bun is only needed to build from source.
Log in once and run GJC on the subscription you already pay for. Run /login inside a session and pick your plan:
| Plan / subscription | OAuth login |
|---|---|
| Claude Pro / Max | anthropic |
| ChatGPT Plus / Pro (Codex) | openai-codex (browser) · openai-codex-device (headless) |
| Cursor | cursor |
| GitHub Copilot | github-copilot |
| OpenCode Zen / OpenCode Go | opencode-zen · opencode-go |
| Kimi Code / Coding Plan / Moonshot | kimi-code · moonshot |
| Z.AI GLM Coding Plan | zai |
| MiniMax Coding Plan (Intl / CN) | minimax-code · minimax-code-cn |
| xAI (Grok) | xai |
| Alibaba Token Plan / Qwen Portal | alibaba-token-plan · qwen-portal |
More OAuth plans — Google Gemini CLI, GitLab Duo, Perplexity Pro/Max, Fire Pass, Xiaomi Token Plan — are covered in docs/models.md.
Key-based coding plans onboard with one command — the preset writes the API type, base URL, env var, compatibility flags, and a live model catalog together, so new models show up without a GJC update:
gjc setup provider --preset commandcode-goat # Command Code GOAT plan (CMD_API_KEY)
gjc setup provider --preset cline-pass # ClinePass (CLINE_API_KEY)/provider/v1/models catalog and keeps every discovered model, including Claude-named IDs, on the provider's OpenAI-compatible /chat/completions transport. Login verifies entitlement with a fixed harmless inference probe before persisting credentials. Aliases: commandcode, goat.clinepass, cline.minimax, minimax-cn, glm, alibaba-token-plan — or /provider add --preset <name> inside the TUI.API-key providers, local runtimes (Ollama, LM Studio, vLLM), and gateways (Cloudflare AI Gateway, Vercel AI Gateway, LiteLLM, and more) all work. Register your own endpoints in models.yml, pool multiple accounts per provider with usage-aware routing, mix vendors per agent role with model presets and profiles, or centralize team credentials with the auth broker/gateway.
When the agent needs a decision, it pings you on Telegram — and you answer from anywhere:
/settings → Notifications in a running session, or headless via gjc notify setup|status|health|test|recovery. Tokens are masked on entry and never displayed again.gjc daemon keeps one safe long-poll owner per bot token, so new sessions attach cleanly without Telegram 409 conflicts.action_needed/reply protocol lets any bot or mobile app route answers back without terminal scraping.Telegram onboarding · Discord · Slack
A deliberately small workflow surface — four skills, four role agents, nothing else:
deep-interview -> ralplan -> ultragoal
└─ optional autoresearch mission when research must ground the plan| Surface | What it does |
|---|---|
deep-interview |
Turns vague requests into concrete requirements. |
ralplan |
Builds and critiques the implementation plan before code changes. |
ultragoal |
Tracks goals through execution, revision, verification, and evidence. |
autoresearch |
Runs goal-directed research missions and ends on a structured verdict. |
executor / architect / planner / critic |
Bundled role agents for implementation and read-only review lanes. |
Also included, opt-in: computer-use (experimental desktop control). See Python REPL and docs/tools/computer.md.
GJC uses the Claude Code / Codex SKILL.md file convention, but loads runtime skills directly only from canonical GJC locations — no configuration required:
# project-local, per repository:
mkdir -p .gjc/skills && cp -r my-skill .gjc/skills/
# user-wide, available in every project:
mkdir -p ~/.gjc/agent/skills && cp -r my-skill ~/.gjc/agent/skills/Claude Code and Codex skill directories are import sources only. gjc skills discover reports them with the exact copy command; copy a skill into a canonical .gjc location before invoking it with /skill:my-skill. Scope trust is explicit via skills.trustProjectSkills / skills.trustUserSkills (both default on), with skills.enabled as the master switch. The four bundled workflow skills above can never be replaced by disk skills. See docs/skills.md for locations, precedence, and diagnostics.
The default dark TUI identity is the GJC red-claw theme; light-appearance terminals default to the bundled blue-crab theme. Explicit theme settings still take precedence.
GJC optimizes both sides of the token bill:
cacheRetention control; Anthropic defaults to long (1h) cache retention because short caches are fragile for long agent runs; provider ranking prefers cheap cacheRead paths; opt-in session-affinity headers let OpenAI-compatible relays reuse server-side prompt caches.artifact:// references instead of flooding the context; compaction and branch summaries keep long sessions inside the window without losing prior work.Cache retention & provider compat · Compaction & branch summaries
The default dark TUI identity is the GJC red-claw theme; light-appearance terminals default to the bundled blue-crab theme. See docs/theme.md for the full catalog and theme.dark / theme.light settings.
Any external controller — OpenClaw, Hermes, Grokbot, a Discord bot, a cron script — drives real GJC
sessions through the broker-bound SDK session CLI and the bundled
sdk-skills/ procedures
(gjc-sdk-discover · gjc-sdk-operate · gjc-sdk-author). Durable
turns and credential-free JSON, never terminal scraping.
Don't read a guide — paste this prompt into your controller and let it wire itself up:
Copy-paste controller setup prompt…Long prompts are safe to leave running: the SDK prompt deadline is a progress-aware inactivity lease
(sdk.promptDeadlineMs, 30 min default) bounded by sdk.promptMaxRuntimeMs (6 h default), renewed only
by attributable tool execution for the accepted turn — not by heartbeats or streaming text.
Need event-
No open issues yet, or sync has not completed.