ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

claude code常用指令速查:从slash命令到CLI flags的TaoToken实战手册

claude code常用指令速查:从slash命令到CLI flags的TaoToken实战手册

1. 刚上手 Claude Code 时,我踩过的指令坑

Claude Code 是 Anthropic 推出的终端 AI 编程助手,能直接读写你本地的项目文件、跑 shell 命令、按你的指令改代码。它适合谁?适合已经习惯在终端里干活、又想让 AI 真正动手改文件而不是只聊天的开发者。但刚接触的人几乎都会卡在同一个地方:指令太多,slash 命令、CLI flags、CLAUDE.md 三套东西混在一起,不知道哪个该在什么时候用。

我一开始也是这样。装完之后只会敲claude进会话,然后像用聊天框一样一句句问,结果发现它老是"忘记"项目规范,每次都要重新解释一遍技术栈;想恢复上次的会话又不知道按哪个键;看到别人用@引用文件、用!跑命令,自己试了半天没反应——后来才发现!前缀得在会话里用,不是 shell 里用。

更麻烦的是网络调用这一层。Claude Code 默认走官方 endpoint,很多人在国内环境下会遇到请求超时、local proxy failed、401之类的报错,于是干脆放弃。其实只要把 endpoint 换成一个稳定可达的兼容入口,再配合正确的 Base URL、Key、Model ID 三件套,整条链路就能跑通。这篇就按"指令速查 + 接入验证"两条线走:先把 slash 命令、CLI flags、CLAUDE.md 三类高频指令讲清楚,再演示怎么把 endpoint 改到 TaoToken,然后逐条验证调用是否真的生效。你可以边看边在终端里敲,跟着做一遍就有自己的指令工作流了。

先说清楚三套指令的分工,这是后面所有操作的地基:

类型在哪用典型场景例子
Slash 命令会话内,输入框敲/会话管理、上下文控制、代码审查/compact、/rewind、/simplify
CLI flags启动claude时跟在后面非交互、系统提示、权限、模型选择claude -p "..."、--append-system-prompt
CLAUDE.md项目根目录/全局目录的文件固化项目规范、架构说明./CLAUDE.md、~/.claude/CLAUDE.md

记住一句话:slash 命令管"会话里发生什么",CLI flags 管"这次启动怎么跑",CLAUDE.md 管"它默认该知道什么"。三者组合起来,才是完整的指令工作流。

2. TaoToken 前置:把 endpoint 换成稳定入口

在讲具体指令之前,得先把调用链路搭好,否则你敲再多命令也可能卡在网络上。Claude Code 支持通过环境变量指定 API 入口,我们要做的就是把它指向 TaoToken 的兼容地址,然后配上 Key 和 Model ID。

TaoToken 在这里扮演的是一个统一的模型调用入口:你拿到一个 API Key,把 Base URL 指向https://taotoken.net/api,Claude Code 的请求就会走这条链路。它不是什么"绕过限制"的东西,就是一个标准的 API 网关,你按正常方式配置环境变量即可。

第一步,去控制台拿 Key。打开 https://taotoken.net/console ,登录后在 API Keys 页面创建一个新 Key,复制出来。这个 Key 只显示一次,建议先存到密码管理器里。

第二步,配置环境变量。Claude Code 读取的是ANTHROPIC_BASE_URL和ANTHROPIC_API_KEY这两个变量(不同版本可能略有差异,以你本地claude --help为准)。Linux/macOS 下写进~/.zshrc或~/.bashrc:

# 写入 shell 配置,持久生效 export ANTHROPIC_BASE_URL="https://taotoken.net/api" export ANTHROPIC_API_KEY="sk-你的TaoToken密钥" # 让当前终端立即生效 source ~/.zshrc

Windows PowerShell 下用$env:临时设置,或者写进系统环境变量:

$env:ANTHROPIC_BASE_URL = "https://taotoken.net/api" $env:ANTHROPIC_API_KEY = "sk-你的TaoToken密钥"

第三步,确认 Model ID。Claude Code 里模型是通过/model命令或启动参数切换的,常见的有claude-sonnet-4-6、claude-opus-4-6这类标识。你要保证填的 Model ID 和 TaoToken 侧支持的模型名一致,否则会报model not found。可以在模型对话页面先确认可用模型列表:https://taotoken.net/models 。

这里有个容易忽略的点:Base URL 和 Key 是"接入层",Model ID 是"调用层",三者必须同时正确。只改 Base URL 不改 Key,会 401;Key 对了但 Model ID 写错,会报模型不存在;两个都对但 Base URL 少了/api路径,可能直接连不上。后面第 5 节会专门对照这几个报错。

配置完先别急着进会话,用一条最简单的非交互命令验证链路是否通:

claude -p "回复一句:链路已通"

如果终端返回了类似"链路已通"的文本,说明 Base URL + Key + Model 三件套已经生效。如果报错,先别往下走,回到第 5 节排查。这一步是整个手册的前提,链路不通,后面所有 slash 命令都是空谈。

3. 可复制配置:CLAUDE.md 与 settings 片段

链路通了之后,接下来要把"项目规范"固化下来,否则每次开新会话你都得重新解释一遍技术栈。这就是 CLAUDE.md 的用途——Claude Code 启动时会自动读取它,把它当作项目上下文。

在项目根目录创建CLAUDE.md,内容可以直接抄下面这份,按你自己的项目改:

# Project context ## Coding standards - 所有新代码使用 TypeScript,禁止 any - 遵循仓库根目录的 ESLint 配置 - 单元测试用 Jest,测试文件放在 __tests__ 目录 ## Architecture - Frontend: Next.js + TypeScript - Backend: Node.js + Express - Database: PostgreSQL + Prisma ## Commands - 安装依赖: npm install - 跑测试: npm test - 本地启动: npm run dev

CLAUDE.md 支持层级覆盖,优先级从低到高是:~/.claude/CLAUDE.md(全局,放你个人的通用偏好)→./CLAUDE.md(项目级)→ 子目录里的CLAUDE.md(局部覆盖)。我一般把"始终用中文回复""提交信息用中文"这类个人习惯放全局,把技术栈和命令放项目级。

除了 CLAUDE.md,Claude Code 还有一层 settings 配置,用来控制权限、通知、模型等。配置文件通常在~/.claude/settings.json,格式是 JSON:

{ "model": "claude-sonnet-4-6", "preferredNotifChannel": "terminal_bell", "permissions": { "allow": [ "Bash(npm test)", "Bash(git status)", "Read" ], "deny": [ "Bash(rm -rf *)" ] } }

这份 settings 里,model指定默认模型,permissions.allow列出免确认就能跑的命令,deny是明确禁止的。把npm test、git status这类只读或安全命令加进 allow,能省掉大量"是否允许执行"的确认弹窗;把rm -rf *放进 deny,是给自己上一道保险。

如果你用的是支持 TOML 配置的客户端(比如某些 MCP 集成场景),配置片段长这样:

[model] default = "claude-sonnet-4-6" [permissions] allow = ["Bash(npm test)", "Read"] deny = ["Bash(rm -rf *)"]

注意路径要和你的实际环境一致:全局配置在~/.claude/,项目配置在项目根目录的.claude/下。改完配置后,用claude config list可以查看当前生效的配置项,确认没有写错位置。

这里再强调一次三件套的完整性。无论你用 JSON 还是 TOML,只要涉及自定义接入,就必须同时确认:Base URL =https://taotoken.net/api、Key = 你的 TaoToken 密钥、Model ID = 实际可用的模型名。缺任何一个,配置看起来对,调用照样失败。

4. 逐条验证:slash 命令与 CLI flags 实测

配置就绪后,开始逐条验证指令。先讲 CLI flags,因为它们决定"这次启动怎么跑"。

最常用的几个启动方式:

# 启动新会话 claude # 带初始提示直接启动 claude "帮我分析这个项目结构" # 非交互模式,适合 CI/CD 或脚本 claude -p "检查代码中的 lint 错误并修复" # 恢复上一次会话 claude --continue # 列出历史会话,选择恢复 claude --resume

系统提示词相关的 flags 是控制 AI 行为的关键:

# 替换系统提示 claude --system-prompt "你是一个专注安全审查的代码专家" # 从文件读取系统提示 claude --system-prompt-file ./my-prompt.txt # 追加到默认系统提示(推荐,保留默认能力) claude --append-system-prompt "始终用中文回复" claude --append-system-prompt-file ./extra-rules.txt

我实测下来,--append-system-prompt比--system-prompt更实用,因为后者会覆盖掉 Claude Code 内置的编码能力提示,容易让 AI 变得"不会用工具"。追加模式则是在保留默认能力的基础上加你的规则。

进会话后,slash 命令是高频操作。先验证最基础的几个:

/help # 查看所有可用命令 /status # 查看当前会话状态 /cost # 查看本次会话 token 消耗 /clear # 清除当前对话上下文 /compact # 压缩上下文以节省 token /exit # 退出会话

/compact值得单独说:长会话里上下文会越来越满,/compact会把历史对话压缩成摘要,保留关键信息的同时腾出 token 空间。我一般在完成一个大功能、准备开新任务前跑一次。

再验证几个进阶命令,这些是真正拉开效率差距的:

/plan # 进入计划模式,只分析不修改文件 /rewind # 回退,相当于 Ctrl+Z(也可连按两下 Esc) /btw # 插一个问题但不污染上下文 /branch # 从当前对话分叉出新会话 /simplify # 三合一代码审查(复用/质量/效率) /insights # 生成过去一个月的使用报告 /model # 切换模型

/plan是我最推荐的入门习惯:在让 AI 动手改代码前,先用/plan让它以只读模式分析代码库、给出实现方案,你确认后再执行。这样能显著减少"改错方向"的概率。

/btw解决的是上下文污染问题。你让 Claude 重构一个大模块,干到一半突然想问"那个测试文件在哪个目录",直接问会把这句无关对话塞进历史,AI 重新干活时可能跑偏。用/btw提问,答案给你,但不进对话历史。

/rewind适合做实验:让 AI 试一种新方案,不行就回退代码,但对话留着,AI 还记得刚才聊了什么、知道这条路不通,可以直接换方向,不用重新解释需求。

/simplify会同时启动三个并行 Agent,分别从代码复用、代码质量、运行效率三个角度审查你的改动,然后汇总。我现在的习惯是每写完几个大功能就顺手跑一遍,AI 写的代码常有微妙冗余——多余的 import、重复逻辑、可以更简洁的写法,它基本都能挑出来。

/model切换模型时,有个隐藏用法/model opusplan:需要复杂推理时自动用 Opus 做规划,然后切到 Sonnet 执行。规划和写代码对模型能力的要求不一样,规划需要深度理解架构,执行阶段 Sonnet 完全够用且更快,这个模式能兼顾质量和成本。

文件引用和 shell 命令是会话内的两个高频操作:

Review @./src/components/Button.tsx Analyze @./src/ and suggest improvements !npm test !git status

@精确引用文件比说"找一下 auth 相关文件"更省 token、更准确;!前缀直接在会话里跑 shell 命令,结果会进入上下文供 AI 判断。

最后验证一下会话管理命令,确认/continue和/resume能正确恢复历史:

claude --continue # 恢复最近一次会话 claude --resume # 列出历史会话供选择

如果这两条能正常拉起之前的对话,说明会话持久化没问题。到这里,slash 命令、CLI flags、CLAUDE.md 三类指令都验证过一遍,你的指令工作流基本成型了。

5. 常见报错排查:401、local proxy failed、reading choices

指令敲对了但调用失败,是新手最容易卡住的地方。下面按真实报错逐条对照。

报错一:401 Unauthorized

API Error: 401 {"error":{"message":"invalid api key"}}

原因几乎都是 Key 不对。检查三件事:ANTHROPIC_API_KEY是否写成了 TaoToken 的 Key(不是官方 Key);Key 是否复制完整(前后有没有多余空格);Key 是否已过期或被删除。改完记得source一下 shell 配置,或者重开终端。

报错二:local proxy failed / connection refused

Error: connect ECONNREFUSED 127.0.0.1:xxxx local proxy failed

这类报错说明请求被指向了本地某个端口,通常是之前配置过本地代理残留。检查ANTHROPIC_BASE_URL是不是还指向http://127.0.0.1:xxxx,把它改成https://taotoken.net/api。同时检查 shell 里有没有残留的HTTP_PROXY/HTTPS_PROXY变量,有的话清掉。

报错三:reading choices / unexpected response

Error: reading choices: unexpected end of JSON input

这个报错一般是响应体不是预期的 JSON 格式,常见原因是 Base URL 路径写错。比如写成了https://taotoken.net(少了/api),或者多写了斜杠。正确写法是https://taotoken.net/api,注意结尾不要带/v1之类的多余路径,除非文档明确要求。

报错四:OAuth / authentication failed

OAuth error: authentication failed

如果你之前登录过官方账号,本地可能残留了 OAuth 凭证,和 API Key 模式冲突。解决办法是清理~/.claude/下的凭证缓存,改用 API Key 模式。具体清理哪个文件以你本地版本为准,一般是credentials.json之类的文件。

报错五:model not found

Error: model claude-xxx not found

Model ID 写错了。回到模型对话页面确认可用模型名,然后在/model命令或 settings 里改成正确的。注意大小写和版本号后缀,claude-sonnet-4-6和claude-sonnet-4.6可能不通用。

排查时有个通用方法:先用最小命令验证链路,再逐步加复杂度。

# 最小验证:只测链路 claude -p "回复:ok" # 加系统提示验证 claude --append-system-prompt "用中文回复" -p "回复:ok" # 加文件引用验证 claude -p "总结 @./package.json 的内容"

哪一步开始报错,问题就在那一层。链路层报错查 Base URL 和 Key,调用层报错查 Model ID,会话层报错查 CLAUDE.md 和 settings 路径。

如果你用的是 Cline MCP 或 Codex 这类客户端,配置逻辑一样,但字段名不同。以 Codex 的auth.json为例,需要写全三件套:

{ "base_url": "https://taotoken.net/api", "api_key": "sk-你的TaoToken密钥", "model": "claude-sonnet-4-6" }

Cline MCP 的配置则在 MCP 设置里填 Base URL、Key、Model ID 三项。无论哪个客户端,Base URL + Key + Model ID 三件套缺一不可,这是排查所有接入问题的第一原则。

6. 把指令工作流固定下来

指令速查的意义不在于背下来,而在于形成肌肉记忆后,你能把注意力放回代码本身。我的做法是:项目根目录放一份 CLAUDE.md 固化规范,全局 settings 里配好 allow/deny 权限,日常用/plan先规划、/simplify后审查、/compact控上下文,遇到实验性改动用/rewind回退、/branch分叉。

接入层则固定成三件套:Base URL 指向https://taotoken.net/api,Key 从控制台获取,Model ID 按实际可用模型填。这三项配好之后,剩下的就是熟练度问题。

如果你还没配好 Key,可以去 API Keys 页面创建一个:https://taotoken.net/api-keys 。想先确认有哪些模型可用,去模型对话页面试一条:https://taotoken.net/models 。长期做编码和 Agent 任务的话,Coding Plan 会更划算:https://taotoken.net/coding-plan 。接入文档在 https://taotoken.net/doc ,遇到配置细节可以对照查。

最后留一个我常用的别名,Linux/macOS 下写进 shell 配置:

alias cc='claude --append-system-prompt "始终用中文回复"'

Windows PowerShell 下:

function cc { claude --append-system-prompt "始终用中文回复" $args }

这样每次敲cc就带着你的默认规则进会话,省掉重复输入。指令工作流搭好之后,你会发现 Claude Code 真正好用的地方,是它能把"想清楚"和"动手改"这两件事串在一条终端流水线里。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进