AtomCode 完整使用指南与实战例程
AtomCode是一款基于Rust开发的终端AI编码助手,支持自然语言驱动的全流程开发。作为ClaudeCode的国产替代方案,它具备自动规划、代码编辑、命令执行等功能,兼容DeepSeek、Qwen等主流模型。核心特性包括:纯Rust构建(<50MB)、多模型支持、代码图谱分析、安全回滚机制和AtomGit深度集成。支持一键安装或源码编译,提供17个斜杠命令和21个内置工具,适用于项目搭建
昨天发现一个好用的工具,用于claude code国产替代,研究了半晚上,今天分享一下。.
AtomCode是运行在终端里的自主 AI 编码助手,由纯 Rust 构建、MIT 开源。只需用自然语言描述目标,它即可自动完成规划、读取代码、编辑文件、执行命令、验证结果等全流程操作。
- 官网:https://atomcode.atomgit.com/
- 开源仓库:https://atomgit.com/atomgit_atomcode/atomcode
一、核心概念
1.1 什么是 AtomCode?
AtomCode 是一款终端 AI 编码智能体(Terminal AI Coding Agent),2026年4月18才发布的一款产品,核心理念是:
"说目标,不说步骤"—— 用自然语言描述你要做什么,AI 自动完成从规划到运行的全过程。
它不同于传统的代码补全工具(如 Copilot),而是一个可以自主多步执行的智能体:
你的需求描述 → AI 规划任务 → 读取文件 → 编辑代码 → 运行命令 → 验证结果 → 完成
1.2 核心特性
|
特性 |
说明 |
|
纯 Rust 构建 |
高性能、低资源消耗,包体 < 50MB,秒级启动 |
|
多模型支持 |
原生适配 DeepSeek、Qwen、智谱 GLM,兼容 OpenAI/Claude 接口 |
|
强制规划 |
复杂任务自动拆解执行步骤,避免跑偏 |
|
代码图谱 |
8 大代码分析工具,深度理解大型代码库结构 |
|
安全回滚 |
/undo一键回滚 AI 的所有文件修改 |
|
默认隐私 |
代码和数据本地处理,可按需配置上传策略 |
|
AtomGit 集成 |
深度对接国产代码托管平台,内置 Token 限免 |
1.3 适用场景
- 快速搭建项目原型
- 代码重构与优化
- Bug 修复与调试
- 添加新功能模块
- 自动化脚本编写
- 代码审查与理解大型项目
二、安装与配置
2.1 系统要求
|
组件 |
要求 |
|
操作系统 |
macOS / Linux(x64) / Windows |
|
Rust 工具链 |
1.80+(仅源码构建需要) |
|
LLM 服务 |
AtomGit 账号 或 API Key |
2.2 三种安装方式
方式一:一键安装(推荐)
macOS / Linux:
curl -fsSL https://atomcode.atomgit.com/install.sh | sh
Windows(PowerShell):
irm https://atomcode.atomgit.com/install.ps1 | iex
方式二:源码构建
git clone https://atomgit.com/atomgit_atomcode/atomcode.git
cd atomcode
cargo build --release
编译完成后,可执行文件在target/release/atomcode。
方式三:Cargo 安装
cargo install atomcode
2.3 验证安装
atomcode --version
正常输出版本号(如atomcode 4.15.3)即表示安装成功。
三、首次运行与登录
3.1 启动 AtomCode
在终端中直接输入:
atomcode
进入欢迎界面:
┌────────────── Welcome to AtomCode ──────────────┐
│ ▸ Login with AtomGit OAuth · recommended │
│ Configure manually API Key │
│ Skip for now explore first │
└──────────────────────────────────────────────────┘
3.2 登录方式
方式 A:AtomGit OAuth(推荐,临时使用)
- 选择Login with AtomGit
- 浏览器自动打开授权页面,点击"允许"
- 授权成功后,终端自动配置默认模型
⚠️注意:OAuth 登录为临时授权,不会写入配置文件,重启后需重新登录。
方式 B:手动配置 API Key(长期使用)
配置文件路径:
- macOS / Linux:~/.atomcode/config.toml
- Windows:%USERPROFILE%\.atomcode\config.toml
最小配置模板:
# 默认使用的提供商
default_provider = "deepseek"
DeepSeek 配置
[providers.deepseek]
type = "openai"
api_key = "sk-xxxxxxxxxxxxxxxx"
model = "deepseek-chat"
base_url = "https://api.deepseek.com/v1"
context_window = 64000
主流模型配置示例
OpenAI GPT-4o:
[providers.openai]
type = "openai"
api_key = "sk-xxxxxxxxxxxxxxxx"
model = "gpt-4o"
base_url = "https://api.openai.com/v1"
context_window = 128000
通义千问(Qwen):
[providers.qwen]
type = "openai"
api_key = "sk-xxxxxxxxxxxxxxxx"
model = "qwen-max"
base_url = "https://dashscope.aliyuncs.com/compatible-mode/v1"
context_window = 32000
智谱 GLM:
[providers.zhipu]
type = "openai"
api_key = "xxxxxxxxxxxxxxxx"
model = "glm-4"
base_url = "https://open.bigmodel.cn/api/paas/v4"
context_window = 128000
本地 Ollama(无需联网):
[providers.ollama]
type = "ollama"
model = "qwen2.5:14b"
base_url = "http://localhost:11434"
context_window = 8000
四、基础使用方法
4.1 常用 CLI 参数
|
参数 |
简写 |
功能 |
示例 |
|
--dir |
-C |
指定工作目录 |
atomcode -C ./my-project |
|
--continue |
-c |
恢复上一次会话 |
atomcode -c |
|
--provider |
- |
临时切换提供商 |
atomcode --provider openai |
|
--prompt |
-p |
无头模式直接执行任务 |
atomcode -p "修复所有 lint 错误" |
|
--verbose |
-v |
显示详细日志 |
atomcode -v |
|
--max-turns |
- |
限制最大对话轮数 |
atomcode --max-turns 30 |
4.2 任务描述原则
AtomCode 的核心是自然语言驱动,描述任务时遵循以下原则:
正确的描述方式
- 说目标,不说步骤:
- 修复登录后的 404 跳转问题
- 打开 auth.js 文件,把第 27 行的 /home 改成 /dashboard
- 明确约束条件:
- 用 TypeScript 实现,不修改测试文件,保持现有 API 兼容
- 指定验证方式:
- 改完后运行 npm test 确认通过
示例对话流程
$ atomcode
请帮我给这个项目添加用户认证功能,使用 JWT + bcrypt,
包含登录和注册两个接口,用 Express + TypeScript 实现,
不要改动现有的路由文件,改完后运行测试确认。
[AtomCode 开始分析项目结构...]
[AtomCode 规划任务步骤...]
[AtomCode 生成代码文件...]
[AtomCode 运行测试...]
任务完成!已创建:
- src/auth/controller.ts
- src/auth/service.ts
- src/auth/middleware.ts
- src/auth/types.ts
测试全部通过(12/12)。
4.3 权限确认
当 AtomCode 需要执行敏感操作时,会请求确认:
|
按键 |
含义 |
|
y |
允许本次操作 |
|
a |
本次会话始终允许(不再询问) |
|
n |
拒绝本次操作 |
五、17个斜杠命令大全
在 AtomCode 交互界面中,输入/开头的命令执行特定功能。
5.1 核心命令
|
命令 |
功能 |
示例 |
|
/login |
AtomGit OAuth 登录 |
/login |
|
/provider |
管理/切换模型提供商 |
/provider→ 选择提供商 |
|
/model |
切换当前模型 |
/model deepseek-chat |
|
/cd |
切换工作目录 |
/cd ./another-project |
|
/resume |
恢复历史会话 |
/resume |
|
/session |
新建干净会话(清空上下文) |
/session |
5.2 工具命令
|
命令 |
功能 |
|
/undo |
回滚上一轮文件修改(重要!) |
|
/diff |
查看未提交的代码改动 |
|
/cost |
查看当前会话的 Token 消耗 |
|
/clear |
清空当前会话的屏幕输出 |
|
/compact |
压缩上下文,节省 Token |
|
/copy |
复制 AI 的最后一条回复到剪贴板 |
|
/issue |
在 AtomGit 上提交 Issue |
5.3 配置命令
|
命令 |
功能 |
|
/config |
打开配置文件编辑器 |
|
/status |
查看当前状态(模型、目录、Token 等) |
|
/logout |
退出当前登录 |
|
/help |
显示帮助信息 |
|
/quit |
退出 AtomCode |
六、21个内置工具详解
AtomCode 内置了 21 个专业工具,AI 会根据任务自动选择调用。
6.1 文件与 Shell 工具(9个)
|
工具 |
功能 |
使用场景 |
|
read_file |
读取文件内容 |
查看代码文件 |
|
write_file |
创建/覆盖文件 |
生成新文件 |
|
edit_file |
编辑文件指定位置 |
修改现有代码 |
|
bash |
执行 Shell 命令 |
运行测试、安装依赖 |
|
grep |
文本搜索 |
查找代码中的关键词 |
|
glob |
文件匹配 |
批量查找文件 |
|
list_directory |
列出目录内容 |
浏览项目结构 |
|
delete_file |
删除文件 |
清理无用文件 |
|
file_search |
按内容搜索文件 |
定位代码位置 |
敏感路径访问和删除操作会请求用户确认。
6.2 代码图谱工具(8个)核心特色
|
工具 |
功能 |
使用场景 |
|
list_symbols |
列出文件中的所有符号(函数、类、变量) |
快速了解文件结构 |
|
read_symbol |
读取指定符号的完整定义 |
查看函数实现 |
|
find_references |
查找符号的所有引用位置 |
理解代码依赖 |
|
trace_callees |
追踪函数调用了哪些其他函数 |
分析调用链 |
|
trace_callers |
回溯哪些函数调用了指定函数 |
追踪调用来源 |
|
file_deps |
分析文件之间的依赖关系 |
理解模块依赖 |
|
symbol_search |
按名称搜索符号 |
快速定位函数/类 |
|
project_structure |
生成项目整体结构概览 |
快速上手新项目 |
6.3 Web 与自动化工具(4个)
|
工具 |
功能 |
|
web_search |
联网搜索信息 |
|
web_fetch |
获取网页内容 |
|
auto_fix |
自动修复代码错误 |
|
use_skill |
调用自定义 Skill 扩展 |
七、快捷键速查
7.1 输入操作
|
快捷键 |
功能 |
|
Enter |
发送消息 |
|
Shift + Enter |
换行(不发送) |
|
Esc |
清空当前输入 / 打断 AI 输出 |
|
Ctrl + A |
光标移到行首 |
|
Ctrl + E |
光标移到行尾 |
|
Ctrl + U |
清空当前行 |
7.2 浏览操作
|
快捷键 |
功能 |
|
PageUp/PageDown |
向上/向下滚动 |
|
Ctrl + L |
清屏 |
|
Ctrl + C |
退出 AtomCode |
|
Tab |
自动补全命令 |
八、实战例程:从零开发一个 Web 待办应用
本例程演示如何使用 AtomCode 从零开始创建一个完整的待办事项(Todo List)Web 应用,包含前端界面和后端 API。
8.1 步骤一:初始化项目
# 创建项目目录
mkdir todo-app && cd todo-app
启动 AtomCode
atomcode
在 AtomCode 中输入:
> 帮我初始化一个完整的 Todo List Web 应用项目,要求:
1. 后端用 Express + TypeScript,提供 RESTful API(增删改查待办事项)
2. 前端用 HTML + CSS + JavaScript,界面要美观现代
3. 使用 SQLite 作为数据库
4. 数据模型包含:id, title, completed, created_at
5. 项目结构要清晰,前后端分离
6. 初始化完成后启动服务,确保能正常运行
AtomCode 将自动执行以下操作:
- 分析当前目录(空目录)
- 规划项目结构:
todo-app/ ├── package.json ├── tsconfig.json ├── src/ │ ├── server.ts # Express 入口 │ ├── routes/ │ │ └── todos.ts # 路由 │ ├── models/ │ │ └── todo.ts # 数据模型 │ └── database.ts # SQLite 连接 └── public/ ├── index.html # 前端页面 ├── style.css # 样式 └── app.js # 前端逻辑
- 生成 package.json 并安装依赖
- 生成所有代码文件
- 编译 TypeScript
- 启动服务器
- 验证 API 是否正常工作
8.2 步骤二:添加高级功能
基础版本完成后,继续让 AtomCode 添加功能:
> 给这个 Todo 应用添加以下功能:
1. 待办事项优先级设置(高/中/低)
2. 按优先级排序
3. 筛选功能(全部/进行中/已完成)
4. 添加截止日期,过期的事项高亮显示
5. 给前端添加响应式设计,适配手机端
改完后运行测试确认所有功能正常。
预期 AtomCode 执行流程:
[规划] 分析修改范围 → 5 个功能点
[读取] 读取现有文件(server.ts, todos.ts, index.html, app.js, style.css)
[编辑] 修改数据库模型,添加 priority 和 due_date 字段
[编辑] 更新 API 路由,支持筛选和排序参数
[编辑] 重写前端界面,添加筛选按钮和优先级选择器
[编辑] 添加 CSS 媒体查询,实现响应式布局
[运行] npm run build
[运行] npm test
[验证] 用 curl 测试 API 端点
任务完成!
8.3 步骤三:代码优化与重构
> 请对当前代码进行以下优化:
1. 提取前端 JavaScript 中的 API 调用为独立的 api-client 模块
2. 后端添加输入验证中间件,防止 SQL 注入
3. 添加错误处理中间件,统一返回格式
4. 给关键函数添加 JSDoc 注释
5. 确保代码通过 ESLint 检查
优化后运行测试确认。
8.4 步骤四:查看和确认改动
> /diff
查看所有修改内容,确认无误后退出:
> /quit
8.5 完整交互示例
以下是一个真实的完整交互示例:
$ mkdir todo-app && cd todo-app
$ atomcode
━━━━━━━━━━━━━━━━━━━━━━
Welcome to AtomCode
━━━━━━━━━━━━━━━━━━━━━━
帮我创建一个 Python Flask 待办应用,使用 SQLite,
要有 Web 界面,可以增删改查待办事项。
[AtomCode] 正在分析项目结构...
[AtomCode] 规划任务:
1. 创建项目结构和虚拟环境
2. 安装 Flask、SQLAlchemy 依赖
3. 创建数据库模型
4. 创建 Flask 应用和路由
5. 创建 HTML 模板
6. 初始化数据库
7. 启动应用并验证
[AtomCode] 正在执行:创建 app.py...
[AtomCode] 正在执行:创建 models.py...
[AtomCode] 正在执行:创建 templates/index.html...
[AtomCode] 正在执行:pip install flask sqlalchemy...
[AtomCode] 正在执行:python init_db.py...
[AtomCode] 正在执行:flask run...
应用已启动!访问 http://127.0.0.1:5000
- 添加待办:输入框 + 添加按钮
- 完成待办:点击复选框
- 删除待办:点击删除按钮
- 所有数据保存在 todos.db
能不能给界面加上深色模式切换?
[AtomCode] 正在读取 templates/index.html...
[AtomCode] 正在修改 app.py,添加主题设置路由...
[AtomCode] 正在更新 CSS 样式...
已添加深色模式!
- 点击右上角 /图标切换
- 主题偏好保存在 localStorage
/cost
本次会话 Token 消耗:
- 输入:12,345 tokens
- 输出:28,670 tokens
- 总计:41,015 tokens
/quit
再见!
九、项目指令文件 .atomcode.md
在项目根目录创建.atomcode.md文件,AtomCode 会自动读取并注入系统提示,让 AI 更理解你的项目。
9.1 示例配置
# Project Instructions
Vue3 + TypeScript + Pinia + Tailwind CSS 项目
编码规范
- 组件使用<script setup lang="ts">语法
- 样式仅使用 Tailwind,不要写自定义 CSS
- 所有 API 调用封装在 composables 中
- 使用 pnpm 管理依赖
项目结构
- src/components/ 可复用组件
- src/views/ 页面组件
- src/composables/ 组合式函数
- src/stores/ Pinia 状态管理
- src/api/ API 接口封装
测试命令
- 单元测试:pnpm test
- E2E 测试:pnpm test:e2e
- Lint 检查:pnpm lint
注意事项
- 不要修改 .env 文件
- 提交前必须跑通测试
9.2 使用效果
当 AtomCode 读取到.atomcode.md后:
- 自动生成符合项目规范的代码
- 使用项目指定的技术栈
- 遵循项目的目录结构
- 使用正确的命令运行测试
- 避免项目中的禁忌操作
十、进阶功能
10.1 Headless 无头模式(脚本/CI 场景)
适合在自动化脚本、CI/CD 流水线中使用:
# 直接执行指定任务,不进入交互界面
atomcode -p "修复所有 ESLint 错误" --max-turns 30
指定工作目录和提供商
atomcode -C ./my-project --provider deepseek -p "重构 utils 模块"
结合其他命令使用
echo "优化数据库查询性能" | atomcode -p "$(cat)"
10.2 Daemon 服务模式
启动 HTTP API 服务,供 IDE 插件或其他工具调用:
# 启动 Daemon(默认端口 17890)
atomcode-daemon
自定义端口
atomcode-daemon --port 8080
提供接口:
- POST /chat- 发送消息
- GET /stream- SSE 流式响应
- GET /status- 获取状态
10.3 Skills 自定义扩展
Skill 是可复用的工作流模板,存放在~/.atomcode/skills/名称/SKILL.md。
创建 Skill 示例:
mkdir -p ~/.atomcode/skills/release
创建~/.atomcode/skills/release/SKILL.md:
---
name: release
description: 版本发布流程:更新 changelog、打 tag、推送到仓库
---
- 执行git log --oneline查看最近的提交
- 确认版本号(遵循语义化版本)
- 更新 CHANGELOG.md,添加新版本说明
- 修改 package.json 中的版本号
- 运行测试确保全部通过
- 执行git tag v{版本号}
- 执行git push origin v{版本号}
- 如果在 AtomGit,创建对应的 Release
使用 Skill:
> /release
[AtomCode] 正在执行 release Skill...
10.4 会话管理与撤销
恢复会话
# 命令行方式
atomcode -c
TUI 内方式
/resume
回滚修改
> /undo
⚠️重要说明:/undo只回滚 AI编辑的文件内容,不会回滚bash命令的效果(如安装依赖、创建数据库等)。
十一、常见问题排查
11.1 安装问题
|
问题 |
解决方案 |
|
command not found: atomcode |
检查~/.local/bin是否在 PATH 中,或手动添加export PATH="$HOME/.local/bin:$PATH" |
|
Cargo 编译失败 |
确保 Rust 版本 >= 1.80,运行rustup update |
|
权限不足 |
Linux/macOS 运行chmod +x ~/.local/bin/atomcode |
11.2 登录与网络问题
|
问题 |
解决方案 |
|
OAuth 登录无响应 |
检查浏览器是否自动打开,手动访问终端显示的链接 |
|
API Key 无效 |
检查 config.toml 中的 key 是否正确,是否有足够的额度 |
|
连接超时 |
检查网络连接,尝试切换 base_url 或提供商 |
|
本地 Ollama 连接失败 |
确认 Ollama 已启动(ollama serve),模型已下载 |
11.3 工具与权限问题
|
问题 |
解决方案 |
|
文件编辑被拒绝 |
检查文件权限,或手动授权(按y或a) |
|
命令执行失败 |
检查命令是否存在于系统中,路径是否正确 |
|
代码图谱工具报错 |
确保项目文件编码为 UTF-8,无语法错误 |
|
上下文过长 |
使用/compact压缩上下文,或切换更大窗口的模型 |
11.4 性能优化建议
- 使用.atomcode.md:减少不必要的上下文解释
- **及时/compact****:长会话定期压缩上下文
- 选择合适模型:简单任务用小模型(如 qwen2.5:14b),复杂任务用大模型(如 deepseek-chat)
- 本地 Ollama:敏感代码或网络不佳时使用本地模型
附录:快速参考卡
┌─────────────────────────────────────────────────────────────┐
│ AtomCode 快速参考卡 │
├─────────────────────────────────────────────────────────────┤
│ 启动: atomcode 无头模式: atomcode -p "任务" │
│ 继续: atomcode -c 指定目录: atomcode -C ./dir │
├─────────────────────────────────────────────────────────────┤
│ 命令: /login /provider /model /cd /undo /diff /cost │
│ /clear /compact /config /status /help /quit │
├─────────────────────────────────────────────────────────────┤
│ 快捷键: Enter 发送 Shift+Enter 换行 Esc 打断 Ctrl+C 退出│
├─────────────────────────────────────────────────────────────┤
│ 权限: y 允许本次 a 始终允许 n 拒绝 │
├─────────────────────────────────────────────────────────────┤
│ 描述原则: 说目标不说步骤 / 明确约束 / 指定验证方式 │
└─────────────────────────────────────────────────────────────┘
更多推荐
所有评论(0)