Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4,319 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

English | 한국어 | 中文 | 日本語

Gajae-Code autonomous coding-agent hero illustration

G A J A E - C O D E

Encode intention. Decode software.
The coding agent that runs on the plan you already pay for — and answers to your phone.

Website npm package MIT license Discord

Quick Start · Why · Coding Plans · Phone · Workflow · Token Diet · Controllers · 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.


Why Gajae-Code?

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

Quick Start

Install — prebuilt binaries for Linux (x64/arm64), macOS (arm64/x64), and Windows (x64); the npm/Bun path works everywhere:

bun install -g gajae-code
gjc

First 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 input

Nightly channel: bun install -g gajae-code@nightly. Full install matrix, Windows setup, update channels, and shell completion: docs/install.md.


Bring your coding plan

Coding plans and providers GJC runs on: Claude, ChatGPT/Codex, Cursor, GitHub Copilot, OpenCode Go, Kimi, GLM/Z.AI, MiniMax, Grok, Qwen, Command Code GOAT, ClinePass

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.

New: coding-plan presets

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)
  • Command Code GOAT — pulls the provider's live /models catalog; claude-* models route through native Anthropic Messages, everything else through Chat Completions. Aliases: commandcode, goat.
  • ClinePass — no hardcoded models; GJC fetches Cline's live catalog the same way Cline generates its own. Aliases: clinepass, cline.
  • Also available as presets: minimax, minimax-cn, glm, alibaba-token-plan — or /provider add --preset <name> inside the TUI.
Beyond coding plans: 50+ providers, gateways, local runtimes

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.


Answer from your phone

Gajae Code mobile answers for coding agents hero illustration

When the agent needs a decision, it pings you on Telegram — and you answer from anywhere:

  • Per-session forum topics with live/finalized output, context updates, image attachments, inline buttons, free-text replies, and typing indicators.
  • Configure once from /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.
  • Discord and Slack delivery ship alongside; the generic action_needed/reply protocol lets any bot or mobile app route answers back without terminal scraping.

Telegram onboarding · Discord · Slack


Plan before mutation

A deliberately small workflow surface — four skills, four role agents, nothing else:

deep-interview -> ralplan -> ultragoal
                         └─ optional team execution when parallel tmux workers help
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.
team Coordinates tmux-backed workers when parallelism is worth it.
executor / architect / planner / critic Bundled role agents for implementation and read-only review lanes.

Also included, opt-in: gjc rlm (a Jupyter-style research/REPL mode that synthesizes a notebook and report) and computer-use (experimental desktop control). See Python REPL and docs/tools/computer.md.

Theme defaults

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.


Spend fewer tokens

GJC optimizes both sides of the token bill:

  • Cache hits — per-provider 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.
  • Context savings — file reads return structural summaries instead of whole files; oversized shell output is minimized and spilled to retrievable 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


Let OpenClaw / Hermes drive GJC

GJC ships a native Coordinator MCP bridge, so an external controller like OpenClaw or Hermes orchestrates real GJC sessions through durable turns — never terminal scraping.

Don't read a guide — paste this prompt into your OpenClaw/Hermes controller and let it wire itself up:

Copy-paste controller setup prompt
Set up Gajae-Code (gjc) as your coding-agent backend on this machine. gjc is already installed.

1. Render and install the coordinator MCP setup package (replace the paths):
   gjc setup hermes --root <ABS_REPO_PATH> --profile <PROFILE_NAME> --repo <REPO_NAME> \
     --mutation sessions,questions,reports --profile-dir <YOUR_PROFILE_DIR> --install
   Without --install the command is render-only; re-run with --install to write files.

2. Verify the contract (non-mutating, no LLM call). Both must report ok:
   gjc setup hermes --root <ABS_REPO_PATH> --smoke
   gjc mcp-serve coordinator --check --json

3. Register the MCP server from the installed config. It is equivalent to:
   command: gjc, args: ["mcp-serve", "coordinator"]
   env: GJC_COORDINATOR_MCP_WORKDIR_ROOTS=<ABS_REPO_PATH>,
        GJC_COORDINATOR_MCP_PROFILE=<PROFILE_NAME>,
        GJC_COORDINATOR_MCP_REPO=<REPO_NAME>,
        GJC_COORDINATOR_MCP_SESSION_COMMAND="gjc --worktree",
        GJC_COORDINATOR_MCP_MUTATIONS=sessions,questions,reports

4. To delegate coding work, prefer one call per workflow:
   gjc_delegate_plan / gjc_delegate_execute / gjc_delegate_team
   with { cwd, task, allow_mutation: true, idempotency_key: <fresh-uuid> }.
   Each starts an isolated worktree session and returns a durable turn_id and artifacts.

5. For finer control: gjc_coordinator_start_session -> gjc_coordinator_send_prompt ->
   poll gjc_coordinator_read_turn or bounded gjc_coordinator_await_turn ->
   answer gjc_coordinator_list_questions rows via gjc_coordinator_submit_question_answer ->
   close with gjc_coordinator_report_status.

Rules: every mutating call needs allow_mutation: true plus a fresh idempotency_key.
Treat durable turn state as authoritative; never scrape terminal output.
The session command selector accepts only "gjc" or "gjc --worktree [name]".

For a controller that drives one live session directly, every session also exposes a loopback SDK WebSocket endpoint, the gjc sdk session CLI (list|inspect|send|status|tail), and the bundled sdk-skills/ (gjc-sdk-discover · gjc-sdk-operate · gjc-sdk-author) — reviewed, approval-gated procedures any controller-hosted agent can follow.


Documentation

Start at gajae-code.com or docs/:

The default dark TUI identity is the GJC red-claw theme; light-appearance terminals default to the bundled blue-crab theme. See Themes to swap or build your own.

SDK extensions

Development

bun install
bun run build:native
bun run dev:link       # global `gjc` runs this checkout's source
bun run dev:doctor     # verify the link

See CONTRIBUTING.md and docs/codebase-overview.md for the package map and gates.

Contributors & lineage

Thanks to Yeachan-Heo, IYENTeam, HaD0Yun, and probepark. GJC builds on lessons from a small family of agent harnesses; historical attribution lives in NOTICE.md.

License

MIT. See LICENSE.


"Encode intention. Decode software."

The plan comes first. The mutation earns its place.

About

Gajae Code MVP

Resources

Contributing

Security policy

Stars

2.5k stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages