仓库 →

基本使用

掌握 CLI 参数、如何描述任务、如何给模型提供上下文、如何在多个任务之间切换。

启动方式

# 在当前目录启动 TUI
atomcode

# 指定工作目录
atomcode -C /path/to/project

# 指定 provider / 模型(一次性覆盖默认)
atomcode --provider claude --model claude-sonnet-4-6

# 继续上一次会话
atomcode -c
atomcode --continue

# 使用指定的配置文件
atomcode --config ./custom.toml

# 跳过所有权限确认,自动批准工具调用
atomcode -y
atomcode --dangerously-skip-permissions

CLI 参数总览

参数简写作用
--dir PATH-C工作目录,不指定则使用当前目录
--continue-c继续上一次会话,而不是新建
--provider NAME覆盖默认 provider
--model NAME覆盖当前 provider 的 model
--config PATH使用指定的配置文件
--prompt TEXT-p非交互模式,单次执行并把回复写到 stdout
--prompt-file PATH从文件读取 prompt(适合长文本,与 -p 互斥)
--verbose-v非交互模式下把工具调用、token 用量等信息打到 stderr
--max-turns N强制限制 Agent 循环的最大轮数,防止无限跑下去
--disable-tools LIST逗号分隔,禁用某些工具。例如 --disable-tools bash,web_fetch
--dangerously-skip-permissions-y跳过所有权限确认,自动批准所有工具调用(bash、文件编辑、MCP 等)。TUI 模式下状态栏显示 ⚠ BYPASS 徽章
Tip

--disable-tools 让被禁用的工具对模型完全不可见(不会出现在 schemas 中),模型就不会重复尝试调用它。在沙箱评测、离线环境、禁止联网的 CI 等场景里非常实用。

Warning

-y / --dangerously-skip-permissions 会跳过所有权限确认,包括 bash 命令执行、文件写入和 MCP 工具调用等。Agent 可以不经确认直接执行任意操作。请仅在以下场景使用:

  • CI/CD 流水线等自动化环境
  • 沙箱或容器内的评测基准测试
  • 你充分信任 Agent 内置安全约束的非关键项目

描述任务的原则

AtomCode 的 Agent 循环能力主要取决于你给出的任务描述的质量。几条经验:

示例任务

# Bug 修复
> 修复 OAuth 回调后用户被重定向到 404 的问题,确保回调完整恢复原始路径

# 新增功能
> 在设置页增加深色模式切换,使用 Tailwind 的 dark: 前缀,并持久化到 localStorage

# 重构
> 把 src/db/*.ts 重构成使用连接池,保持公有 API 不变,改完后跑 npm test

# 测试
> 给 src/payment/processor.ts 写单元测试,覆盖所有异常分支

# 代码理解
> 简要说明这个仓库的目录结构、构建入口和核心模块职责

多行输入

在 TUI 中:

@ 引用文件

在输入框里敲一个 @(前面是空白或行首)就会弹出项目内文件/目录的候选菜单。这是把代码里某个具体路径"指给模型看"最快的方式 — 你只负责定位,要不要展开、读多少由模型按需调 read_file 决定。

交互

候选来自哪里

对模型意味着什么

提交时,@crates/atomcode-cli/src/main.rs 作为字面文本一同发给模型 — AtomCode 不会在前端预读文件内容并内联。模型看到这段路径后,会按需调用内置的 read_file 工具去读。这样:

Tip

如果想强制把文件内容直接喂进对话(比如让模型针对某段代码做精读、不希望它再走一次 read_file),用粘贴 — 直接把内容粘进输入框,bracketed paste 会把它折叠成 [paste #N] 标记,提交时整段带入。

限制

粘贴长文本

AtomCode 支持 bracketed paste。当你粘贴一段很长的内容(比如一堆日志)时,TUI 会把它折叠成一个紧凑的 [paste #N · 132 lines] 指示器,避免输入框被撑爆。发送时会完整带入。

图片附件 / 截图

除了文本,你还能把图片带进对话 — 报错截图、UI mock、白板照片等。AtomCode 提供三条入口,任选其一:

每次成功 attach 时,输入框会就地插入一个 [Image #N] 标记,提交时图片字节随消息一起发。状态栏右侧也会出现 Image in clipboard · ctrl+v to paste 的提示(剪贴板还有未粘的图时)。

非视觉模型怎么处理图片?

当前 active provider 不支持图片输入(比如 DeepSeek-V3 / Kimi 等纯文本模型)时,AtomCode 不会直接拒绝,而是会自动调用一个独立的 VL preprocessor(视觉模型,比如 Qwen3-VL / GLM-4V)对图片做 OCR + 描述,把结果作为文本 splice 到用户消息里再发给主模型。这样无论主模型支不支持图片,你都能"贴张截图问问题"。

Tip

如果当前模型本身就支持视觉输入(Claude 3+ / GPT-4o / Gemini / Qwen-VL 等),会直接发原始图片字节,不走 preprocessor。

切换会话和目录

详细行为见 会话与撤销

查看成本和 diff

下一步