
jcode
jcode is an open-source Rust coding agent harness built for terminal-first development, persistent sessions, and highly parallel agent workflows. It can use provider subscriptions, API keys, OpenAI-compatible endpoints, or local models instead of locking users to one model vendor.
jcode is most compelling for terminal power users who value provider independence, persistent sessions, parallel agent execution, and deep customization. Developers who mainly want a polished graphical editor or a simpler vendor-managed coding assistant may prefer a more conventional alternative.

Pricing Plans
Jcode Software
MIT-licensed software with no feature gates; use your own API access, supported subscriptions, or local models.
Hosted Inference
Includes $20 of monthly inference credit; additional hosted usage is billed at 90% of the underlying provider API price.
Enterprise
Organization plans can cover centralized billing, deployment guidance, security review, and priority support.
Core Features
1Agent Workflow
- Interactive terminal UI and headless run mode
- Persistent daemon with attachable clients
- Session resume, fork, transfer, rewind, and compaction
- Background task execution and progress tracking
- Parallel sessions and swarm workflows
2Models & Providers
- Claude, OpenAI, Gemini, and GitHub Copilot login flows
- Azure OpenAI and multiple hosted provider integrations
- Custom OpenAI-compatible endpoints
- Ollama and LM Studio local model support
- Multiple provider accounts and model switching
3Context & Integrations
- Semantic cross-session memory
- AGENTS.md project and global instructions
- MCP server integration
- SKILL.md-based skills
- Claude Code configuration and skill compatibility
- TypeScript SDK for programmatic control
4Advanced Workflows
- Remote daemon operation over SSH
- Paired thin-client gateway
- Configurable hooks and notifications
- Self-development mode
- Model routing for spawned agents
Pros
- Free and MIT licensed with no software feature gates
- Supports both hosted providers and local models
- Strong BYOK and OpenAI-compatible endpoint support
- Persistent client-server design suits multiple simultaneous sessions
- Provides migration compatibility with several existing coding-agent workflows
- Designed around low incremental resource usage when running many sessions
Cons
- Terminal-first rather than a full graphical IDE
- MCP support currently focuses on stdio servers; HTTP and SSE entries are skipped
- Swarm, memory, remote daemon, and self-dev workflows add configuration complexity
- Hosted inference can incur usage charges after the included monthly credit
- Performance comparisons are primarily benchmarks published by the jcode project itself
- Fast release cadence can make behavior and documentation change quickly
Why Choose jcode?
jcode approaches AI coding as a harness problem rather than a model problem. Instead of tying the development environment to one model family, it separates the agent runtime from inference. That makes it possible to keep the same terminal workflow while changing authentication routes, providers, models, or even moving inference to a local machine.
The more distinctive architectural choice is its persistent server/client model. A jcode daemon can own sessions and continue executing work while terminal clients attach and detach. This changes how the tool feels when compared with a workflow where every terminal process represents an isolated agent. Long-running work can live on a workstation or remote server, while additional sessions are opened for unrelated tasks instead of waiting for one conversation to finish.
That design is particularly relevant to developers who have moved beyond asking one coding assistant one question at a time. jcode is intentionally optimized around the idea that several agents may be investigating, implementing, testing, or reviewing different pieces of work simultaneously.
The project also publishes unusually detailed measurements of its own runtime behavior, including startup time and memory consumption as additional sessions are created. Those results are useful for understanding what the maintainers are optimizing for, but they should be treated as first-party benchmarks rather than independent performance guarantees.
Core Workflow
The simplest workflow still looks like a conventional coding agent: open a repository and launch the terminal interface.
jcodeFor tasks that should run without an interactive interface, the same harness can be invoked headlessly.
jcode run "inspect the authentication flow and identify possible race conditions"The architecture becomes more interesting when the agent process is separated from the terminal that displays it. A persistent daemon can be started once and clients can subsequently attach to it.
jcode serve
jcode connectThis model makes it practical to treat coding agents more like persistent workers. A developer can hand one session a test failure, another a refactor, and another a research task instead of serializing all three jobs through one conversation.
Repository-specific behavior is best captured in AGENTS.md. jcode also understands a machine-wide ~/AGENTS.md, which is useful for stable personal conventions that should apply across repositories. The separation is worth preserving: repository rules belong with the repository, while personal defaults should stay global.
Within longer conversations, commands such as /fork, /transfer, and /rewind provide different escape routes from an overloaded context. Forking is appropriate when two approaches should diverge. Transfer is more useful when the task should continue but the accumulated conversation has become expensive or noisy. Rewind is useful when recent turns took the agent in an unproductive direction.
Use Cases
A conventional single-agent coding session does not fully exercise what jcode is designed around. Its architecture becomes more useful as the amount of parallel work increases.
For a medium-sized repository, one practical pattern is to keep implementation and verification separate. One session can modify the code while another reviews the changed area or investigates failing tests. Background commands can continue running without forcing the active agent to waste turns repeatedly polling a build process.
Remote development is another strong fit. Because the daemon owns the actual sessions and tools, jcode can run next to the source code on a desktop, homelab server, or cloud VM. A simple SSH-plus-tmux setup is usually easier to reason about than exposing additional network services:
ssh mybox
tmux new -A -s jcode
jcodeThis keeps file operations, shell commands, Git operations, and model orchestration close to the remote checkout. More advanced users can forward the jcode socket and attach a local client to the remote daemon.
The provider abstraction also makes jcode useful for developers who routinely exhaust subscription quotas or test several model families. The harness does not have to change simply because the preferred inference route changes. A project can move between an OAuth-backed subscription, an API provider, an OpenAI-compatible service, or a local runtime while retaining essentially the same agent environment.
Programmatic workflows are possible through the TypeScript SDK and api-bridge. That makes jcode more than an interactive TUI: it can also become an agent runtime embedded in scripts or internal developer tooling.
Comparison to Alternatives
The most useful way to compare jcode with Claude Code, Codex CLI, Gemini CLI, OpenCode, or Aider is not to ask which model produces the strongest answer. The model can often be changed independently of jcode, so the more durable comparison is the harness around the model.
Claude Code, Codex CLI, and Gemini CLI are natural choices for developers who prefer a first-party agent closely aligned with a particular AI provider. jcode is more attractive when maintaining a consistent workflow across multiple providers matters more than staying inside one vendor's defaults.
OpenCode and Aider are closer comparisons for developers who already value open-source and model flexibility. With jcode, the decision then shifts toward architecture: persistent daemon sessions, built-in memory behavior, parallel orchestration, remote attachment, migration compatibility, and the degree to which you want to customize the harness itself.
jcode's published resource measurements are also relevant if you routinely keep many agent sessions alive. The project specifically optimizes incremental memory consumption per additional session. That advantage matters far less to somebody who normally runs only one agent at a time, so it should not dominate every purchasing or migration decision.
Best Configuration
A sensible jcode setup is usually simpler than the maximum configuration the project allows. Start with one dependable provider and repository instructions, then introduce memory, MCP servers, and parallel agents only when they solve an observed problem.
For example, a conservative configuration can establish a default provider while leaving orchestration opt-in:
[provider]
default_provider = "openai"
[features]
memory = true
swarm = falseFor MCP integrations, project-specific servers are better placed in .jcode/mcp.json than in the global configuration when other contributors need the same tool surface. Global MCP configuration is better reserved for personal utilities that should be available everywhere.
When using local inference, model selection deserves more attention than it does with a managed frontier model. jcode expects the local endpoint to provide the capabilities needed by an agentic workflow, particularly streaming responses and tool/function calling. A model that is good at conversational coding but unreliable at tool use may produce a substantially weaker agent experience.
Swarm concurrency should also be increased intentionally rather than simply maximized. Parallel agents can improve throughput, but they also multiply inference consumption and increase the chance that two workers touch overlapping areas of a repository. The best configuration is therefore determined as much by task independence and model cost as by available CPU or RAM.
Migration Notes
jcode has several compatibility paths intended to make experimentation less disruptive for users of existing coding agents.
Claude Code users have the easiest MCP transition. jcode can read Claude Code MCP configuration directly, including user-level and repository-level configuration, rather than requiring a permanent copied version. Changes to compatible Claude configuration can therefore remain visible to jcode.
The Codex CLI path behaves differently. When jcode does not already have its own MCP configuration, it can perform a one-time import from the Codex configuration. After that import, the resulting jcode file is independently owned, so later Codex configuration changes should not be expected to synchronize automatically.
Existing skill collections can also be easier to reuse than rebuild because jcode understands its own SKILL.md directories and can load skills from Claude Code plugin directories.
Session migration is particularly useful when evaluating jcode without abandoning work already in progress. The project supports resuming sessions from Claude Code, Codex, OpenCode, and pi. That makes a side-by-side evaluation more practical: a developer can start a task in another harness and move the existing session into jcode when they want to test its runtime or orchestration behavior.
The safest migration strategy is therefore incremental. Keep the original coding agent installed, let jcode reuse compatible project instructions and integrations where appropriate, and move a handful of real tasks before changing the team's default workflow. That exposes differences in editing behavior, tool execution, context handling, and model routing under actual repository conditions rather than relying only on benchmark results.
Best For
- Developers who prefer terminal-first AI coding workflows
- Users who want to switch between multiple model providers
- Developers running several coding-agent sessions in parallel
- Remote development on servers, workstations, or homelab machines
- Teams or individuals using OpenAI-compatible or self-hosted model endpoints
- Power users experimenting with agent memory, skills, MCP, and multi-agent orchestration
Not Ideal For
- Developers who primarily want a visual AI-native code editor
- Users who want a completely managed coding environment with minimal configuration
- Workflows dependent on HTTP or SSE MCP transports
- Users who do not want an AI agent executing commands or modifying files from the terminal
- Teams requiring mature centralized administration without evaluating the enterprise offering first
Privacy Notes
jcode runs as local software and can use local models through Ollama or LM Studio, but selecting a remote model provider or jcode hosted inference sends the context required for model requests to the relevant remote service. Provider credentials and configuration are managed locally by jcode, while its optional paired-client gateway is disabled by default and stores pairing tokens hashed on the server. Users handling sensitive repositories should review the policies of whichever remote inference provider they select.
Alternatives
Sources
Update History
- Aug 26, 2026: v0.81.1 shipped fixes around client disconnect handling and session state.
- Aug 26, 2026: v0.81.0 added external wake support for headless embedders and controls for pinning the model and authentication route used by swarm workers.
- Aug 25, 2026: v0.80.1 included memory retrieval fixes, session context forking, background-task improvements, skill compatibility fixes, and per-model reasoning configuration.
- Aug 24, 2026: v0.80.0 expanded integration discovery and allowed subagent models to be selected from the full model picker.
Related Tools
More listings in a similar part of the directory.





