这玩意是什么

Claude Code 是 Anthropic 出的一个终端 AI 编程助手。说白了,你打开终端敲 claude,它就在里面等着帮你干活——写代码、改 bug、提交 git、跑测试,甚至帮你发 PR。

和 Copilot 那种在 IDE 里悄悄补全的风格不同,Claude Code 更像是一个坐在你旁边的程序员同事,你说话,它干活。它看得懂整个项目,能自己搜文件、读代码,然后动手改。

怎么装上

# 二选一,推荐 brew
brew install claude-code
# 或者
npm install -g @anthropic-ai/claude-code

装完敲 claude 就进去了。

上手三板斧

# 直接进去聊
claude

# 一句话干完就退(适合管道、脚本)
claude -p "解释一下这个项目的目录结构"

# 把日志丢给它分析
cat error.log | claude -p "这报错是怎么回事"

这三招掌握了,日常工作基本够用了。

常用姿势

选模型

claude --model opus      # 大活:重构、设计、debug 疑难杂症
claude --model sonnet    # 日常主力,够快够聪明(默认)
claude --model haiku     # 小活:修 typo、格式化、简单问答

一个挺实用的小技巧:平时用 sonnet,碰到真的想不明白的硬骨头再切 opus。haiku 适合那种"帮我给这个函数加个注释"级别的活。

控制权限

有时候你只想让它看看代码给点建议,不想让它真动手改:

# 只读模式:只准看,不准碰
claude --permission-mode plan

# 反过来,完全信任它(只在沙箱里用!)
claude --dangerously-skip-permissions

日常建议用默认的 ask 模式——它每次要做点什么都会问你,你有否决权。这比事后 git reset --hard 舒服多了。

会话管理

# 继续上次的对话
claude --continue          # 或者 claude -c

# 回到之前的某个会话(会弹选择器)
claude --resume

# 给会话起个名,好找
claude -n "修登录页bug"

这个 -n 真的建议养成习惯。等你有七八个 “debug” 会话的时候就知道我的意思了。

隔离实验

# 创建一个独立的工作树,放心折腾
claude --worktree

# 配合 tmux 更爽
claude --worktree --tmux

想试个大胆的重构方案但不确定会不会搞砸?用 worktree,搞砸了删掉就行,主分支毫发无伤。

代码审查

# 审查当前分支
claude ultrareview

# 审查指定 PR
claude ultrareview 128

# 跟 main 比
claude ultrareview main

它会启动多个 agent 并着审,比一个人的 code review 靠谱。


会话里能用的斜杠命令

进了交互式会话以后,/ 开头就是命令。这里只说我真常用的,完整的敲 /help 自己看。

每天都要用

命令 干嘛的 什么时候用
/clear 清空对话 话题聊完了想换新话题,别让上下文掺和
/compact 压缩上下文 聊太长了有点卡,压缩一下腾空间
/model 换模型 发现 sonnet 搞不定,切 opus 再战
/init 生成项目的 CLAUDE.md 新项目,让 Claude 先了解代码库

提交代码相关

命令 干嘛的
/review 审查当前分支的改动
/security-review 安全检查(上线前跑一下不吃亏)
/simplify 检查代码有没有冗余和可优化的地方
/pr-comments 看 PR 上的 review 意见

偶尔用但很好用

命令 干嘛的
/context 看用了多少 token(心里有数)
/cost 看这次会话花了多少钱
/resume 回到之前的会话
/doctor 出毛病了诊断一下
/theme 切换亮色/暗色
/add-dir 让它能看到项目外的文件

那些有时候用到的 CLI 参数

前面说的是每天都会碰的,下面这些偶尔也很有用,列出来供检索。

输入输出:

# 输出 JSON(脚本里用)
claude -p --output-format json "列出所有 API 路由"

# 要求输出符合特定结构
claude -p --json-schema schema.json "提取用户信息"

# 实时流式输出
claude -p --output-format stream-json --include-partial-messages "写个服务"

微调:

# 让它出工不出力
claude --effort low "写个注释"

# 开足马力
claude --effort max "这个并发 bug 到底什么原因"

# 高峰期 opus 挂了自动切 sonnet
claude -p --fallback-model sonnet "紧急修复"

限制它:

# 只允许读,不让写
claude --tools "Read,Grep,Glob"

# 允许 git 操作但不能 rm
claude --allowed-tools "Bash(git *) Edit"

# 禁止删东西
claude --disallowed-tools "Bash(rm *)"

配置小抄

在项目根目录放一个 CLAUDE.md,Claude 会自动读。比如:

# CLAUDE.md
## 命令
- 测试: `pytest -x --ff`
- Lint: `ruff check .`
- 构建: `make build`

然后它就会按你的习惯来干活,不用每次都重复交代。

权限配置在 settings.json 里,三个级别:

  • Allow — 直接干不用问(如 git status
  • Ask — 干之前问一下(默认,大部分操作)
  • Deny — 绝对不许(如 rm -rf /

接 DeepSeek API

Claude Code 不光能用 Anthropic 自家的模型,还能接 DeepSeek。原理很简单——DeepSeek 提供了一个兼容 Anthropic API 格式的接口,把 ANTHROPIC_BASE_URL 指向它就行了。对 Claude Code 来说,它根本不觉得自己在跟 DeepSeek 说话,还以为是调自家的 API。

配置

编辑 ~/.claude/settings.json,没这个文件就新建:

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic",
    "ANTHROPIC_AUTH_TOKEN": "sk-你的DeepSeek API Key",
    "ANTHROPIC_MODEL": "deepseek-v4-flash",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek-v4-pro",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek-v4-flash",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-v4-flash",
    "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
    "API_TIMEOUT_MS": "3000000"
  }
}

解释一下关键的那几个:

变量 干嘛的
ANTHROPIC_BASE_URL 核心,指向 DeepSeek 的 Anthropic 兼容接口
ANTHROPIC_AUTH_TOKEN DeepSeek 的 API Key
ANTHROPIC_MODEL 默认用哪个模型
ANTHROPIC_DEFAULT_OPUS_MODEL 当你敲 --model opus 时实际调的是这个
ANTHROPIC_DEFAULT_SONNET_MODEL 同理,--model sonnet 对应这个
ANTHROPIC_DEFAULT_HAIKU_MODEL --model haiku 对应这个
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC 关掉非必要的网络请求,省点流量
API_TIMEOUT_MS 超时时间(毫秒),大任务别设太短,3百万毫秒 = 50 分钟

模型怎么选

DeepSeek 目前就两个 V4 模型,覆盖一切场景:

模型 一句话 适合
deepseek-v4-flash 284B 参数、激活 13B,经济高效 日常编码、读文件、简单问答
deepseek-v4-pro 1.6T 参数、激活 49B,旗舰推理 复杂重构、架构设计、debug 疑难杂症

两个都支持 1M 超长上下文,在模型名后加 [1m] 后缀即可——比如 deepseek-v4-pro[1m]。不过日常用不需要,默认上下文已经很大了。

灵活搭配:不同任务不同模型

日常用便宜的 v4-flash,碰到硬骨头切 v4-pro:

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic",
    "ANTHROPIC_AUTH_TOKEN": "sk-你的Key",
    "ANTHROPIC_MODEL": "deepseek-v4-flash",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek-v4-pro",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek-v4-flash",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-v4-flash",
    "CLAUDE_CODE_SUBAGENT_MODEL": "deepseek-v4-flash",
    "CLAUDE_CODE_MAX_OUTPUT_TOKENS": "32000",
    "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
    "API_TIMEOUT_MS": "3000000"
  }
}

这样 /model sonnet 走 v4-flash,/model opus 走 v4-pro,不用改习惯就能省钱。

不想写配置文件也行

直接用环境变量一把梭:

export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
export ANTHROPIC_AUTH_TOKEN=sk-你的Key
export ANTHROPIC_MODEL=deepseek-v4-pro

然后直接 claude 就行。不过这样没法按 opus/sonnet/haiku 区分模型,所有情况都走同一个。

可能踩的坑

  • 如果遇到 OAuth 认证冲突,启动时加上 --bareclaude --bare --settings ~/.claude/settings.json
  • --model 参数只能填 sonnet/opus/haiku 这三个别名,实际模型走配置文件里的映射
  • 大任务务必把 API_TIMEOUT_MS 设大点,默认超时可能不够

回到 Anthropic

哪天想换回 Claude 官方模型,把 ANTHROPIC_BASE_URL 那行删掉或注释掉就行,其他不用动。或者直接另开一个终端,不加载那个 settings 文件。


没了。打开终端试试吧。