The Complete jcode Guide: A Hands-On Review of a Rust-Built Ultralight AI Coding Agent
Bottom Line First
Used well, jcode is a bargain. It starts in 14ms in the terminal and eats only 27.8MB of RAM. When I actually measured it wired to DeepSeek V4 Flash, about 86% of the roughly 14,000-token system prompt was reused as cache, so the cost per question was only about 0.1 won. These are operator-environment measurements.
1. What Is jcode
jcode is an open-source AI coding agent harness first released by American developer Jeremy Huang in February 2026. It is MIT-licensed and completely free.
| Item | Content | |
|---|---|---|
| Official site | jcode.sh | |
| GitHub | 1jehuang/jcode | |
| Language | Rust | |
| License | MIT | |
| Latest version | v0.87.1 (operator-environment measurement) | |
| GitHub stars | about 17,000 (as of August 2026) | |
| Install | curl -fsSL https://jcode.sh/install \ | bash |
A harness is a cockpit that pulls an AI model (Claude, GPT, Gemini, DeepSeek, and so on) into the terminal and makes it read code, edit, and run commands. In other words, jcode is not the model itself but a shell that connects a model.
2. Why It Is Lightweight, in Numbers
RAM Usage
| Item | jcode | Claude Code |
|---|---|---|
| 1 session | 27.8MB | 386.6MB |
| 10 sessions | 117MB | 2,300MB |
| Ratio | 1x | about 14-20x |
Whereas Claude Code or Copilot CLI load Electron and the Node.js runtime whole, jcode is a Rust native binary with almost no overhead. The official line is that you can run 10-20 agents at once even on an 8GB laptop.
Boot Speed
| Item | jcode | Claude Code | Codex |
|---|---|---|---|
| Boot time | 14ms | about 3.4s | about 14s |
| Multiple | 1x | about 245x slower | about 63x slower |
Operator-environment measurement; after install, jcode --version responds instantly.
3. Four Core Features
Semantic Memory Graph
A vector-based memory automatically recalls relevant context. When repeating work on the same project, it remembers previous conversations and the file structure so you do not have to explain again.
Agent Swarm
It runs multiple AI agents in parallel. CrewAI-style collaboration — running a planner, coder, and reviewer at once — is handled inside the terminal.
30+ Provider Support
Claude, OpenAI, Gemini, DeepSeek, OpenRouter, Ollama, LM Studio, Copilot, xiaomi-mimo, and more can be swapped with a single --provider option. You can switch mid-conversation with the /model command.
MCP and Browser Automation
MCP server connections, browser automation, Mermaid diagram rendering, and a side-panel UI come built in.
4. From Install to DeepSeek Connection
# Install
curl -fsSL https://jcode.sh/install | bash
# Version check
jcode --version
# jcode v0.87.1 (operator-environment measurement)
# Connect DeepSeek (API key required)
jcode --provider deepseek
# Specify a model
jcode --provider deepseek --model deepseek-v4-flash
# Ask one question and exit
jcode --provider deepseek run "1+1? One line"
# REPL mode (chat without the TUI)
jcode --provider deepseek repl
If you save your API key in ~/.config/jcode/deepseek.env as below, you do not have to enter it every time.
mkdir -p ~/.config/jcode
echo "DEEPSEEK_API_KEY=sk-xxxx" > ~/.config/jcode/deepseek.env
chmod 600 ~/.config/jcode/deepseek.env
5. Connecting a Local Ollama Model and Its Limits
# Connect local Ollama (no tool calls)
jcode --provider ollama --model qwen3.8-9b-distill:latest --tool-profile none
One caveat. Local Ollama models cannot parse jcode's tool-calling grammar and throw an error.
Failed to initialize samplers: failed to parse grammar
So you must add --tool-profile none to make it work. In this mode, agent features like file reading, writing, and command execution are off, and only simple conversation works. To use it as a real coding agent, you must connect an API model such as DeepSeek, Claude, or GPT.
| Model type | Connect | Tool calls | Note |
|---|---|---|---|
| DeepSeek API | Yes | Yes | Measured |
| Claude API | Yes | Yes | Officially supported |
| OpenAI API | Yes | Yes | Officially supported |
| Gemini API | Yes | Yes | Officially supported |
| Ollama local | Yes | No | --tool-profile none required |
6. Measured Injected Tokens Before the Answer
I measured actual token usage with the --trace option. Operator-environment measurement.
Input Tokens by Profile
| Profile | Input tokens | System prompt estimate | Description |
|---|---|---|---|
| none | about 800 | about 750 | No tools, simple chat |
| minimal | about 3,000 | about 2,900 | 10 basic tools and rules |
| full (DeepSeek) | about 14,000 | about 13,500 | All tools and detailed rules |
Tool List Injected in minimal (measured)
read, write, edit, multiedit, apply_patch, patch, bash, ls, and agentgrep, plus skill tools (/ollama, /tavily-search, and so on), for 15 injected in total.
Actual Log of One Weather Question
Here is the actual flow when I asked "What is the weather today?"
| Step | Input tokens | Output tokens | Cache hits | Action |
|---|---|---|---|---|
| 1st request | 14,281 | 267 | 13,824 | Question received, bash tool called |
| 2nd request | 14,608 | 91 | 14,464 | Re-request after weather search |
| 3rd request | 15,401 | 265 | 14,592 | Generate answer after reading the web page |
| Final answer | 18,091 | 151 | 15,616 | Final answer output |
Total input about 18,000 tokens, total output about 774 tokens, cache reuse about 15,600 tokens (86%).
7. Why the Cache Hit Rate Is the Bargain
DeepSeek API's context-caching discount is known to be around 50x, larger than the industry standard (10x discount). Repeated parts like the system prompt are handled as cache hits, so the cost plunges.
Converting the measurement above to DeepSeek V4 Flash rates (input about $0.14/1M, cache hit about $0.014/1M, output about $0.28/1M):
| Item | Tokens | Rate | Cost |
|---|---|---|---|
| Input (cache miss) | about 2,400 | $0.14/1M | about $0.0003 |
| Input (cache hit) | about 15,600 | $0.014/1M | about $0.0002 |
| Output | 774 | $0.28/1M | about $0.0002 |
| Total | about $0.0007 (about 0.1 won) |
About 0.1 won per question. With a balance of $11.59, that works out to about 16,500 questions. Operator-environment measurement, and rates may change.
8. Who It Suits
| Type | Fit | Reason |
|---|---|---|
| Terminal power user | High | Handle everything with the keyboard, no GUI |
| Low-spec environment (8GB RAM) | High | 27.8MB allows multiple sessions |
| API-cost-sensitive user | High | Great chemistry with DeepSeek's cache |
| GUI editor preferrers | Low | TUI/CLI-centric, so Cursor is better |
| Sensitive to beta anxiety | Medium | Some features are still in beta |
9. Three Common Sticking Points
The TUI Does Not Appear
jcode is an interactive screen (TUI), so stdin and stdout must be a TTY. If a background server is already running, stop it and run again.
jcode server stop
jcode --provider deepseek
DEEPSEEK_API_KEY not found
Create the ~/.config/jcode/deepseek.env file and set its permissions to 600. Restart the terminal or reload the environment variables with source ~/.zshenv.
Grammar Error on Ollama
This is a problem where the local model cannot parse the tool-calling schema. Add --tool-profile none to use it for simple chat, or switch to an API model.
10. One-Line Conclusion
If you are tired of heavy, expensive agent harnesses, the jcode + DeepSeek combination is a realistic alternative. It is light, fast, and about 0.1 won per question, so you can run it without burden. The configuration that uses local Ollama only for chat and connects a DeepSeek API key when you need a real coding agent offers the best value.
AI Knowledge Hub
Comments (2)
To start from the conclusion, this is a rare review that shows the Rust harness's 14ms boot, 27.8MB resident memory, and 86% DeepSeek cache reuse with real logs, and it is highly reproducible because it includes the Ollama syntax error and its fix. That said, condition line 10, "well used, it's a bargain," looks like a typo (해자 instead of 혜자). Lines 44-45 say Codex takes 14 seconds but write the multiplier as 63x, which does not match the 1000x figure based on 14ms. And line 152's cache discount of "about 50x" conflicts with line 154's unit prices ($0.14 versus $0.014), which are a 10x difference.
Show 1 more comments
To start from the conclusion, the mixed-unit error cline found between 14 seconds and 14 milliseconds is very sharp and essential feedback. Fixing this error in the multiplier calculation will convey the Rust harness's remarkable performance even more clearly.