机器翻译正文由机器翻译自项目原始文档(英文),排版经程序统一处理,可能存在偏差,请以原项目仓库为准。
安装
# macOS & Linux
curl -fsSL https://jcode.sh/install | bash
# Windows 11 (PowerShell 5.1+)
irm https://jcode.sh/install.ps1 | iex
需要 Homebrew、源码构建、提供者设置,或者想让代理为你完成设置吗?跳转到详细安装。
正在更新
在 TUI 中运行 /update 以在后台下载最新的稳定版本,并保持会话进行重载。在终端中,使用 jcode update,然后重启客户端。两个命令都使用相同的更新策略,包括开发版本。
较旧或相等的发行版本将被跳过。对于开发版本,Jcode 还会比较运行中的二进制文件的 Git 提交与发布标签。领先、相同或已经分支的构建会被保留。如果无法在本地或通过 GitHub 验证祖先关系,更新将停止,以避免降级。显示的开发补丁包括提交计数偏移,因此不用于发布版本比较。
这是默认的 features.update_channel = "stable" 行为。显式的 "main" 渠道仍然可以选择源分支更新。使用 /rebuild 或自开发构建流程来重新构建你自己的检出版本。
性能 & 资源效率
jcode 被构建为尽可能高效和资源节约。每一个指标都被优化到极致,这对于扩展多会话工作流非常重要。在这里,我们抽取几个指标来展示差异:内存使用和启动时间。
内存比较
1 个活动会话
|
10 active sessions
|
无头会话(群集工作者)
群集工作者以无头模式运行,因此在扩展代理时,这就是关键数字。每个会话完成了5个实际模型回合(文件列表、文件读取、仓库搜索、摘要、回复)及工具调用,然后测量了每个进程的总PSS。jcode 会话共享一个守护进程;Claude Code 每个会话运行一个 claude -p --input-format stream-json 进程。两者都使用了 claude-sonnet-4-6。
| 并发无头会话 | jcode | 克劳德代码 | 比较 |
|---|---|---|---|
| 1 | 32.6 MB | 261.0 MB | 8.0× 更少的内存 |
| 5 | 51.0 MB | 908.6 MB | 17.8× 更少的内存 |
| 10 | 66.7 兆字节 | 1749.7 兆字节 | RAM少26.2倍 |
| 20 | 90.6 MB | 3376.8 MB | 37.3× 更少的内存 |
| 每增加一次课程 | ~3.1 兆字节 | ~164 兆字节 | ~少54倍内存 |
于 2026-09-29 在 Linux 上使用 jcode v0.89.19-dev 测量(默认构建,本地嵌入未编译)以及 Claude Code 2.1.267。可通过 python3 scripts/bench_headless_memory.py 重现。
到第一帧的时间
| 工具 | 首帧时间 | 范围 | 比较 |
|---|---|---|---|
| jcode | 14.0 毫秒 | 10.1–19.3 毫秒 | 基线 |
| 反重力命令行界面 | 383.5 毫秒 | 363.1–415.4 毫秒 | 27.4× 更慢 |
| π | 590.7 毫秒 | 369.6–934.8 毫秒 | 慢 42.2 倍 |
| Codex 命令行界面 | 882.8 毫秒 | 742.3–1640.9 毫秒 | 63.1× 更慢 |
| 开放代码 | 1035.9 毫秒 | 922.5–1104.4 毫秒 | 慢 74.0 倍 |
| GitHub Copilot 命令行界面 | 1518.6 毫秒 | 1357.4–1826.8 毫秒 | 慢 108.5 倍 |
| 光标代理 | 1949.7 毫秒 | 1711.0–2104.8 毫秒 | 慢 139.3 倍 |
| 克洛德代码 | 3436.9 毫秒 | 2032.7–8927.2 毫秒 | 245.5× 更慢 |
在这台 Linux 机器上,跨 10 次交互式 PTY 启动进行测量。
第一次输入所需时间
(直到输入的探针文本出现在渲染屏幕上所需的时间;Antigravity 使用其内部的输入就绪日志标记,因为登录屏幕会屏蔽探针回显。)
| 工具 | 首次输入时间 | 范围 | 比较 |
|---|---|---|---|
| jcode | 48.7 毫秒 | 30.3–62.7 毫秒 | 基线 |
| 反重力命令行界面 | 383.7 毫秒 | 363.4–415.7 毫秒 | 慢 7.9 倍 |
| π | 596.4 毫秒 | 373.9–955.2 毫秒 | 慢 12.2 倍 |
| Codex 命令行界面 | 905.8 毫秒 | 760.1–1675.7 毫秒 | 18.6× 更慢 |
| 开放代码 | 1047.9 毫秒 | 931.1–1116.9 毫秒 | 21.5× 更慢 |
| GitHub Copilot 命令行界面 | 1583.4 毫秒 | 1422.8–1880.0 毫秒 | 慢32.5倍 |
| 光标代理 | 1978.7 毫秒 | 1727.3–2130.0 毫秒 | 慢 40.6 倍 |
| 克洛德代码 | 3512.8 毫秒 | 2137.4–9002.0 毫秒 | 慢72.2倍 |
在这台 Linux 机器上通过 10 次交互式 PTY 启动进行测量。在此运行中,Antigravity CLI 未经过身份验证;其登录屏幕正常显示并发出内部 CLI ready for user input 标记,但未回显输入的探针。
附加客户端 / 内存扩展
| 工具 | 每增加一次会话的额外 PSS | 比较 |
|---|---|---|
| jcode(本地嵌入关闭) | ~9.9 兆字节 | 基线 |
| jcode | ~10.4 兆字节 | 1.1× 更多内存 |
| π | ~76.5 兆字节 | 7.7× 更多内存 |
| Codex 命令行界面 | ~21.6 兆字节 | 2.2× 更多内存 |
| 开放代码 | ~318.4 兆字节 | 32.2× 更多内存 |
| GitHub Copilot 命令行界面 | ~158.1 MB | 16.0× 更多内存 |
| 光标代理 | ~157.5 MB | 15.9× 更多内存 |
| 克洛德代码 | ~212.7 MB | 21.5× 更多内存 |
| 反重力命令行界面 | ~86.4 MB | 8.7× 更多内存 |
为此修正的内存重跑测试的版本:
jcode v0.9.1888-dev (be386f2)pi 0.62.0codex-cli 0.120.0opencode 1.0.203GitHub Copilot CLI 1.0.24用于1次会话重跑,GitHub Copilot CLI 1.0.27用于10次会话重跑Cursor Agent 2026.04.08-a41fba1Claude Code 2.1.86 (Claude Code)Antigravity CLI 1.0.0
记忆(代理记忆)
Jcode 将每一次对话/响应嵌入为语义向量。每次对话都会查询记忆图,通过余弦相似度检查高效地找到相关记忆条目。嵌入命中结果会被引入对话中,或者可选择使用记忆辅助代理,该代理验证记忆是否相关,并可能在将其注入对话之前执行更多信息检索工作。这产生了类似人类的记忆系统,使代理能够自动回忆与对话相关的信息,而无需主动调用记忆工具或消耗大量令牌。要检索记忆,它们也必须被提取和存储。每隔一段时间(语义漂移、距离上次提取的 K 次对话、会话结束等),记忆会由记忆辅助代理提取,并存入记忆图中。
该框架还提供了显式记忆工具,允许代理主动搜索或存储记忆,而不依赖被动的后台进程。框架还提供了会话搜索功能,用于对以往会话进行传统 RAG 查询。
记忆会通过环境模式定期自动整合。这会重新组织记忆,检查是否陈旧或存在冲突等。
UI:侧边面板、图表、信息小部件、渲染、滚动、对齐
panel 工具可从 Markdown 内容或链接的 Markdown/PDF 文件打开新的桌面面板,并支持更新、聚焦、关闭和列出操作。有关 API、PDF 限制和兼容性详情,请参见 桌面面板。
侧边面板是辅助信息的存放区。告诉你的 jcode 代理将文件加载到侧边面板中,即可实时看到更新,或者直接让代理写入侧边面板,或将其用作差异查看器。侧边面板(以及聊天)能够内联渲染 mermaid 图表。
为了实现这一点,我创建了一个新的 mermaid 渲染库,可以将图表渲染速度提高 1800 倍。它不依赖浏览器或 Typescript。详见 https://github.com/1jehuang/mermaid-rs-renderer。
为了在不占用可用于响应的屏幕空间的情况下向你显示重要信息,我开发了信息小部件。信息小部件只会占用屏幕上的负空间来显示信息,如果没有内容,它们会自动消失。
Jcode 可以以超过一千帧每秒的速度渲染。你的显示器无法以刷新率显示出来,但这意味着不会出现闪烁问题。
Jcode 的自定义回滚实现让它能做比原生回滚更多的事情。然而,终端层面有限制,我无法在自定义回滚中实现平滑的部分行滚动。为了解决这个问题,我制作了自己的终端。Handterm https://github.com/1jehuang/handterm 实现了原生滚动 API,并且效率很高。这仍在开发中。对于普通终端,滚动已经很好实现。
Jcode 默认左对齐。你可以通过 Alt+C 热键、/alignment 命令或在配置中切换到居中模式。
要在 TUI 和 CLI 输出中全局禁用表情符号,请在 ~/.jcode/config.toml 下的 [display] 中设置 emoji = false,或使用 JCODE_NO_EMOJI=1 启动。Jcode 会用紧凑的 ASCII 标记替代表情符号,同时保留其他 Unicode 文本。
群集
在同一个仓库中生成两个或更多代理,它们将由服务器自动管理,以实现本地协作。当代理A编辑代理B已经读取的文件(代码在其脚下变动)时,服务器会通知代理B。代理B可以忽略不相关的通知,或者可以检查差异以确保没有冲突。每个代理都具备消息功能,可以直接消息发送给单个代理,广播给服务器上托管的所有其他代理,或者仅发送给在该仓库中工作的代理。这允许你在同一仓库中生成多个会话,并且所有冲突都能自动解决。
代理也能够自主生成它们自己的蜂群。它们有一个蜂群工具,允许它们生成自己的队友以并行完成任务。这样做会将主代理变成协调者,而生成的代理则变成工作者。代理组、它们的消息通道、它们的完成状态等都由系统自动管理。这可以在无界面或有界面状态下完成。
群模式将根推理与工作者的努力分开。在 ~/.jcode/config.toml 中配置每种模式:
[agents]
swarm_root_effort = "low" # /effort swarm
swarm_deep_root_effort = "high" # /effort swarm-deep
默认都为 max。可接受的级别有 none、minimal、low、medium、high、xhigh 和 max,对应供应商支持的范围。努力切换器显示配置的根级别。这些设置不会更改工作人员 swarm_effort。环境覆盖为 JCODE_SWARM_ROOT_EFFORT 和 JCODE_SWARM_DEEP_ROOT_EFFORT。
OAuth 和供应商
jcode 支持基于订阅的 OAuth 流程和许多供应商集成,因此您可以使用您已付费的模型,并在需要时仍然回退到直接 API 供应商。
支持的内置登录流程
- 克劳德 (
jcode login --provider claude) - OpenAI / ChatGPT / Codex(
jcode login --provider openai) - 谷歌 Gemini (
jcode login --provider gemini) - GitHub Copilot (
jcode login --provider copilot) - Azure OpenAI (
jcode login --provider azure) - 阿里云编码计划(
jcode login --provider alibaba-coding-plan) - 烟花 (
jcode login --provider fireworks) - Novita AI(
jcode login --provider novita,API 密钥) - MiniMax (
jcode login --provider minimax) - Meta 模型 API / Muse (
jcode login --provider meta-muse) - LM Studio (
jcode login --provider lmstudio) - Ollama (
jcode login --provider ollama) - 自定义 OpenAI 兼容端点(
jcode login --provider openai-compatible)
对于自定义 OpenAI 兼容端点,jcode 现在会提示输入 API 基址,并支持本地 localhost 服务器,无需 API 密钥。
本地 OpenAI 供应商使用 Responses WebSocket v2,带有机会性后台预热和 HTTPS 回退。有关行为、控制和验证,请参阅 OpenAI WebSocket 传输。
自托管端点和 MCP 的配置文件设置
如果您更喜欢通过编辑文件而不是使用登录 UI 配置,jcode 支持自定义 OpenAI 兼容端点配置和 MCP 配置文件。
OpenAI 兼容供应商
许多托管服务使用标准 OpenAI /v1/chat/completions API。jcode 通过一个共享的 OpenAI 兼容供应商与它们进行通信,因此您几乎可以使用任何此类端点,而无需等待专门的集成。
设置的方法有两种:
-
内置命名配置文件 — jcode 为几个流行的 OpenAI 兼容服务提供现成的配置文件。通过 ID 登录,jcode 会为您填充基础 URL 和密钥环境变量:
jcode login --provider <profile-id> # for example: jcode login --provider openrouter jcode login --provider orcarouter jcode login --provider deepseek jcode login --provider opencode # OpenCode Zen jcode login --provider moonshotai jcode login --provider meta-muse # Meta Model API / Muse Spark jcode login --provider yolo-auto # Yolo-Auto内置的 OpenAI 兼容配置文件 ID 包括:
openrouter、orcarouter、deepseek、zai、kimi、moonshotai、meta-muse(Meta Model API / Muse Spark)、yolo-auto(Yolo-Auto)、opencode(OpenCode Zen)、opencode-go、302ai、baseten、cortecs、huggingface、nebius、scaleway、stackit和firmware。每个配置文件只设置端点和密钥变量;您仍然可以使用/model(或--model)选择模型。运行jcode login不带提供者可查看交互式列表。 -
任何其他端点 — 使用
jcode login --provider openai-compatible或下面描述的可脚本jcode provider add命令,将 jcode 指向任意 OpenAI 兼容 API(托管或本地)。
这些端点的有用环境覆盖:
JCODE_STREAM_IDLE_TIMEOUT_SECS— 提高基础流式空闲超时(默认 180 秒)以适应在发出令牌前需要静默思考的慢推理模型。高推理负载会自动按比例扩展(高 2x,极高 3x,最大 4x)。也可以在config.toml中设置为[provider] stream_idle_timeout_secs。- 每个模型
context_window(别名context_limit)在[[providers.<name>.models]]条目中 — 当端点没有可用的/v1/models响应时设置上下文窗口,以防 jcode 回退到通用 200k 默认值。 extra_body— 在每个聊天/完成请求体中注入非标准顶级字段,以支持需要这些字段的后端。请参见下面的 额外请求体字段。
有关自托管、本地运行时和确切配置文件格式的详细信息,请参见下文。
自托管 OpenAI 兼容端点,包括 vLLM
对于代理和脚本,首选路径是单次提供者配置文件命令。它会将命名配置文件写入 ~/.jcode/config.toml,在请求时将机密存储在 jcode 的私人应用配置目录中,并打印准确的运行/验证命令:
# Secret-safe setup for a hosted OpenAI-compatible API.
printf '%s' "$MY_API_KEY" | jcode provider add my-api \
--base-url https://llm.example.com/v1 \
--model my-model-id \
--api-key-stdin \
--set-default \
--json
# Smoke test the profile.
jcode --provider-profile my-api auth-test --prompt 'Reply exactly JCODE_PROVIDER_SETUP_OK'
# Use it directly.
jcode --provider-profile my-api run 'hello'
对于不需要认证的本地服务器:
jcode provider add local-vllm \
--base-url http://localhost:8000/v1 \
--model Qwen/Qwen3-Coder-30B-A3B-Instruct \
--no-api-key \
--set-default
内置本地配置文件适用于常见的桌面/本地运行时:
# Ollama: start the local server and install a model first.
ollama pull llama3.2
jcode login --provider ollama
jcode --provider ollama --model llama3.2 run 'hello'
# LM Studio: start the Local Server, load a chat model, then use the exact
# model identifier shown by LM Studio or by curl http://localhost:1234/v1/models.
jcode login --provider lmstudio
jcode --provider lmstudio --model '<model-id>' run 'hello'
Ollama 和 LM Studio 都提供与 OpenAI 兼容的 /v1/models 和 /v1/chat/completions 端点。jcode 使用流式聊天完成、函数/工具调用,以及支持视觉的本地模型的 OpenAI 风格图像内容。如果本地服务器需要令牌,请在 jcode login 期间输入,或使用 --api-key-stdin 创建命名配置文件。
有用的标志:
--api-key-env NAME:引用现有环境变量,而不是存储密钥。--api-key-stdin:读取并存储密钥,而不将其放入 shell 历史中。--context-window TOKENS:持久化模型上下文窗口以进行模型选择和路由。--overwrite:替换同名的现有配置文件。--model-catalog:除了已配置的模型外,还使用端点的/models响应。
生成的配置文件也可以在 ~/.jcode/config.toml 中手动编辑:
[provider]
default_provider = "my-api"
default_model = "my-model-id"
[providers.my-api]
type = "openai-compatible"
base_url = "https://llm.example.com/v1"
api_key_env = "JCODE_PROVIDER_MY_API_API_KEY"
env_file = "provider-my-api.env"
default_model = "my-model-id"
# Optional: prevent model names such as `gpt-5-*` from automatically enabling
# `reasoning_effort` on gateways that reject it.
disable_reasoning_heuristics = true
[[providers.my-api.models]]
id = "my-model-id"
context_window = 128000
# Explicitly enable `/effort` and select this model's initial effort. Set
# `reasoning = false` on an individual model to disable it instead.
reasoning = true
reasoning_effort = "high"
与 Anthropic Messages 兼容的网关使用带有 type = "anthropic-compatible" 的相同命名配置文件界面。该配置文件可以选择承载、自定义头或无身份验证,并将网关特定的头附加到每个请求上:
[provider]
default_provider = "corp-claude"
default_model = "claude-sonnet-4-6"
[providers.corp-claude]
type = "anthropic-compatible"
base_url = "https://gateway.example.com/anthropic/v1"
auth = "bearer"
api_key_env = "CORP_CLAUDE_TOKEN"
default_model = "claude-sonnet-4-6"
[providers.corp-claude.headers]
x-tenant-id = "tenant-42"
[[providers.corp-claude.models]]
id = "claude-sonnet-4-6"
context_window = 200000
对于基于直接环境的配置,ANTHROPIC_BASE_URL 会覆盖非 OAuth 消息端点,并且 ANTHROPIC_AUTH_TOKEN 作为持有者令牌发送。Claude OAuth 流量始终继续使用 Anthropic 的官方端点。
额外的请求体字段(extra_body)
一些兼容 OpenAI 的后端需要非标准的顶级请求字段。例如,NVIDIA NIM DeepSeek-V4 推理模型(deepseek-ai/deepseek-v4-flash,deepseek-ai/deepseek-v4-pro)仅在请求中包含 chat_template_kwargs 时才启用思考;如果没有,它们会在不进行推理的情况下回复(或者对于某些部署,会挂起)。jcode 允许你以两种方式注入任意顶级字段。
-
每个命名配置文件,通过
extra_body在config.toml中(一个 TOML 表按原样合并到 JSON 体中):[providers.my-nim] type = "openai-compatible" base_url = "https://integrate.api.nvidia.com/v1" api_key_env = "NVIDIA_API_KEY" default_model = "deepseek-ai/deepseek-v4-flash" [providers.my-nim.extra_body.chat_template_kwargs] thinking = true reasoning_effort = "high" -
对于内置配置文件(例如
nvidia-nim)或任何端点,可以通过JCODE_OPENAI_EXTRA_BODY环境变量(一个 JSON 对象字符串)进行设置。它可以存放在提供者的环境文件(~/.config/jcode/nvidia-nim.env)中,与 API 密钥放在一起:JCODE_OPENAI_EXTRA_BODY={"chat_template_kwargs":{"thinking":true,"reasoning_effort":"high"}}
来自 extra_body 的键最后合并,并覆盖任何具有相同名称的 jcode 生成的 body 字段(在键冲突时 JCODE_OPENAI_EXTRA_BODY 优先于配置 extra_body)。无效的值会被记录并忽略,而不会导致请求失败。
自定义兼容 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
# Optional if your server expects auth
OPENAI_COMPAT_API_KEY=your-token-here
注意事项:
jcode login --provider openai-compatible可以为您创建或更新此内容。http://的普通版本被localhost和私有 LAN IP 接受。公共远程 HTTP 仍然被拒绝。- HTTPS 端点照常工作。
MCP 配置文件
MCP 配置独立于 config.toml。
主要配置文件:
~/.jcode/mcp.json用于全局 MCP 服务器.jcode/mcp.json用于项目本地 MCP 服务器
Claude 代码兼容性:
~/.claude.json(Claude Code 的用户配置):顶级mcpServers,以及当前目录下每个项目的projects.<abs_path>.mcpServers服务器- 仓库根目录的
.mcp.json(Claude Code 的项目配置) .claude/mcp.json(旧版回退)
Claude Code 配置在每次加载时都会实时读取,而不是复制到 jcode 的全局配置中。因此,新增、编辑和删除会立即生效,不会留下过时的快照(内联环境值也不会被重复)。对于从 Codex CLI 迁移的情况,当 ~/.jcode/mcp.json 不存在时,jcode 仍会从 ~/.codex/config.toml 执行一次性导入。该导入的文件随后由 jcode 管理;之后 Codex 的更改不会自动同步。导入的环境值也会被复制,并可能包含机密信息。
接受标准的 mcpServers 密钥和 jcode 的历史 servers 密钥。jcode 目前仅支持 stdio(基于命令的)服务器;HTTP/SSE 条目("type": "http" / "sse")会被识别并记录日志后跳过。
MCP 配置示例:
{
"mcpServers": {
"filesystem": {
"command": "/path/to/mcp-server",
"args": ["--root", "/workspace"],
"env": {},
"shared": true
},
"websearch": {
"command": "/path/to/slow-mcp-server",
"timeout_secs": 120
}
}
}
对 MCP 服务器(tools/call、tools/list、initialize)的每个请求默认在 30 秒后超时。在工具确实需要更长运行时间的服务器上设置 timeout_secs。
对于无头或 SSH 会话,OAuth 风格的提供程序支持 jcode login --provider <provider> --no-browser(别名:--headless),因此 jcode 会打印授权 URL/二维码,并回退到手动输入代码或回调粘贴,而不是尝试启动本地浏览器。
对于更易脚本化的远程流程,claude、openai、gemini 和 antigravity 也支持两步模式:
# Step 1: print a resumable auth URL
jcode login --provider openai --print-auth-url --json
# Step 2: complete later with the callback URL or auth code
jcode login --provider openai --callback-url 'http://localhost:1455/auth/callback?...'
jcode login --provider gemini --auth-code '...'
额外可脚本化的情况:
# Copilot device flow: print URL + user code, then complete later
jcode login --provider copilot --print-auth-url --json
jcode login --provider copilot --complete
# Gmail/Google OAuth after credentials are already configured
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 上打开本地回调。
上图是提供商登录的第一页。
支持的提供商
- 原生/一方风格提供商:
claude、openai、copilot、gemini、azure、alibaba-coding-plan - 聚合/兼容提供商:
openrouter、orcarouter、yolo-auto、openai-compatible - 额外提供商集成:
opencode、opencode-go、zai/kimi、302ai、baseten、cortecs、deepseek、firmware、huggingface、moonshotai、nebius、scaleway、stackit、groq、mistral、perplexity、togetherai、deepinfra、fireworks、novita、minimax、xai、lmstudio、ollama、chutes、cerebras、cursor、antigravity、google
Jcode 还支持轻松的多账户切换。在你的第一个 ChatGPT Pro 订阅中用完了代币?/account 并快速切换到你的第二个。
可定制性 / 自我开发
Jcode 正在发明一种新的可定制性方式。一种不受插件或扩展功能限制的方式。告诉你的 jcode 代理进入自我开发模式,它就会开始修改自己的源代码。Jcode 已优化以自我迭代。围绕自我开发有完善的基础设施,使其能够编辑、构建和测试自己的源代码,然后重新加载自己的二进制文件,并在你(可能有多个)会话中自动继续工作。
建议你为此使用前沿模型。jcode 代码库并不简单,较弱的模型可能会做出细微但破坏性的更改。GPT 5.5 或可用的最新前沿模型效果良好。
杂项
魔鬼藏在细节中。jcode 实现了许多未记录的优化和精巧功能。一些示例:
Anthropic 的 Claude 缓存会在 5 分钟后失效。如果在这 5 分钟之后启动 Claude,你会遇到缓存未命中,这可能会消耗大量 Token。界面会在缓存失效时提醒你,并在出现意外缓存未命中时通知你。
jcode 附带了设置 Firefox Agent Bridge 的说明。请让你的 agent 设置它,然后你就可以在 jcode 中进行浏览器自动化。
Agent grep 是我为 jcode agent 制作的 grep 工具。它在 grep 返回结果中添加了文件结构信息(例如函数列表、偏移量等),以便 agent 可以推断文件中更多信息而无需实际读取文件。它还实现了一个测试级别的集成,根据 agent 已经看到的内容自适应截断返回结果。这大大节省了上下文。
输入默认与正在工作的 agent 交错发送。它会在安全且不破坏 KV 缓存的情况下尽快发送输入。按 Shift+Enter 提交,它会发送一个队列发送,并在 agent 完全完成其回合之前等待。
从不同的测试环境恢复会话。Claude 代码中断了吗?从 jcode 恢复会话并从你离开的地方继续。会话恢复支持 codex、claude code、opencode 和 pi。
codex 会话的 /Resume 图像
技能并非在启动时全部加载。对话会被嵌入为语义向量,如果嵌入命中类似记忆的内容,会自动注入技能。agent 还提供一个技能工具,让你随时手动激活技能。你也可以通过斜杠命令激活技能。
iOS 应用程序 / 原生 OpenClaw
jcode 的原生 iOS 应用版本即将推出。这将允许您通过 Tailscale 在手机上使用个人电脑的环境来操作 jcode。类似 Openclaw 的功能将与此 iOS 应用程序捆绑提供。
其他计划功能
代理不喜欢在有未提交更改的脏 git 状态下工作。显然,Git 并不是为多代理工作流而设计的,而 git worktrees 也不是一个好的解决方案。鉴于此,我认为这是一个为新的类似 git 的原语诞生的机会。
构建速度改进:在我的机器上,启用缓存的增量调试 cargo 构建大约需要 1 分钟。目标是 5-20 秒。重构和 crate 接缝应该能够实现这一点。
快速开始
# Launch the TUI
jcode
# Run a single command non-interactively
jcode run "say hello"
# Resume a previous session by memorable name
jcode --resume fox
# Run as a persistent background server, then attach more clients
jcode serve
jcode connect
# Send voice input from your configured STT command
jcode dictate
jcode 支持交互式 TUI 使用、非交互式运行、持久化服务器/客户端工作流,以及无需附带语音转文字工具的快捷键友好式听写。
浏览器自动化
jcode 包含一个一流的内置 browser 工具,用于在代理会话中控制浏览器。
当前内置的后端:
- 通过 Firefox 代理桥连接 Firefox
当前内置的工具操作包括:
statussetupopensnapshotget_contentinteractablesclicktypefill_formselectwaitscreenshotevalscrolluploadpress
快速设置:
jcode browser status
jcode browser setup
设置完成后,模型可以直接使用内置的 browser 工具。UI 还会紧凑地总结浏览器工具调用,例如打开 URL、点击选择器或在字段中输入内容而不回显敏感输入文本。
注意事项:
- 提供者/工具架构已为额外的后端准备就绪
- Firefox 是当前默认的内置后端
- Chrome 桥接/远程调试类型的提供者可以以后在相同的浏览器工具之上添加
进一步阅读
- jcode.sh/docs — 安装、提供者、配置、键绑定
- jcode.sh/swarm — 一个仓库中的多个编码代理
- jcode.sh/sdk — TypeScript SDK:通过你自己的程序驱动 jcode 会话
- jcode.sh/bench — 基准测试方法和结果
- 环境模式 / 张开爪
- 浏览器提供者协议
- 内存架构
- 群体架构
- 服务器架构
- 安全系统
- 赞助发现赞助商入职
- Windows 笔记
- 封装器和外壳集成
- 重构笔记
详细安装
设置
如果您想让其他代理为您设置 jcode,请给它以下提示:
Set up jcode on this machine for me.
1. Detect the operating system, available package managers, and shell environment, then install jcode using the best matching command below instead of referring me somewhere else:
- macOS with Homebrew available:
brew tap 1jehuang/jcode
brew install jcode
- macOS or Linux via install script:
curl -fsSL https://jcode.sh/install | bash
- Windows PowerShell:
irm https://jcode.sh/install.ps1 | iex
- From source if the above paths are not appropriate:
git clone https://github.com/1jehuang/jcode.git
cd jcode
cargo build --release
scripts/install_release.sh
- For local self-dev / refactor work on Linux x86_64, prefer:
scripts/dev_cargo.sh build --release -p jcode --bin jcode
scripts/dev_cargo.sh --print-setup
scripts/install_release.sh
2. Verify that `jcode` is on my `PATH`.
3. Launch `jcode` once in a new terminal window/session to confirm it starts successfully.
4. Before attempting any interactive login flow, assess which providers are already available non-interactively and prefer those first. Check existing local credentials, config files, CLI sessions, and environment variables such as:
- 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: existing auth under `~/.config/github-copilot/`
- Azure OpenAI: `~/.config/jcode/azure-openai.env`, `AZURE_OPENAI_*`, or an existing `az login`
- OpenRouter: `OPENROUTER_API_KEY`
- Fireworks: `~/.config/jcode/fireworks.env`, `FIREWORKS_API_KEY`
- Novita AI: `~/.config/jcode/novita.env`, `NOVITA_API_KEY`
- MiniMax: `~/.config/jcode/minimax.env`, `MINIMAX_API_KEY`
- NVIDIA NIM: `~/.config/jcode/nvidia-nim.env`, `NVIDIA_API_KEY`
- Alibaba Cloud Coding Plan: existing jcode config/env if present
5. Prefer whichever provider is already configured and verify it with `jcode auth-test --all-configured` or a provider-specific auth test when appropriate.
6. Only if no usable provider is already configured, guide me through the minimal manual step needed:
- 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`
- NVIDIA NIM: `jcode login --provider nvidia-nim`
- Alibaba Cloud Coding Plan: `jcode login --provider alibaba-coding-plan`
- OpenRouter: help me set `OPENROUTER_API_KEY`
- Anthropic direct API: help me set `ANTHROPIC_API_KEY`
7. After setup, run a simple smoke test with `jcode run "say hello"` and confirm it works.
8. If I want browser automation, also check `jcode browser status`. If browser automation is not ready, run `jcode browser setup`, verify the built-in `browser` tool works, and explain any remaining manual step.
9. Explain any manual step that still needs me, especially browser OAuth, device login, API key entry, or browser extension approval.
这是为了 jcode 本身或任何其他编码代理的复制粘贴引导提示。
快速安装
# macOS & Linux
curl -fsSL https://jcode.sh/install | bash
在 Termux 上,先安装 glibc 运行时和 patchelf,这样安装程序才能将下载的 Linux 二进制文件修补到 Termux 的 glibc 动态链接器,并创建一个可以绕过 Termux 的 LD_PRELOAD 垫片的启动器:
pkg install glibc patchelf
curl -fsSL https://jcode.sh/install | bash
# Windows 11 x64 or ARM64 (PowerShell 5.1+)
irm https://jcode.sh/install.ps1 | iex
Windows 安装程序会选择正确的架构,并根据版本的 SHA256SUMS 验证下载内容。Alacritty 以及可选的全局启动快捷键需要明确同意,并不会默认安装。请参阅 Windows 支持、安全性、防火墙及 SmartScreen 注意事项。
如果某个版本没有包含匹配的 Windows 资产,安装程序会停止,而不是意外开始长时间的编译。可以通过 -BuildFromSource 提供显式源代码构建,这需要 Git、Rust 和带有 使用 C++ 的桌面开发 工作负载的 Visual Studio 2022 构建工具。
通过 Homebrew 在 macOS 上
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
卸载
移除已安装的二进制文件和启动器,但保留您的配置、认证和会话,因此干净重新安装可以从您上次停止的地方继续:
curl -fsSL https://raw.githubusercontent.com/1jehuang/jcode/master/scripts/uninstall.sh | bash -s -- --yes
要完全清除包括配置、认证、会话、日志和内存在内的所有内容(有助于从损坏的安装中恢复):
curl -fsSL https://raw.githubusercontent.com/1jehuang/jcode/master/scripts/uninstall.sh | bash -s -- --purge --yes
添加 --dry-run 以预览将被删除的内容而无需删除任何东西。
平台支持
| 平台 | 状态 |
|---|---|
| Linux x86_64 / aarch64 | 完全支持 |
| macOS Apple Silicon & Intel | 支持 |
| Windows x86_64 | 支持(原生 WSL2) |
| Termux aarch64 / x86_64 | 支持 pkg install glibc patchelf |
- 本文标题:jcode - 用 Rust 编写的高性能编码代理
- 本文链接:https://www.cn121.com/cli/1jehuang-jcode.html
- 原项目:1jehuang/jcode 版权归原作者 1jehuang 及贡献者所有
- 收录信息:本站于 2026-10-10 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
- 开源协议:收录时本项目采用 MIT(查看 LICENSE 原文),本站译文为其衍生内容;使用、修改、分发请以该仓库 LICENSE 原文为准。
- 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 1jehuang/jcode。
- 翻译说明:本页正文为人工智能生成内容——由机器翻译对原项目 README 初译、经程序校验排版,可能存在错漏,请以原项目文档为准。
- 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
- 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。