1jehuang/jcode

GitHub: 1jehuang/jcode

一款 Rust 编写的高性能编程代理工具,主打多会话协作、语义记忆和极致资源效率,支持数十种 LLM 提供商和浏览器自动化。

Stars: 1960 | Forks: 178

# jcode [![最新发布](https://img.shields.io/github/v/release/1jehuang/jcode?style=flat-square)](https://github.com/1jehuang/jcode/releases) [![许可证](https://img.shields.io/github/license/1jehuang/jcode?style=flat-square)](LICENSE) [![平台](https://img.shields.io/badge/platforms-Linux%20%7C%20macOS%20%7C%20Windows-blue?style=flat-square)](https://github.com/1jehuang/jcode/releases) [![提交活跃度](https://img.shields.io/github/commit-activity/m/1jehuang/jcode?style=flat-square)](https://github.com/1jehuang/jcode/commits/master) [![GitHub 星标](https://img.shields.io/github/stars/1jehuang/jcode?style=flat-square)](https://github.com/1jehuang/jcode/stargazers) 旨在提升技能上限的下一代编程代理工具。
为多会话工作流、无限可定制性和高性能而构建。
jcode memory demonstration
[功能](#features) · [安装](#installation) · [快速开始](#quick-start) · [进阶阅读](#further-reading) · [贡献](CONTRIBUTING.md)
## 安装说明
``` # macOS & Linux curl -fsSL https://raw.githubusercontent.com/1jehuang/jcode/master/scripts/install.sh | bash ``` 需要 Windows、Homebrew、源码构建、服务商设置,或者想让您的代理自行设置? [跳转到详细安装说明](#detailed-installation)。
## 性能与资源效率
jcode 的构建尽可能地追求高性能和资源效率。每一项指标都经过了深度优化,这对于扩展多会话工作流至关重要。下面我们抽取几项指标来展示差异:RAM 使用量和启动时间。 ### RAM 对比
1 个活动会话
工具 PSS 对比
jcode (本地 embedding 关闭) 27.8 MB 基准
jcode 167.1 MB 多占用 6.0× RAM
pi 144.4 MB 多占用 5.2× RAM
Codex CLI 140.0 MB 多占用 5.0× RAM
OpenCode 371.5 MB 多占用 13.4× RAM
GitHub Copilot CLI 333.3 MB 多占用 12.0× RAM
Cursor Agent 214.9 MB 多占用 7.7× RAM
Claude Code 386.6 MB 多占用 13.9× RAM
10 个活动会话
工具 PSS 对比
jcode (本地 embedding 关闭) 117.0 MB 基准
jcode 260.8 MB 多占用 2.2× RAM
pi 833.0 MB 多占用 7.1× RAM
Codex CLI 334.8 MB 多占用 2.9× RAM
OpenCode 3237.2 MB 多占用 27.7× RAM
GitHub Copilot CLI 1756.5 MB 多占用 15.0× RAM
Cursor Agent 1632.4 MB 多占用 14.0× RAM
Claude Code 2300.6 MB 多占用 19.7× RAM
### 首次渲染时间
| 工具 | 首次渲染时间 | 范围 | 对比 | |---|---:|---:|---:| | **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 (本地 embedding 关闭)** | **~9.9 MB** | 基准 | | **jcode** | **~10.4 MB** | **多占用 1.1× RAM** | | **pi** | **~76.5 MB** | **多占用 7.7× RAM** | | **Codex CLI** | **~21.6 MB** | **多占用 2.2× RAM** | | **OpenCode** | **~318.4 MB** | **多占用 32.2× RAM** | | **GitHub Copilot CLI** | **~158.1 MB** | **多占用 16.0× RAM** | | **Cursor Agent** | **~157.5 MB** | **多占用 15.9× RAM** | | **Claude Code** | **~212.7 MB** | **多占用 21.5× RAM** |
此修正后的内存重新运行所测试的版本: - `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)`
jcode performance demonstration

jcode 性能演示

## 记忆系统(Agent 记忆) Jcode 将每次轮次/响应作为语义向量进行 embedding。每次轮次都会查询记忆图谱,通过余弦相似度检查高效地查找相关的记忆条目。命中的 embedding 会被送入对话中,或者可以选择使用一个记忆侧代理来验证记忆的相关性,并在注入到对话中之前,潜在地进行更多的信息检索工作。这产生了一个类人的记忆系统,允许代理自动回忆起与对话相关的信息,而无需主动调用记忆工具或大量消耗 token。 为了能检索到记忆,它们也必须被提取和存储。每隔一段时间(语义漂移、距离上次提取已过 K 个轮次、会话结束等),记忆会通过记忆侧代理提取,并放入记忆图谱中。 该工具还提供了显式的记忆工具,允许代理主动搜索或存储记忆,而无需依赖被动后台进程。工具还提供了会话搜索功能,用于对以前的会话进行传统的 RAG。 记忆会在环境模式下定期自动整合。这包括重组、检查过时和冲突等。
jcode memory demonstration

jcode 记忆演示

## UI:侧面板、图表、信息小组件、渲染、滚动、对齐 侧面板用于放置辅助信息。告诉您的 jcode 代理将文件加载到侧面板并实时查看其更新,或者让您的代理直接写入侧面板,或将其用作差异查看器。侧面板(和聊天)能够内联渲染 mermaid 图表。 image jcode swarm demonstration

jcode 集群演示

代理也能够自主生成自己的集群。它们拥有一个集群工具,允许它们生成自己的队友以并行完成任务。这样做会将主代理转变为协调者,将生成的代理转变为工作者。代理组、它们的消息通道、完成状态等都会被自动管理。这可以在无头或有头模式下完成。 ## OAuth 和 Provider 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 的配置文件设置 如果您更喜欢通过编辑文件而不是使用登录 UI 来配置,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` 可以为您创建或更新此配置。 - 对于 `localhost` 和局域网私有 IP,接受普通的 `http://`。公共远程 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 --no-browser`(别名:`--headless`),这样 jcode 会打印身份验证 URL/二维码,并回退到手动粘贴代码或回调,而不是尝试启动本地浏览器。 对于更具可编写性的远程流程,`claude`、`openai`、`gemini` 和 `antigravity` 也支持两步模式: ``` # 步骤 1:打印一个可恢复的 auth URL jcode login --provider openai --print-auth-url --json # 步骤 2:稍后使用 callback URL 或 auth code 完成 jcode login --provider openai --callback-url 'http://localhost:1455/auth/callback?...' jcode login --provider gemini --auth-code '...' ``` 其他可编写脚本的场景: ``` # Copilot device flow:打印 URL + user code,然后稍后完成 jcode login --provider copilot --print-auth-url --json jcode login --provider copilot --complete # 在已配置 credentials 后的 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 The above image is the first page of provider logins ### 支持的提供商 - **原生 / 第一方风格提供商:** `claude`、`openai`、`copilot`、`gemini`、`azure`、`alibaba-coding-plan` - **聚合器 / 兼容性提供商:** `openrouter`、`openai-compatible` - **其他提供商集成:** `opencode`、`opencode-go`、`zai` / `kimi`、`302ai`、`baseten`、`cortecs`、`deepseek`、`firmware`、`huggingface`、`moonshotai`、`nebius`、`scaleway`、`stackit`、`groq`、`mistral`、`perplexity`、`togetherai`、`deepinfra`、`fireworks`、`minimax`、`xai`、`lmstudio`、`ollama`、`chutes`、`cerebras`、`cursor`、`antigravity`、`google` Jcode 还支持便捷的多账号切换。您的第一个 ChatGPT Pro 订阅 token 用完了?使用 /account 快速切换到您的第二个账号。 ## 可定制性 / 自我开发 Jcode 正在发明一种全新形式的可定制性。一种不局限于插件或扩展功能的形式。告诉您的 jcode 代理进入自我开发模式,它将开始修改自己的源代码。Jcode 针对自身的迭代进行了优化。它围绕自我开发构建了完善的基础设施,允许其编辑、构建和测试自身的源代码,然后重新加载自身的二进制文件并在您的(可能是多个)会话中继续工作,全过程完全自动化。 建议您为此使用前沿模型。jcode 代码库并不简单,较弱的模型可能会做出细微的破坏性更改。GPT 5.5 或最新可用的前沿模型表现良好。 ## 杂项 魔鬼隐藏在细节中。jcode 实现了许多未记录的优化和贴心设计。举几个例子: Anthropic 的 Claude 缓存会在 5 分钟后变冷。如果您在这 5 分钟后向 Claude 发起请求,就会遇到缓存未命中,这可能会消耗您大量的 token。UI 会在缓存变冷时警告您,并在发生意外缓存未命中时通知您。 jcode 附带了如何设置 Firefox Agent Bridge 的说明。要求您的代理进行设置,然后您在 jcode 中也能拥有浏览器自动化功能。 Agent grep 是我为 jcode 代理制作的一个 grep 工具。它在 grep 返回结果中添加了文件结构信息(即函数列表、它们的位置偏移等),以便代理无需实际读取文件即可推断出更多文件内容。它还实现了一个工具层面的集成,可根据代理已经查看过的内容自适应地截断返回结果。这极大地节省了上下文。 默认情况下,输入与正在运行的代理是交织进行的。它会在不破坏 KV cache 的情况下,在尽可能安全的时候发送输入。如果使用 Shift+Enter 提交,它将发送队列消息,并等待代理完全完成其轮次后再发送。 从不同的工具恢复会话。Claude code 崩溃了?从 jcode 恢复会话,从您上次停下的地方继续。支持从 codex、claude code、opencode 和 pi 恢复会话。 Screenshot from 2026-04-11 16-28-52 image of /Resume for codex sessions 技能并不会全部在启动时加载。对话会作为语义向量进行 embedding,如果存在与记忆相似的 embedding 命中,将自动注入技能。代理带有一个技能工具,供您随时手动激活技能。您也可以通过斜杠命令进行激活。 ## iOS 应用 / 原生 OpenClaw 原生 iOS 应用版本的 jcode 即将推出。这将允许您通过 Tailscale 在手机上处理个人计算机环境中的工作。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 workflow demonstration

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` 工具。UI 还会简洁地总结浏览器工具调用,例如打开 URL、点击选择器或在字段中输入,而不会回显敏感的输入文本。 备注: - provider/工具的架构已就位,支持额外的后端 - Firefox 是目前连接好的内置后端 - 稍后可以在相同的 browser 工具之上添加 Chrome 桥接 / 远程调试风格的 provider ## 进阶阅读 - [环境模式 / OpenClaw](docs/AMBIENT_MODE.md) - [浏览器提供者协议](docs/BROWSER_PROVIDER_PROTOCOL.md) - [记忆架构](docs/MEMORY_ARCHITECTURE.md) - [集群架构](docs/SWARM_ARCHITECTURE.md) - [服务器架构](docs/SERVER_ARCHITECTURE.md) - [iOS 客户端说明](docs/IOS_CLIENT.md) - [安全系统](docs/SAFETY_SYSTEM.md) - [Windows 说明](docs/WINDOWS.md) - [封装器和 Shell 集成](docs/WRAPPERS.md) - [重构说明](docs/REFACTORING.md) ## 详细安装说明 ### 设置 如果您希望由另一个代理为您设置 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://raw.githubusercontent.com/1jehuang/jcode/master/scripts/install.sh | bash - Windows PowerShell: irm https://raw.githubusercontent.com/1jehuang/jcode/master/scripts/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` - MiniMax: `~/.config/jcode/minimax.env`, `MINIMAX_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` - 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://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 | 支持 (原生 + W2) |
标签:AI编程助手, CLI, Coding Agent, WiFi技术, 任务自动化, 低资源消耗, 内存优化, 可视化界面, 多会话工作流, 大模型集成, 威胁情报, 开发者工具, 开源, 提示词工程, 效率工具, 智能开发工具, 策略决策点, 自动化编程, 通知系统