jcode is an MIT-licensed, Rust-based terminal coding agent harness for developers who run AI coding agents from the command line and need to keep memory use and startup latency low when several sessions run at once.
What it is
jcode is a coding agent harness written in Rust and distributed as a terminal user interface (TUI) and CLI client. It lives in the ecosystem of AI coding agents that sit in a terminal, connect to LLM providers, and act on a local codebase. The project describes itself as the most RAM efficient harness and the most intelligent harness, and it targets Linux, macOS, and Windows. Its topic list places it alongside the established CLI coding agents: ai-agent, ai-coding-agent, coding-agent, cli, tui, terminal, llm, mcp, openai, and claude.
The concrete problem it addresses is resource cost at scale. Single-session agent clients are tolerable, but running many sessions at once multiplies resident memory and startup time until the machine becomes the bottleneck. jcode occupies the slot where a developer would otherwise run a heavier terminal coding agent such as Claude Code, Codex CLI, or OpenCode, and it attacks that cost directly: the README publishes PSS comparisons, time to first frame, and time to first input, all measured across interactive PTY launches.
Key capabilities
- One-line installers ship for both platform families:
curl -fsSL https://jcode.sh/install | bash on macOS and Linux, and irm https://jcode.sh/install.ps1 | iex on Windows 11 with PowerShell 5.1 or newer.
- In-TUI updates run through
/update, which downloads the latest stable release in the background and reloads with the session preserved; jcode update does the same from a terminal, followed by a client restart.
- Update policy is shared between both commands and is conservative: older or equal release versions are skipped, and for development builds the running binary's Git commit is compared with the release tag. Builds ahead of, identical to, or diverged from the release are preserved, and the update stops rather than risk a downgrade when ancestry cannot be verified locally or through GitHub.
- The default update channel is
features.update_channel = "stable"; an explicit "main" channel opts into source-branch updates, and /rebuild or the self-dev build workflow rebuilds a local checkout.
- Memory footprint is measured rather than asserted: 27.8 MB baseline with local embedding off, 167.1 MB for one active session, and 117.0 MB at ten active sessions with local embedding off.
- Startup latency is treated as a first-class metric, with time to first frame reported at 14.0 ms against competing CLIs measured 27.4x to 245.5x slower.
- The harness supports provider setup and MCP, and the project publishes a website, docs, an SDK, and benchmark pages at jcode.sh.
Who uses it and how
- Developers who run multi-session workflows, where the ten-session PSS figures are the deciding number and a harness that multiplies resident memory per session becomes impractical.
- Terminal-first engineers on Linux, macOS, or Windows 11 who want the agent to stay inside an interactive TUI rather than move to a separate editor or GUI client.
- Contributors working from source, who use
/rebuild and the self-dev build workflow to test their own checkout instead of pulling release binaries.
- Teams that prefer a pinned stable release line and rely on the update safeguards to avoid accidental downgrades across machines.
- Users who want setup handled for them, since the README points to provider setup and offers an agent-driven installation path.
Getting started
Install with the shell one-liner curl -fsSL https://jcode.sh/install | bash on macOS and Linux, or irm https://jcode.sh/install.ps1 | iex on Windows 11 PowerShell 5.1 or newer. Homebrew, source builds, and provider setup are covered in the README's detailed installation section.
How it compares
The README benchmarks jcode against seven named terminal coding agents: pi, Codex CLI, OpenCode, GitHub Copilot CLI, Cursor Agent, Claude Code, and Antigravity CLI. On the published PSS and time-to-first-frame tables, jcode reports the lowest figures of that set, with the gap widening at ten active sessions, where OpenCode reaches 3237.2 MB and Claude Code 2300.6 MB. Those numbers are the project's own, measured on a single Linux machine across ten interactive PTY launches, so they are best read as a directional comparison rather than an independent audit.
When to use it — and when not to
Pick jcode when terminal-native work and multi-session memory ceilings are the constraint, and when an MIT licence and a stable update channel fit the way the team ships tooling. The project carries 492 open issues, and the headline performance claims come from a self-published benchmark on one Linux machine, so anyone with a hard latency budget should reproduce the workload before committing. If the workflow depends on a GUI editor, a hosted service, or vendor-managed infrastructure rather than a locally installed harness, the trade-off does not favour this project.
project readme (upstream, from github) — read inline
jcode

The most RAM efficient harness
The most intelligent harness

Website · Docs · SDK · Benchmarks · Features · Install · Quick Start · Further Reading · Contributing
Installation
# macOS & Linux
curl -fsSL https://jcode.sh/install | bash
# Windows 11 (PowerShell 5.1+)
irm https://jcode.sh/install.ps1 | iex
Need Homebrew, source builds, provider setup, or want an agent to set it up for you?
Jump to detailed installation.
Updating
Run /update in the TUI to download the latest stable release in the background
and reload with your session preserved. From a terminal, use jcode update, then
restart the client. Both commands use the same update policy, including for dev builds.
Older or equal release versions are skipped. For a development build, Jcode also
compares the running binary's Git commit with the release tag. Builds ahead of,
identical to, or diverged from the release are preserved. If ancestry cannot be
verified locally or through GitHub, the update stops rather than risking a downgrade.
The displayed dev patch includes a commit-count offset, so it is not used as a
release version comparison.
This is the default features.update_channel = "stable" behavior. An explicit
"main" channel still opts into source-branch updates. Use /rebuild or the
self-dev build workflow to rebuild your own checkout.
Performance & Resource Efficiency
jcode is built to be as performant and resource efficient as possible. Every metric is optimized to the bone, which is important for scaling multi-session workflows. Here we sample a few metrics to show the difference: RAM usage and boot up.
RAM comparison
Time to first frame
Measured on this Linux machine across 10 interactive PTY launches.
Time to first input
(time until typed probe text appears on the rendered screen; Antigravity uses its internal input-ready log marker because the sign-in screen suppresses probe echo.)