一句话总结:AtomCode 是 Claude Code 的开源替代方案,纯 Rust 构建,MIT 许可证,支持任意 OpenAI 兼容 LLM,能在终端里自主完成「读代码 → 改代码 → 跑命令 → 验结果」的全流程。

一、工具介绍:AtomCode 是什么?
1.1 产品定位
AtomCode 是 AtomGit 生态推出的开源终端 AI 编码智能体(Terminal AI Coding Agent),2026 年 4 月 18 日正式开源发布。它的核心理念可以用一句话概括:
"说目标,不说步骤" ------ 用自然语言描述你要做什么,AI 自动完成从规划到运行的全过程。
它不同于传统的代码补全工具(如 GitHub Copilot),而是一个可以自主多步执行的智能体:
你的需求描述 → AI 规划任务 → 读取文件 → 编辑代码 → 运行命令 → 验证结果 → 完成
1.2 核心特性
| 特性 | 说明 |
|---|---|
| 纯 Rust 构建 | 高性能、低资源消耗,包体 < 50MB,秒级启动 |
| 多模型支持 | 原生适配 DeepSeek、Qwen、智谱 GLM,兼容 OpenAI/Claude/Ollama 接口 |
| 强制规划 | 复杂任务自动拆解执行步骤,避免跑偏 |
| 代码图谱 | 8 大代码分析工具,深度理解大型代码库结构 |
| 安全回滚 | /undo 一键回滚 AI 的所有文件修改 |
| 默认隐私 | 代码和数据本地处理,可按需配置上传策略 |
| AtomGit 集成 | 深度对接国产代码托管平台,内置 Token 限免 |
| 100% AI 生成 | 整个代码库由 AI 生成,项目历时 29 天、1096 次提交、3.7 万行 Rust 代码 |
1.3 与 Claude Code 的对比
AtomCode 官方定位为 Claude Code 的开源替代方案。同模型下整体能力达 Claude Code 的 0.8 倍,简单任务持平,复杂任务约有 30% 步骤差距。
| 维度 | AtomCode | Claude Code |
|---|---|---|
| 许可证 | MIT 开源 | 闭源商业 |
| 构建语言 | Rust | TypeScript |
| 模型支持 | DeepSeek/GLM/Qwen/Ollama 等任意 OpenAI 兼容 API | 仅 Anthropic 模型 |
| 网络要求 | 无需翻墙 | 需要翻墙 |
| 费用 | Token 限时免费 / 自备 API Key | 付费订阅 |
| 代码图谱 | 8 个内置工具 | 依赖外部 LSP |
| 上下文管理 | 分层压缩 + 动态预算 | 四级渐进式压缩 |
1.4 适用场景
- 快速搭建项目原型
- 代码重构与优化
- Bug 修复与调试
- 添加新功能模块
- 自动化脚本编写
- 代码审查与理解大型项目
二、快速入门:5 分钟跑起来
2.1 系统要求
| 组件 | 要求 |
|---|---|
| 操作系统 | macOS / Linux(x64/arm64) / Windows / HarmonyOS PC |
| Rust 工具链 | 1.75+(仅源码构建需要) |
| LLM 服务 | AtomGit 账号 或 API Key |
2.2 安装方式
方式 :一键安装(推荐)
macOS / Linux / HarmonyOS PC:
bash
# 使用 npm 安装 (需要先安装node环境)
npm install -g @atomgit.com/atomcode
Windows(PowerShell):
powershell
irm https://raw.atomgit.com/atomgit_atomcode/atomcode/raw/main/scripts/uninstall.ps1 | iex
脚本会自动下载对应平台的预编译二进制,并放置到 ~/.local/bin/atomcode,同时完成 PATH 配置。
2.3 首次运行向导
直接在任意目录运行:
bash
atomcode
第一次启动会自动弹出 3 步首次启动向导:
███ █████ ███ █ █ ████ ███ ████ █████
█ █ █ █ █ ██ ██ █ █ █ █ █ █
█████ █ █ █ █ █ █ █ █ █ █ █ █ ████
█ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █ █ ███ █ █ ████ ███ ████ █████
AtomCode
版本 5.0.3 · 在终端里运行的 AI 编程代理
• 多步骤 agent loop · 内置代码图工具
• 兼容所有 OpenAI 风格 API
• 通过 CodingPlan 获取免费额度
按 Enter 继续。 Ctrl+C 可随时退出。
第 1 步 :欢迎界面
第 2 步 :选择语言(自动检测 / English / 简体中文)
第 3 步:配置方式
1. 用 AtomGit CodingPlan 一键接入 (推荐 · 免费额度 + 自动配 provider)
2. 手动配置 provider (已有 API Key)
3. 跳过,先进 TUI 探索 (之后再 /login 或 /provider)
2.4 模型配置
选项 A:AtomGit CodingPlan(推荐)
bash
atomcode -login
浏览器唤起 AtomGit OAuth,登录后自动申领免费额度,并把额度模型列表写成 provider 配置。
2.5 基础使用
常用 CLI 参数
| 参数 | 简写 | 功能 |
|---|---|---|
--dir |
-C |
指定工作目录 |
--continue |
-c |
恢复上一次会话 |
--provider |
- | 临时切换提供商 |
--prompt |
-p |
无头模式执行任务 |
--verbose |
-v |
显示详细日志 |
快速体验(无头模式)
bash
# 一句话让 AtomCode 介绍项目
atomcode -p "简要介绍这个项目"
# 修复 ESLint 错误
atomcode -p "修复所有 ESLint 错误" --max-turns 30
2.6 17 个斜杠命令速查
| 命令 | 功能 |
|---|---|
/login |
AtomGit OAuth 登录 |
/provider |
管理/切换模型提供商 |
/model |
切换当前模型 |
/cd |
切换工作目录 |
/undo |
回滚上一轮文件修改 |
/diff |
查看未提交改动 |
/cost |
查看 Token 消耗 |
/clear |
清空当前会话 |
/compact |
压缩上下文 |
/resume |
恢复历史会话 |
/config |
编辑配置文件 |
/issue |
提交 GitHub/AtomGit Issue |
/help |
帮助 |
/quit |
退出 |
2.7 快捷键
| 按键 | 功能 |
|---|---|
Enter |
发送 |
Shift+Enter |
换行 |
Esc |
清空/打断输出 |
Ctrl+L |
清屏 |
Ctrl+C |
退出 |
y |
允许本次操作 |
a |
本次会话始终允许 |
n |
拒绝操作 |
三、源代码复习:从架构到实现
3.1 整体架构:分层 Rust Workspace
AtomCode 采用 分层 Rust Workspace 架构,核心设计原则是技术栈无关、单一运行时所有者、工具安全、上下文感知、依赖单向。
atomcode/
crates/
atomcode-kernel/ # 中立 agent 循环与运行时 trait
atomcode-capabilities/ # provider、tools、MCP、skills、session、memory
atomcode-coding/ # coding 专业化与 CodingRuntime 生命周期
atomcode-review/ # 代码评审专业化
atomcode-tuix/ # 终端 UI(retained-mode 渲染器)
atomcode-cli/ # TUI 与 headless 入口
atomcode-daemon/ # HTTP/SSE/WebSocket 传输层及历史 session importer
调用链 :CLI/TUI/daemon → CodingRuntime → kernel
各 Crate 职责
| Crate | 职责 | 关键模块 |
|---|---|---|
atomcode-kernel |
中立 Agent 循环核心 | agent/(AgentLoop)、turn/(TurnRunner)、conversation/(消息窗口化) |
atomcode-capabilities |
可复用能力实现 | provider/(LLM 适配)、tool/(内置工具)、skill.rs(自定义技能) |
atomcode-coding |
编码场景专业化 | CodingRuntime:统一拥有 live coding agent、session 生命周期、snapshot |
atomcode-tuix |
终端用户界面 | event_loop/(状态机)、render/(cell-level 渲染器)、modals/(选择器) |
atomcode-cli |
可执行入口 | main.rs(CLI 参数、首次运行向导)、auth/(OAuth 客户端) |
atomcode-daemon |
后台服务 | HTTP/SSE API、WebSocket 传输、历史 session 导入 |
3.2 Agent Loop:自主工具调用循环
Agent Loop 是 AtomCode 的心脏,也是所有 AI Coding Agent 的核心引擎。它的本质是一个 while-true 循环,每轮执行以下步骤:
rust
// 伪代码示意
loop {
// 1. 上下文压缩(如果需要)
compact_context_if_needed();
// 2. 调用 LLM API,流式接收响应
let response = stream_llm_api(messages).await;
// 3. 分析模型返回
if response.stop_reason == "end_turn" {
break; // 任务完成,跳出循环
}
// 4. 执行工具调用(并发/串行编排)
let tool_results = execute_tool_calls(response.tool_calls).await;
// 5. 更新状态,继续循环
messages.extend(tool_results);
turn_count += 1;
}
关键设计洞察:
- 模型说
end_turn就break跳出循环 - 模型说
tool_use就continue回到循环开头 - 整个决策逻辑就这么简单,但工程化包装极其厚重
3.3 上下文管理:信息生命周期工程
上下文管理是 Coding Agent 工程难度最高、杠杆最大的环节。AtomCode 从两方面优化:
3.3.1 源头降噪
- 精简 System Prompt
- 优化工具返回格式
- 大幅降低信息冗余
3.3.2 历史减法
通过分层拦截、动态预算、大文件外置存储 ,将 64K 窗口有效利用率提升至 80% 以上。
参考 Claude Code 的四级渐进式压缩设计(AtomCode 采用类似策略):
| 层级 | 手段 | 信息损失 | API 开销 | 触发条件 |
|---|---|---|---|---|
| 第 1 层 | 大结果存磁盘 | 几乎为零 | 零 | 工具结果超 50KB |
| 第 2 层 | Snip 裁剪远古消息 | 低 | 零 | 消息过时 |
| 第 3 层 | Microcompact 清理老工具输出 | 中低 | 零 | 缓存过期/数量超限 |
| 第 4 层 | Context Collapse 读时投影 | 中 | 低 | 上下文达 90% |
| 第 5 层 | Autocompact 全量摘要 | 高 | 高(一次 API 调用) | 上下文达 ~93% |
核心设计哲学 :能轻则轻,逐步加码 ------ 尽量延后信息损失,尽量保留结构,最后才牺牲细节。
3.4 21 个内置工具
AtomCode 内置了 21 个专业工具,AI 会根据任务自动选择调用。
文件与 Shell 工具(9 个)
| 工具 | 功能 | 使用场景 |
|---|---|---|
read_file |
读取文件内容 | 查看代码文件 |
write_file |
创建/覆盖文件 | 生成新文件 |
edit_file |
精确编辑(old_string → new_string) | 修改现有代码 |
search_replace |
单文件全局搜索替换 | 批量重命名变量 |
bash |
执行 Shell 命令 | 运行测试、安装依赖 |
grep |
文本搜索 | 查找代码关键词 |
glob |
文件匹配 | 批量查找文件 |
list_directory |
列出目录内容 | 浏览项目结构 |
delete_file |
删除文件 | 清理无用文件 |
敏感路径访问和删除操作会请求用户确认。
代码图谱工具(8 个)⭐ 核心特色
这是 AtomCode 区别于一般 Agent 的最大亮点。借助代码图谱索引,模型无需读遍整棵代码树就能精准定位符号、引用和调用关系,在大型仓库上效果尤其明显。
| 工具 | 作用 |
|---|---|
list_symbols |
列出某个文件或目录下定义的所有符号(函数、类、常量等) |
read_symbol |
精准读取某个符号的完整定义片段,而不用把整个文件拉进上下文 |
find_references |
查找某个符号被引用的所有位置 |
trace_callers |
回溯某个函数的调用方链路 |
trace_callees |
展开某个函数内部调用了哪些下游 |
trace_chain |
在两个符号之间搜索可能的调用链 |
file_deps |
分析某个文件的 import/依赖关系 |
blast_radius |
评估修改某个符号可能影响到的文件/符号范围 |
典型使用场景:
- 重构前评估风险 :"我想改
formatDate的签名,影响面有多大?" →blast_radius+find_references - 定位 Bug 根源 :"用户点击按钮为什么没响应?" → 从入口函数开始
trace_callees,一路下探 - 读懂陌生代码 :"帮我讲讲
AuthService.login是怎么跑的" →read_symbol+trace_callees
Web 与自动化工具(4 个)
| 工具 | 功能 |
|---|---|
web_search |
网络搜索 |
web_fetch |
获取网页内容 |
auto_fix |
自动修复 |
use_skill |
调用用户自定义技能 |
3.5 技能系统(Skills)
Skills 是 AtomCode 的可扩展能力模块。每个 Skill 是一个独立目录,包含一份结构化的指令模板:
.atomcode/skills/
├── code-reviewer/
│ └── SKILL.md
├── test-writer/
│ └── SKILL.md
└── doc-generator/
└── SKILL.md
与 Rules 的区别:
- Rules (
.atomcode.md):被动加载的上下文约束,告诉你"不能做什么" - Skills:主动调用的能力模块,告诉你"应该怎么做"
调用方式:
/use_skill code-reviewer
3.6 项目指令文件 .atomcode.md
放在项目根目录,自动注入系统提示,让 AI 更理解你的项目:
markdown
# Project Instructions
Vue3 + TypeScript + Pinia + Tailwind CSS 项目
## 编码规范
- 组件使用 `<script setup lang="ts">` 语法
- 样式仅使用 Tailwind,不要写自定义 CSS
- 所有 API 调用封装在 composables 中
## 测试命令
- 单元测试:pnpm test
- Lint 检查:pnpm lint
## 注意事项
- 不要修改 .env 文件
- 提交前必须跑通测试
3.7 安全设计
| 机制 | 说明 |
|---|---|
| 权限确认 | 所有破坏性操作(写文件、删文件、执行命令)必须经用户显式确认 |
/undo 回滚 |
一键回滚 AI 的所有文件修改(不回滚 bash 命令) |
| 工具失败处理 | 工具失败会作为 observation 返回给模型,绝不 panic |
| 默认隐私 | 代码和数据本地处理,可按需配置上传策略 |
四、实战建议与最佳实践
4.1 新手起步路线
第 1 步:一键安装 → atomcode
第 2 步:完成首次向导 → 选择 CodingPlan 或配置 API Key
第 3 步:在项目根目录创建 .atomcode.md
第 4 步:尝试第一个任务 → "给这个项目添加一个 README"
第 5 步:熟悉斜杠命令 → /undo /diff /cost
4.2 高效使用技巧
- 用
.atomcode.md统一团队规范 ------ 一次配置,全程生效 - 善用代码图谱工具 ------ 大型项目先用
list_symbols和project_structure摸清底细 - 任务描述要具体 ------ 明确技术栈、约束条件和验证方式
- 及时
/undo------ AI 改错了不要慌,一键回滚 - 关注
/cost------ 监控 Token 消耗,避免意外超支
4.3 二次开发入门
AtomCode 完全开源(MIT),鼓励社区贡献:
bash
# 1. Fork 仓库
git clone https://atomgit.com/your-username/atomcode
# 2. 创建分支
git checkout -b feature/my-feature
# 3. 编写代码(Rust 1.75+)
# 4. 添加测试
# 5. 提交 PR
关键源码入口:
- Agent Loop:
crates/atomcode-kernel/src/agent/ - 工具实现:
crates/atomcode-capabilities/src/tool/ - 上下文管理:
crates/atomcode-kernel/src/conversation/ - TUI 渲染:
crates/atomcode-tuix/src/render/
五、关键技术栈
| 领域 | 技术选型 |
|---|---|
| 语言 | Rust 2021 edition,1.88+ |
| 异步运行时 | tokio(rt-multi-thread) |
| 序列化 | serde + serde_json |
| 终端 UI | ratatui(retained-mode 渲染,cell-level diff) |
| 代码分析 | tree-sitter(9 种语言) |
| Markdown 渲染 | pulldown-cmark + syntect |
| 搜索 | ripgrep(grep 工具) |
| 国际化 | 自建 i18n 系统(中/英文) |
| 配置格式 | TOML |
| 认证 | OAuth 2.0(ACS 平台) |
| HTTP 客户端 | reqwest(rustls-tls) |
| HTTP 服务端 | axum(WebUI API) |
| 嵌入式 WebUI | rust-embed(前端 SPA:Preact + Vite) |
| 构建优化 | opt-level="z" / LTO / strip / panic=abort |
相关链接: