JCode coding agent harness

Links & Resources

A solo developer just rebuilt the entire layer between you and your AI model - from scratch, in Rust. The result is JCode, an open-source coding agent harness that uses 20× less memory than Claude Code and spawns 63× faster than Codex CLI.

7.1K stars · 794 forks · 4,626 commits · 94 releases · MIT License


What Is a Harness and Why Does It Matter

Tools like Claude Code, Codex CLI, and Cursor all have a layer between you and the AI model. That layer handles your prompts, your tools, your memory, your file access, and your sessions. It's called a harness.

The AI model is the brain. The harness is everything else - and it determines how fast you can work, how much RAM gets eaten, and how many sessions you can run simultaneously.

JCode rebuilt that entire layer in Rust. Not a wrapper. Not a fork. A ground-up rewrite of the harness architecture. The performance numbers speak for themselves.


The Benchmarks

Tested on Linux across 10 interactive PTY launches. Versions: jcode v0.9.1888-dev, Claude Code 2.1.86, Codex CLI 0.120.0, Pi 0.62.0, and 5 other agents.

RAM Usage - 1 Active Session

AgentRAMvs JCode
JCode (no local embedding)27.8 MBbaseline
JCode (with embedding)167.1 MB6.0×
Codex CLI140.0 MB5.0×
Pi144.4 MB5.2×
Cursor Agent214.9 MB7.7×
Antigravity CLI243.7 MB8.8×
GitHub Copilot CLI333.3 MB12.0×
OpenCode371.5 MB13.4×
Claude Code386.6 MB13.9×

RAM Usage - 10 Active Sessions

This is where JCode's Rust architecture really shines:

AgentRAMvs JCode
JCode (no local embedding)117.0 MBbaseline
JCode (with embedding)260.8 MB2.2×
Codex CLI334.8 MB2.9×
Pi833.0 MB7.1×
Antigravity CLI1,021.2 MB8.7×
Cursor Agent1,632.4 MB14.0×
GitHub Copilot CLI1,756.5 MB15.0×
Claude Code2,300.6 MB19.7×
OpenCode3,237.2 MB27.7×

At 10 sessions, Claude Code eats 2.3 GB. JCode uses 117 MB. That's a 20× difference.

Startup Speed

AgentTime to First Framevs JCode
JCode14.0 msbaseline
Antigravity CLI383.5 ms27× slower
Pi590.7 ms42× slower
Codex CLI882.8 ms63× slower
OpenCode1,035.9 ms74× slower
GitHub Copilot CLI1,518.6 ms109× slower
Cursor Agent1,949.7 ms139× slower
Claude Code3,436.9 ms245× slower

JCode renders its first frame in 14 milliseconds. Claude Code takes 3.4 seconds. That's not a rounding error - it's a 245× difference.

Extra RAM Per Additional Session

AgentExtra RAM per Session
JCode~9.9 MB
Codex CLI~21.6 MB
Pi~76.5 MB
Antigravity CLI~86.4 MB
Cursor Agent~157.5 MB
GitHub Copilot CLI~158.1 MB
Claude Code~212.7 MB
OpenCode~318.4 MB

Every new Claude Code session costs 213 MB of RAM. Every new JCode session costs 10 MB. You could run 20 JCode sessions for the RAM cost of one Claude Code session.


The Killer Feature: Swarm

JCode doesn't just run one agent. It runs teams of agents that collaborate on the same codebase.

Here's how it works: you spawn 2+ agents in the same repo. The JCode server automatically manages them. When agent A edits a file that agent B has read, agent B gets notified of the code shift. It can check the diff and adjust, or ignore if irrelevant.

Agents can message each other - DM one agent, broadcast to all, or broadcast to agents in the same repo.

But the real power move: agents can spawn their own teammates. One agent becomes the coordinator, the spawned agents become workers, and they all collaborate autonomously. Groups, messaging channels, and completion statuses are all managed automatically.

Run them headlessly for background work, or headed to watch the swarm in action.


Built-In Memory System

JCode has a native memory system with zero extra setup:

How it works: Every turn and response gets embedded as a semantic vector. On each new turn, JCode queries a graph of memories using cosine similarity to find related entries and injects them into the conversation context.

Memory extraction happens automatically - triggered by semantic drift, a set number of turns, or session end. A memory sideagent extracts entries and stores them in the graph.

Active memory tools let the agent explicitly search or store memories, not just rely on the passive background process.

Session search provides traditional RAG across all previous sessions.

Automatic consolidation runs in ambient mode - reorganizing, checking for staleness, resolving conflicts.

Skills are also loaded dynamically via the same semantic vector matching system.


Every Provider You Can Think Of

JCode has built-in OAuth login flows for the major providers and supports dozens more through OpenAI-compatible endpoints:

First-party integrations: Claude, OpenAI/ChatGPT, Google Gemini, GitHub Copilot, Azure OpenAI, Alibaba Cloud, Fireworks, MiniMax, LM Studio, Ollama

OpenAI-compatible profiles: OpenRouter, DeepSeek, Kimi, Moonshot AI, HuggingFace, Nebius, Scaleway, Groq, Mistral, Perplexity, Together AI, Deep Infra, xAI, Cerebras, Chutes, and more

Also supports: NVIDIA NIM (including DeepSeek-V4 reasoning models), Cursor, Antigravity CLI, any custom OpenAI-compatible endpoint

Multi-account switching is built in. You can have Claude, GPT, and Gemini accounts all connected simultaneously.


More Features

Browser Automation - Built-in browser tool using Firefox via Firefox Agent Bridge. Full suite: open pages, take screenshots, click elements, fill forms, evaluate JavaScript, scroll, upload files.

Session Resume - Resume sessions from other harnesses. Migrating from Claude Code, Codex, OpenCode, or Pi? JCode can pick up where they left off.

Self-Development - Agents can modify their own source code. The infrastructure handles edit → build → test → reload binary → continue work across sessions automatically. (Recommended with frontier models.)

Mermaid Diagrams - Inline rendering using a custom Rust library that's 1,800× faster than the JavaScript implementation. No browser dependency.

Side Panels & Widgets - File viewer, diff viewer, real-time updates, all rendering at 1,000+ fps using a custom terminal implementation.

Voice Input - jcode dictate for voice-to-code via configured STT.


Install

macOS & Linux (One Line)

curl -fsSL https://raw.githubusercontent.com/1jehuang/jcode/master/scripts/install.sh | bash

macOS via Homebrew

brew tap 1jehuang/jcode
brew install jcode

Windows (PowerShell)

irm https://raw.githubusercontent.com/1jehuang/jcode/master/scripts/install.ps1 | iex

From Source

git clone https://github.com/1jehuang/jcode.git
cd jcode
cargo build --release

Quick Start

jcode                          # Launch TUI
jcode run "say hello"          # Non-interactive
jcode --resume fox             # Resume a session
jcode serve                    # Persistent server
jcode connect                  # Connect to server
jcode dictate                  # Voice input

Platform Support

PlatformStatus
Linux x86_64 / aarch64Fully supported
macOS Apple Silicon & IntelSupported
Windows x86_64Native + WSL2
Termux (Android)Supported (pkg install glibc patchelf)

Why Rust Matters Here

Every other major coding agent harness is built in JavaScript/TypeScript (Claude Code, Codex CLI, Copilot CLI, OpenCode) or uses Electron-style runtimes. JavaScript carries a V8 overhead per process. When you run 10 sessions, you're running 10 V8 instances.

Rust compiles to a native binary. One process, minimal overhead, shared memory where possible. That's why the gap between JCode and everything else gets wider with every additional session.

At 1 session, JCode uses 14× less RAM than Claude Code. At 10 sessions, it uses 20×. At 20 sessions, the math only gets more brutal for the JS-based harnesses.



Follow AI Adventure YT for more AI breakdowns and guides.