Overview
jcode is a coding agent harness written in Rust, run as a terminal UI, as a one-shot command, or as a persistent background server that several clients attach to. Its stated design goal is resource efficiency for multi-session work: the README publishes a per-session memory comparison against other agent CLIs, measuring 27.8 MB PSS with local embedding disabled and 167.1 MB with it on, against figures it reports in the hundreds of megabytes for the tools it compares.
Swarm mode is the headline feature. Two or more agents in the same repository are managed by the server, which tells agent B when agent A edits a file that B has already read, so the code does not shift silently under an in-flight session. Agents can direct-message each other, broadcast to the server or to the repository, and spawn their own sub-swarms — turning the first agent into a coordinator and the spawned ones into workers, headed or headless.
Memory is passive by default. Each turn is embedded as a semantic vector and queried against a memory graph by cosine similarity, so relevant history is recalled without the model spending tokens on explicit memory tool calls. Memories are extracted by a side agent on semantic drift, after K turns or at session end, and consolidated in the background; explicit memory tools and RAG-style search over past sessions are available when you want to drive it by hand.
A built-in `browser` tool drives Firefox through the Firefox Agent Bridge with a full action set — open, snapshot, click, type, fill_form, select, screenshot, scroll, upload, eval — and the provider architecture leaves room for other backends. Logins cover subscription-backed OAuth as well as direct API keys, so you can use plans you already pay for.
What it does
- Interactive TUI, non-interactive `jcode run`, and a persistent `serve` / `connect` client-server mode
- Swarm mode: server-managed collaboration between agents in one repo, with file-conflict notifications, DMs and broadcasts, and agent-spawned sub-swarms
- Passive semantic memory — turns embedded into a memory graph, recalled by similarity, extracted and consolidated by a side agent
- Built-in Firefox browser tool with a 16-action surface, set up via `jcode browser setup`
- Built-in OAuth login flows for Claude, OpenAI/Codex, Gemini, GitHub Copilot, Azure, Alibaba, Fireworks, Novita, MiniMax, Meta Muse, LM Studio, Ollama and any OpenAI-compatible endpoint
- Self-updating with ancestry checks — `/update` in the TUI or `jcode update`, refusing to downgrade a dev build it cannot verify
- Voice input through `jcode dictate`, using your own speech-to-text command rather than a bundled stack
Getting started
One install script, then the TUI. Binaries are published for Linux, macOS and Windows.
Install
The install script is the quickest route; Homebrew and a source build are also supported.
# macOS & Linux
curl -fsSL https://jcode.sh/install | bash
# macOS with Homebrew
brew tap 1jehuang/jcode
brew install jcode
# Windows 11 (PowerShell 5.1+)
irm https://jcode.sh/install.ps1 | iexConnect a provider
Log in with a subscription you already have, or point it at a local server.
jcode login --provider claude
jcode login --provider openai
jcode login --provider ollamaRun it
Launch the TUI, or drive it non-interactively; sessions get memorable names you can resume.
jcode # TUI
jcode run "say hello" # one-shot
jcode --resume fox # resume a session
jcode serve # background server
jcode connect # attach a clientEnable the browser tool
Check the backend, run setup once, and the model can then call the browser tool directly.
jcode browser status
jcode browser setupBuild from source
A Rust toolchain is all you need.
git clone https://github.com/1jehuang/jcode.git
cd jcode
cargo build --release
scripts/install_release.shCommands and code are distilled from the project's own documentation — always check the official repo for the latest.
When to use it
- Keep many agent sessions open in one repository without a machine's memory becoming the limit
- Split a large change across parallel agents and let the server reconcile who touched which file
- Carry context between sessions without paying for explicit memory tool calls on every turn
- Drive a coding agent from a script or another program through the non-interactive run mode and the TypeScript SDK
How jcode compares
jcode alongside other open-source autonomous coding agents tools AI/TLDR tracks, ranked by GitHub stars.
| Tool | Stars | What it does |
|---|---|---|
| opencode | ★ 206k | OpenCode is an open source AI coding agent that runs in your terminal, with built-in build and plan agents and an optional desktop app. |
| Claude Code | ★ 145k | Anthropic's agentic coding tool for the terminal, IDE and GitHub: it understands your codebase, executes routine tasks, explains code and handles git workflows from natural-language commands. |
| OpenAI Codex | ★ 123k | OpenAI's cloud and CLI coding agent that writes features, fixes bugs, and proposes code changes across a repo, running tasks in parallel. |
| Gemini CLI | ★ 107k | An open-source command-line AI agent from Google that connects your terminal to Gemini models for reading code, editing files, running shell commands, and searching the web. |
| Pi | ★ 103k | Minimal terminal coding agent harness with four built-in tools, extended through TypeScript extensions, skills and prompt templates instead of forks. |
| OpenHands | ★ 87k | An open-source AI software-development agent that plans tasks, edits files, runs commands, and tests code, usable from a terminal CLI, a local web GUI, or a Python SDK. |
| Cline | ★ 67.7k | Open-source coding agent that runs as a VS Code or JetBrains extension, a terminal CLI, or an embeddable Node SDK, editing code and running commands with human-in-the-loop approval. |
| jcode | ★ 19.4k | Rust terminal coding agent built for low memory, parallel swarms and passive semantic memory |