Skip to content

Krish0703-irl/gajae-code

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

360 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Disclaimer: Gajae-Code is an experimental, beta-stage early project. Expect rough edges and verify outputs before relying on it for important work.

Gajae-Code autonomous coding-agent hero illustration

Gajae-Code

A red-claw coding-agent harness for crisp interviews, resilient plans, tmux-native execution, and durable verification.

Gajae-Code character mascot

Join the Discord community

Story

I created an earlier OpenAI code harness and an earlier Anthropic-code harness. After living with those harnesses, I felt the same thing kept happening: the harness got bloated, but the work still collapsed into one useful loop.

Usage

Gajae-Code is published through the normal npm registry as gajae-code; that package installs the gjc binary. Install the one-line npm wrapper with Bun for the recommended runtime workflow:

bun install -g gajae-code

The scoped package is also available as @gajae-code/coding-agent. For repository development, use the source checkout commands in Development.

Start the recommended tmux-backed experience:

gjc --tmux

Bare gjc launches directly without creating or attaching a tmux session:

gjc

Run inside an isolated Git worktree when you want a safer branch-local workspace:

gjc --tmux --worktree <path>

Use a dedicated path for throwaway or branch-specific work so the main checkout stays clean.

Provider retry budgets

Gajae-Code has two retry layers:

  • Session auto-retry (retry.maxRetries) retries a failed assistant turn after a terminal transient error.
  • Provider retry budgets control retries inside the provider transport before that terminal error reaches the session.

Configure provider budgets in ~/.gjc/config.yml (or the active project/user settings source):

retry:
  # Similar to codex-cli request_max_retries. Counts retries, not the initial request.
  requestMaxRetries: 4
  # Similar to codex-cli stream_max_retries. Counts replay-safe stream retries.
  streamMaxRetries: 100
  # Session-level terminal-error retries remain separately configurable.
  maxRetries: 3
  maxDelayMs: 300000

requestMaxRetries applies to provider SDK/fetch retries before a stream is established. streamMaxRetries applies only when a provider can safely replay a transient stream failure before user-visible content or in provider-specific replay-safe paths. Invalid auth, unsupported models/providers, malformed requests, context overflow, user aborts, and permanent quota failures remain fail-fast instead of being hidden by retry loops.

Default TUI identity

The default dark TUI identity is the GJC red-claw theme, while light-appearance terminals default to the bundled blue-crab theme. Explicit user theme settings still win.

Why Gajae-Code?

Gajae-Code (gjc) keeps the public agent surface intentionally small while making the runtime around it dependable. It focuses on one useful loop:

deep-interview -> ralplan -> ultragoal
                         └─ optional team execution when parallel tmux workers help

Use deep-interview to clarify intent, ralplan to critique the approach, and $ultragoal to carry the work through implementation, revision, verification, and an evidence summary. Add $team only when the task benefits from coordinated parallel workers; $team is an optional execution mode, not a required handoff step. The result is a compact CLI that stays easy to reason about, but still gives you session state, worktree isolation, tmux orchestration, model routing, tool execution, and persistent evidence when the work needs it.

Workflow surface

Gajae-Code ships four default workflow skills:

Skill What it does
deep-interview Removes ambiguity before planning or code changes.
ralplan Builds and critiques a plan before mutation.
team Optionally coordinates tmux-backed parallel execution when the work benefits from multiple workers.
ultragoal Tracks durable goals through implementation, revisions, verification, and evidence summaries.

And four bundled role agents:

Agent What it does
executor Bounded implementation, fixes, and refactors.
architect Read-only architecture and code-review assessment.
planner Read-only sequencing and acceptance criteria.
critic Read-only plan critique and actionability review.

No sprawling default skill zoo: the harness improves by making this small method better.

A concrete bug-fix pass might look like this:

/skill:deep-interview clarify the bug, affected behavior, non-goals, and acceptance checks
/skill:ralplan turn the clarified bug report into a reviewed fix plan
gjc ultragoal create-goals --brief-file <approved-plan>
# Optional only for parallel work:
gjc team 2:executor "split implementation and verification for this bug fix"
gjc ultragoal complete-goals

That flow is meant to describe the operator sequence, not to guarantee hidden automation: the agent still reports what it changed, what it revised after findings, what checks ran, and what evidence supports the fix.

Development

Install dependencies and local defaults:

bun install
bun run install:defaults

Run the CLI from source:

bun packages/coding-agent/src/cli.ts --help

Default workflow definitions live in source, not committed .gjc copies:

packages/coding-agent/src/defaults/gjc/skills/<name>/SKILL.md
packages/coding-agent/src/prompts/agents/<role>.md

For workflow-definition or rebrand-surface changes, run the project gates:

bun scripts/check-visible-definitions.ts
bun scripts/verify-g002-gates.ts
bun scripts/rebrand-inventory.ts --strict
bun test packages/coding-agent/test/default-gjc-definitions.test.ts

For a package-by-package map, see docs/codebase-overview.md.

Contributors

Thanks to the people and agents helping shape the early Gajae-Code releases, including Yeachan-Heo and IYENTeam. Contributions, bug reports, and release validation are welcome through GitHub and the Discord community.

Inspirations and lineage

Gajae-Code's default TUI identity is the crustacean pair: red-claw for dark appearance and blue-crab for light appearance. It builds on lessons from a small family of agent harnesses while keeping the public GJC surface intentionally focused. Historical attribution is kept in NOTICE.md.

License

MIT. See LICENSE.

About

Gajae Code MVP

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 83.3%
  • Rust 8.9%
  • Python 6.9%
  • JavaScript 0.5%
  • CSS 0.2%
  • Shell 0.1%
  • Other 0.1%