jcode

新一代编码代理框架,旨在提升技能天花板。

专为多会话工作流、无限自定义能力及极致性能而构建。

安装

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

需要 Windows、Homebrew、源码构建、模型供应商配置,或者想让你的代理帮你配置好? 跳到详细安装说明


性能与资源效率

jcode 旨在尽可能实现高性能与低资源占用。每一项指标都被压榨到极致,这对扩展多会话工作流至关重要。下面我们通过内存占用与启动速度的几项数据,来直观展示差距。

内存占用对比

1 个活跃会话

工具 PSS 对比
jcode(关闭本地嵌入) 27.8 MB 基线
jcode 167.1 MB 多用 6.0× 内存
pi 144.4 MB 多用 5.2× 内存
Codex CLI 140.0 MB 多用 5.0× 内存
OpenCode 371.5 MB 多用 13.4× 内存
GitHub Copilot CLI 333.3 MB 多用 12.0× 内存
Cursor Agent 214.9 MB 多用 7.7× 内存
Claude Code 386.6 MB 多用 13.9× 内存

10 个活跃会话

工具 PSS 对比
jcode(关闭本地嵌入) 117.0 MB 基线
jcode 260.8 MB 多用 2.2× 内存
pi 833.0 MB 多用 7.1× 内存
Codex CLI 334.8 MB 多用 2.9× 内存
OpenCode 3237.2 MB 多用 27.7× 内存
GitHub Copilot CLI 1756.5 MB 多用 15.0× 内存
Cursor Agent 1632.4 MB 多用 14.0× 内存
Claude Code 2300.6 MB 多用 19.7× 内存

首次渲染时间

工具 首次渲染时间 范围 对比
jcode 14.0 ms 10.1–19.3 ms 基线
pi 590.7 ms 369.6–934.8 ms 慢 42.2×
Codex CLI 882.8 ms 742.3–1640.9 ms 慢 63.1×
OpenCode 1035.9 ms 922.5–1104.4 ms 慢 74.0×
GitHub Copilot CLI 1518.6 ms 1357.4–1826.8 ms 慢 108.5×
Cursor Agent 1949.7 ms 1711.0–2104.8 ms 慢 139.3×
Claude Code 3436.9 ms 2032.7–8927.2 ms 慢 245.5×

基于同一台 Linux 机器,10 次交互式 PTY 启动测量。

首次输入延迟

(即从启动到键盘输入字符显示在屏幕上的时间)

工具 首次输入延迟 范围 对比
jcode 48.7 ms 30.3–62.7 ms 基线
pi 596.4 ms 373.9–955.2 ms 慢 12.2×
Codex CLI 905.8 ms 760.1–1675.7 ms 慢 18.6×
OpenCode 1047.9 ms 931.1–1116.9 ms 慢 21.5×
GitHub Copilot CLI 1583.4 ms 1422.8–1880.0 ms 慢 32.5×
Cursor Agent 1978.7 ms 1727.3–2130.0 ms 慢 40.6×
Claude Code 3512.8 ms 2137.4–9002.0 ms 慢 72.2×

基于同一台 Linux 机器,10 次交互式 PTY 启动测量。

额外会话 / 内存扩展

工具 每增加一个会话多占用的 PSS 对比
jcode(关闭本地嵌入) 约 9.9 MB 基线
jcode 约 10.4 MB 多用 1.1× 内存
pi 约 76.5 MB 多用 7.7× 内存
Codex CLI 约 21.6 MB 多用 2.2× 内存
OpenCode 约 318.4 MB 多用 32.2× 内存
GitHub Copilot CLI 约 158.1 MB 多用 16.0× 内存
Cursor Agent 约 157.5 MB 多用 15.9× 内存
Claude Code 约 212.7 MB 多用 21.5× 内存

内存复测所测试的版本:

  • jcode v0.9.1888-dev (be386f2)
  • pi 0.62.0
  • codex-cli 0.120.0
  • opencode 1.0.203
  • GitHub Copilot CLI 1.0.24(单会话复测),GitHub Copilot CLI 1.0.27(10 会话复测)
  • Cursor Agent 2026.04.08-a41fba1
  • Claude Code 2.1.86 (Claude Code)

记忆(Agent 记忆)

jcode 将每一次对话轮次/回复嵌入为语义向量。每一轮都会查询记忆图谱,通过余弦相似度检查高效检索相关记忆条目。命中后的嵌入信息会被注入对话,或可选用记忆侧代理先验证记忆是否相关,并在注入前进行更深度的信息检索。这构成了类人的记忆系统,使代理能够在对话中自动回忆相关信息,无需主动调用记忆工具,也避免了不必要的 Token 消耗。

记忆的提取与存储同样重要。每隔一段时间(根据语义漂移、距上次提取的轮次数、会话结束等条件),记忆侧代理会提取记忆并存入记忆图谱。

框架还提供了显式的记忆工具,让代理能主动搜索或存储记忆,而不必依赖被动后台进程。同时,框架支持会话搜索,方便对以往会话进行传统的 RAG(检索增强生成)。

记忆会通过环境模式定期进行整合,包括重组内容、检查陈旧性及冲突等。


用户界面:侧边面板、图表、信息小组件、渲染、滚动与对齐

侧边面板用于呈现辅助信息。您可以告诉 jcode 代理将某个文件加载到侧边面板,查看其实时更新,或让代理直接向侧边面板写入内容,甚至将其作为差异对比查看器。侧边面板(以及聊天区域)支持内联渲染 Mermaid 图表。

image

为实现这一点,我创建了全新的 Mermaid 渲染库,渲染速度提升 1800 倍,且不依赖浏览器或 TypeScript。请参阅 https://github.com/1jehuang/mermaid-rs-renderer

为了在不挤占屏幕空间的前提下展示重要信息,我开发了信息小组件。信息小组件仅会利用屏幕上的负空间(空闲空间)来显示信息,若没有空间则会自动避让。

jcode 能以超过一千帧的速率渲染。您的显示器可能刷新率跟不上,但这意味着您不会遇到恼人的闪烁问题。

jcode 自定义的回滚机制使其功能远超原生回滚。不过,终端级别的限制导致我无法在自定义回滚中实现平滑的部分行滚动。为此,我开发了自己的终端 Handterm (https://github.com/1jehuang/handterm),它实现了原生滚动 API,且同样非常高效。这项工作仍在推进中。针对普通终端,回滚功能依然表现良好。

jcode 默认左对齐,您可以通过 Alt+C 快捷键、/alignment 命令或修改配置文件切换到居中对齐模式。


智能体集群 (Swarm)

在同一个仓库中生成两个或更多代理,它们将由服务器自动管理以实现原生协作。当代理 A 编辑了一份代理 B 已读取的文件时(即代码在其脚下发生变化),服务器会通知代理 B。代理 B 可以忽略不相关的更改,也可以检查差异以避免冲突。每个代理都具备消息收发能力,可以向单个代理发送私信、向服务器托管的所有其他代理广播消息,或仅与同一仓库中的代理通信。这使您能够在同一仓库中生成多个会话,所有冲突都会自动解决。

代理还能够自主生成自己的集群。

它们拥有一个集群工具,可以生成自己的队友以并行完成任务。

这样,主代理将成为协调者,生成的代理则为执行者。代理分组、消息通道、完成状态等均由系统自动管理。此功能既支持无界面模式,也支持前端交互模式。


OAuth 与模型供应商

jcode 支持基于订阅的 OAuth 流程和众多供应商集成,您既可以使用已付费的模型,也可在需要时回退到直接的 API 供应商。

支持的内置登录流程

  • Claude (jcode login --provider claude)
  • OpenAI / ChatGPT / Codex (jcode login --provider openai)
  • Google Gemini (jcode login --provider gemini)
  • GitHub Copilot (jcode login --provider copilot)
  • Azure OpenAI (jcode login --provider azure)
  • 阿里云编程计划 (jcode login --provider alibaba-coding-plan)
  • Fireworks (jcode login --provider fireworks)
  • MiniMax (jcode login --provider minimax)
  • LM Studio (jcode login --provider lmstudio)
  • Ollama (jcode login --provider ollama)
  • 自定义 OpenAI 兼容端点 (jcode login --provider openai-compatible)

对于自定义 OpenAI 兼容端点,jcode 会提示输入 API 基础地址,并支持本地 localhost 服务器而无需 API 密钥。

自托管端点与 MCP 的配置文件设置

如果您偏好通过编辑文件而非登录界面完成配置,jcode 同时支持自定义 OpenAI 兼容端点配置和 MCP 配置文件。

自托管 OpenAI 兼容端点(含 vLLM)

自定义 OpenAI 兼容供应商会从环境变量或 jcode 应用配置目录中的 env 文件读取覆盖配置。在 Linux 上,这通常是 ~/.config/jcode/,因此默认文件通常为:

~/.config/jcode/openai-compatible.env

本地或局域网 vLLM 服务器示例:

JCODE_OPENAI_COMPAT_API_BASE=http://192.168.1.50:8000/v1
JCODE_OPENAI_COMPAT_DEFAULT_MODEL=Qwen/Qwen3-Coder-30B-A3B-Instruct
# 若服务器需要认证,可选用此字段
OPENAI_COMPAT_API_KEY=your-token-here

注意:

  • jcode login --provider openai-compatible 可为您创建或更新此文件。
  • http:// 纯文本连接仅允许 localhost 和私有局域网 IP。公网远程 HTTP 依然会被拒绝。
  • HTTPS 端点可照常使用。

MCP 配置文件

MCP 配置与 config.toml 分离。

主要配置文件:

  • ~/.jcode/mcp.json 用于全局 MCP 服务器
  • .jcode/mcp.json 用于项目级 MCP 服务器

兼容性回退:

  • .claude/mcp.json

MCP 配置示例:

{
  "servers": {
    "filesystem": {
      "command": "/path/to/mcp-server",
      "args": ["--root", "/workspace"],
      "env": {},
      "shared": true
    }
  }
}

首次运行时,如果 ~/.jcode/mcp.json 尚不存在,jcode 还会尝试从 ~/.claude/mcp.json~/.codex/config.toml 导入 MCP 服务器。

对于无界面或 SSH 会话,OAuth 式供应商支持 jcode login --provider <provider> --no-browser(别名:--headless),jcode 会打印认证 URL/二维码,并回退到手动代码或回调粘贴,而非尝试启动本地浏览器。

对于更脚本化的远程流程,claudeopenaigeminiantigravity 还支持两步模式:

# 第一步:打印可恢复的认证 URL
jcode login --provider openai --print-auth-url --json

# 第二步:稍后使用回调 URL 或授权码完成
jcode login --provider openai --callback-url 'http://localhost:1455/auth/callback?...'
jcode login --provider gemini --auth-code '...'

其他脚本化场景:

# Copilot 设备码流程:打印 URL + 用户码,稍后完成
jcode login --provider copilot --print-auth-url --json
jcode login --provider copilot --complete

# Gmail/Google OAuth,在凭证已配置后使用
jcode login --provider google --print-auth-url --google-access-tier readonly
jcode login --provider google --callback-url 'http://127.0.0.1:8456?...'

待处理的脚本化登录状态存储在 ~/.jcode/pending-login/ 目录下,会自动过期,并在新的脚本化登录发起或恢复时清理过期条目。

对于内置的 OpenAI 登录流程,jcode 默认在 http://localhost:1455/auth/callback 打开本地回调。

Screenshot from 2026-04-02 14-28-51 上图是供应商登录的首页面

支持的供应商

  • 原生 / 一方风格供应商: claudeopenaicopilotgeminiazurealibaba-coding-plan
  • 聚合 / 兼容供应商: openrouteropenai-compatible
  • 其他供应商集成: opencodeopencode-gozai / kimi302aibasetencortecsdeepseekfirmwarehuggingfacemoonshotainebiusscalewaystackitgroqmistralperplexitytogetheraideepinfrafireworksminimaxxailmstudioollamachutescerebrascursorantigravitygoogle

jcode 还支持轻松的多账号切换。您的第一个 ChatGPT Pro 订阅额度用完了?使用 /account 快速切换到第二个。


自定义能力 / 自开发

jcode 正在发明一种全新的自定义范式,不受插件或扩展能力的限制。让您的 jcode 代理进入自开发模式,它将开始修改自己的源代码。jcode 针对自我迭代进行了充分优化,围绕自开发构建了强大的基础设施,使其能够编辑、构建并测试自己的源代码,然后自动重新加载二进制文件,继续在您的一个(或多个)会话中工作。

建议使用前沿模型执行此操作。jcode 的代码库并不简单,较弱的模型可能会造成不易察觉的破坏性改动。GPT 5.5 或当时最新的前沿模型效果不错。


其他细节

魔鬼在细节中。jcode 实现了许多未公开的优化和贴心设计。例如:

Anthropic 的 Claude 缓存 5 分钟后会冷却。如果在这之后初始化 Claude,可能会导致缓存未命中,可能消耗大量 Token。界面会在缓存冷却时提醒您,并在出现意外缓存未命中时通知您。

jcode 附带 Firefox Agent Bridge 设置指南。让您的代理完成设置,即可在 jcode 中获得浏览器自动化能力。

Agent grep 是我为 jcode 代理定制的 grep 工具。它在返回结果中附加文件结构信息(如函数列表及其位移等),使代理无需读取文件即可推断更多内容。它还实现了框架级集成,能够根据代理已看到的内容自适应地截断返回结果,极大节省上下文空间。

输入默认与工作中的代理交错发送。jcode 会在不破坏键值缓存(KV cache)的最早安全时机发送输入。若使用 Shift+Enter 提交,则会发送队列消息,等待代理完整结束当前轮次后再发送。

支持从不同框架恢复会话。Claude Code 崩溃了?从 jcode 恢复该会话,继续您的中断之处。目前支持恢复 Codex、Claude Code、OpenCode 和 pi 的会话。

Screenshot from 2026-04-11 16-28-52 从 Codex 会话恢复的界面截图

技能并非在启动时全部加载。对话会被编码为语义向量,若与技能嵌入匹配(类似记忆搜索),便会自动注入技能。代理提供了技能工具,方便您随时手动激活技能,您也可以通过斜杠命令激活。


iOS 应用 / 原生 OpenClaw

即将推出 jcode 的原生 iOS 应用版本。通过 Tailscale,您可以在手机上使用个人机器上的 jcode 环境。类似于 OpenClaw 的特性将集成在此 iOS 应用中。


其他已规划功能

代理不喜欢在 Git 状态脏乱(有活跃更改)时进行提交。Git 显然不是为多代理工作流设计的,Git worktrees 也并非良策。因此,我相信这是一个诞生新式 Git 原语的机遇。

构建速度改进:在我机器上,启用缓存的增量调试 Cargo 构建大约需要 1 分钟。目标是在 5 到 20 秒内完成。通过重构与调整 crate 边界应能达成。


## 快速开始
# 启动 TUI
jcode

# 非交互式运行单条命令
jcode run "say hello"

# 通过易记名称恢复之前的会话
jcode --resume fox

# 作为持久化后台服务器运行,然后附加更多客户端
jcode serve
jcode connect

# 通过配置好的 STT 命令发送语音输入
jcode dictate

jcode 支持交互式 TUI 使用、非交互式运行、持久化服务器/客户端工作流以及便捷的快捷键听写,无需捆绑语音转文本技术栈。

jcode 工作流演示

jcode 工作流演示


浏览器自动化

jcode 内置一流的 browser 工具,可在代理会话中进行浏览器控制。

当前内置后端:

  • 基于 Firefox Agent Bridge 的 Firefox

当前内置工具操作包括:

  • status
  • setup
  • open
  • snapshot
  • get_content
  • interactables
  • click
  • type
  • fill_form
  • select
  • wait
  • screenshot
  • eval
  • scroll
  • upload
  • press

快速设置:

jcode browser status
jcode browser setup

设置完成后,模型可直接使用内置的 browser 工具。界面也会紧凑地摘要浏览器工具调用,例如打开 URL、点击选择器或向字段键入内容(不会回显敏感输入文本)。

注意:

  • 供应商/工具架构已就绪,可接入其他后端
  • 当前硬编码连接的后端为 Firefox
  • 日后可在同一浏览器工具基础上添加 Chrome bridge / 远程调试风格的供应商

延伸阅读


详细安装说明

配置

若您希望由另一个代理来为您安装 jcode,请将以下提示词交给它:

在这台机器上为我设置 jcode。

1. 检测操作系统、可用的包管理器和 shell 环境,然后使用下方最合适的命令安装 jcode,不要将我引导至其他地方:

   - 若有 macOS 且 Homebrew 可用:
     brew tap 1jehuang/jcode
     brew install jcode

   - macOS 或 Linux 通过安装脚本:
     curl -fsSL https://raw.githubusercontent.com/1jehuang/jcode/master/scripts/install.sh | bash

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

   - 若以上途径不适用,从源码安装:
     git clone https://github.com/1jehuang/jcode.git
     cd jcode
     cargo build --release
     scripts/install_release.sh

   - 对于 Linux x86_64 上的本地自开发/重构工作,优先选择:
     scripts/dev_cargo.sh build --release -p jcode --bin jcode
     scripts/dev_cargo.sh --print-setup
     scripts/install_release.sh

2. 验证 `jcode` 是否已加入 `PATH`。
3. 在新建终端窗口/会话中启动 `jcode` 一次,确认能够成功启动。
4. 在尝试任何交互式登录流程前,先评估哪些供应商已非交互式可用,并优先选择它们。检查现有的本地凭据、配置文件、CLI 会话和环境变量,例如:
   - Claude: `~/.jcode/auth.json`, `~/.claude/.credentials.json`, `~/.local/share/opencode/auth.json`, `ANTHROPIC_API_KEY`
   - OpenAI: `~/.jcode/openai-auth.json`, `~/.codex/auth.json`, `OPENAI_API_KEY`
   - Gemini: `~/.jcode/gemini_oauth.json`, `~/.gemini/oauth_creds.json`
   - GitHub Copilot: `~/.config/github-copilot/` 下的现有认证
   - Azure OpenAI: `~/.config/jcode/azure-openai.env`, `AZURE_OPENAI_*`, 或现有的 `az login`
   - OpenRouter: `OPENROUTER_API_KEY`
   - Fireworks: `~/.config/jcode/fireworks.env`, `FIREWORKS_API_KEY`
   - MiniMax: `~/.config/jcode/minimax.env`, `MINIMAX_API_KEY`
   - 阿里云编程计划: 若存在,使用现有 jcode 配置/env
5. 优先使用已配置的供应商,并在适当时通过 `jcode auth-test --all-configured` 或针对特定供应商的认证测试进行验证。
6. 仅在没有任何可用的已配置供应商时,指导我完成所需的最少手动步骤:
   - Claude: `jcode login --provider claude`
   - GitHub Copilot: `jcode login --provider copilot`
   - OpenAI: `jcode login --provider openai`
   - Gemini: `jcode login --provider gemini`
   - Azure OpenAI: `jcode login --provider azure`
   - Fireworks: `jcode login --provider fireworks`
   - MiniMax: `jcode login --provider minimax`
   - 阿里云编程计划: `jcode login --provider alibaba-coding-plan`
   - OpenRouter: 帮我设置 `OPENROUTER_API_KEY`
   - Anthropic 直接 API: 帮我设置 `ANTHROPIC_API_KEY`
7. 安装完成后,运行简单冒烟测试 `jcode run "say hello"` 确认工作正常。
8. 若我需要浏览器自动化,请同时检查 `jcode browser status`。若浏览器自动化未就绪,运行 `jcode browser setup`,验证内置 `browser` 工具可正常工作,并解释任何仍需我手动完成的步骤。
9. 说明任何仍需我手动操作的步骤,尤其是浏览器 OAuth、设备登录、API 密钥输入或浏览器扩展授权。

此提示词旨在作为 jcode 自身或任何其他编码代理的复制粘贴式引导命令。

快速安装

# macOS & Linux
curl -fsSL https://raw.githubusercontent.com/1jehuang/jcode/master/scripts/install.sh | bash
# Windows (PowerShell)
irm https://raw.githubusercontent.com/1jehuang/jcode/master/scripts/install.ps1 | iex

macOS 通过 Homebrew 安装

brew tap 1jehuang/jcode
brew install jcode

从源码构建(所有平台)

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

对于 Linux x86_64 上的本地自开发/重构工作,推荐使用:

scripts/dev_cargo.sh build --release -p jcode --bin jcode
scripts/dev_cargo.sh --print-setup

此封装脚本在可用时自动使用 sccache,并偏向选用快速的本地链接器配置(clang + lld),而非假定每台机器的 mold 配置都有效。还可通过 --print-setup 打印当前链接器/缓存配置,方便诊断慢速构建路径。

然后,将其软链接到 PATH:

scripts/install_release.sh

平台支持

平台 状态
Linux x86_64 / aarch64 完全支持
macOS Apple Silicon 及 Intel 支持
Windows x86_64 支持(原生 + WSL2)

参考资料