claude cli

1. CLI 的定位

Claude Code 的 CLI 是最主要的交互入口,用来:

- 发起对话
- 继续/恢复会话
- 指定模型与权限
- 以脚本方式集成到 CI/CD
- 管理 MCP、agents、plugins
- 控制输出格式和工作目录

核心思想是:既能交互式使用,也能作为可脚本化工具使用。
见 zh/10-cli/README.md:5-10

---
2. 两种主要模式

交互式 REPL

- 默认模式
- 适合持续对话、逐步探索、手动操作
- 支持历史、补全、slash commands

例子:
claude
claude "解释这个认证流程"

打印模式 -p / --print

- 单次查询后直接退出
- 适合脚本、管道、自动化、CI
- 常配合 --output-format json 或 stream-json

例子:
claude -p "这个函数做什么?"
cat error.log | claude -p "解释这个错误"

见 zh/10-cli/README.md:73-103

---
3. 常用 CLI 命令

这一课列出了很多常见命令,其中最常用的是:

- claude:启动交互式会话
- claude "query":带初始提示启动
- claude -p "query":打印模式
- claude -c / --continue:继续最近一次会话
- claude -r / --resume:按名称或 ID 恢复指定会话
- claude update:更新版本
- claude auth login/logout/status:登录、登出、查看状态
- claude mcp:管理 MCP
- claude agents:查看 agents
- claude plugin:管理插件

特别要记住:
- claude auth status:已登录返回 0,未登录返回 1
- claude mcp serve:让 Claude Code 自身作为 MCP server 运行

见 zh/10-cli/README.md:26-47

---
4. 会话管理

CLI 提供了几种会话控制方式:

-c / --continue

- 继续最近一次会话

-r / --resume

- 按 session 名称或 ID 恢复指定会话

--new-session

- 强制新建会话

--fork-session

- 从当前会话分叉,保留原始会话不受影响

这部分的核心意义是:
你可以在同一项目里做多个实验分支,而不丢失原始上下文。

见 zh/10-cli/README.md:255-288

---
5. 模型与推理强度

模型选择

可以直接用:
- sonnet
- opus
- haiku
- 或完整模型名

也可以用 opusplan:
- Opus 负责规划
- Sonnet 负责执行

示例:
claude --model opus "设计一个缓存策略"
claude --model haiku -p "格式化这个 JSON"
claude --model opusplan "设计并实现缓存层"

Effort

--effort 用来控制推理强度:
- low
- medium
- high
- max

这在复杂分析和快速响应之间做取舍时很有用。

见 zh/10-cli/README.md:104-132、zh/10-cli/README.md:545-556

---
6. 系统提示词自定义

CLI 支持三种方式控制系统提示词:

- --system-prompt
- 直接替换默认系统提示词
- --system-prompt-file
- 从文件读取提示词
- 只在打印模式可用
- --append-system-prompt
- 在默认系统提示词后追加内容

典型用途:
- 让 Claude 扮演特定角色
- 固定审查标准
- 注入长提示词模板

示例:
claude --system-prompt "你是一名资深安全工程师"
claude --append-system-prompt "始终在代码示例中包含单元测试"
claude -p --system-prompt-file ./prompts/code-reviewer.txt "review main.py"

见 zh/10-cli/README.md:133-162

---
7. 工具与权限管理

这是 CLI 很重要的一块,决定 Claude 能做什么。

常见参数

- --tools
- 限制可用内置工具
- --allowedTools
- 允许无需提示执行的工具
- --disallowedTools
- 明确禁用的工具
- --permission-mode
- 启动时指定权限模式
- --dangerously-skip-permissions
- 跳过所有权限提示
- --permission-prompt-tool
- 用某个 MCP tool 处理权限请求

典型用法

claude --permission-mode plan "审查这个代码库"
claude --tools "Read,Grep,Glob" -p "找出所有 TODO 注释"
claude --allowedTools "Bash(git status:*)" "Bash(git log:*)"
claude --disallowedTools "Bash(rm -rf:*)" "Bash(git push --force:*)"

这一节的核心思想是:
- 做审查时尽量只读
- 做自动化时明确控制工具边界
- 危险命令要显式禁止

见 zh/10-cli/README.md:164-190

---
8. 输出格式与结构化结果

CLI 支持多种输出方式,特别适合脚本处理。

常见参数

- --output-format
- text
- json
- stream-json
- --input-format
- text
- stream-json
- --include-partial-messages
- 包含流式事件
- --json-schema
- 要求输出符合指定 schema
- --max-budget-usd
- 限制打印模式最大花费

关键理解

- --output-format json:输出 JSON
- --json-schema:进一步保证 JSON 符合 schema
- stream-json:适合实时消费、长任务、流处理

示例:
claude -p --output-format json "列出 main.py 中的所有函数"
claude -p --output-format stream-json "生成一份长报告"
claude -p --json-schema '{"type":"object","properties":{"bugs":{"type":"array"}}}' "找出 bug"

见 zh/10-cli/README.md:192-218

---
9. 工作目录与多目录协作

参数

- --working-directory
- 设置主工作目录
- --add-dir
- 追加额外目录

用途:
- 多仓库协作
- 前后端同时工作
- 共享目录与项目上下文加载

示例:
claude --working-directory ~/projects/app --add-dir ~/projects/shared
claude --working-directory ./backend --add-dir ./frontend

见 zh/10-cli/README.md:220-235

---
10. MCP 配置

CLI 可以直接接入 MCP。

参数

- --mcp-config
- --mcp
- --mcp-list

示例:
claude --mcp-config ./configs/github-mcp.json
claude --mcp-config ./configs/strict-mcp.json --mcp github

理解重点:
- CLI 负责加载 MCP 配置
- 适合把外部工具、API、数据源接进 Claude 工作流

见 zh/10-cli/README.md:237-253

---
11. 高级特性

这一节包含几个常见高级控制项:

- --disable-auto-checkpoints
- --enable-auto-checkpoints
- --interactive
- --dry-run
- --unsafe

示例:
claude --permission-mode plan --model opus "设计并实现认证系统"
claude --verbose -p "diagnose this issue"
claude --ide "review this diff"

这部分的重点是:
CLI 不只是问答工具,它还能变成接近工作流引擎的入口。

见 zh/10-cli/README.md:290-311

---
12. Subagents 配置

CLI 支持通过 JSON 定义自定义 agents。

主要参数

- --agents
- --agent

JSON 结构

agent 通常包含:
- description
- prompt
- tools
- model

优先级

加载优先级是:

1. --agents 的 CLI 定义
2. 用户级 ~/.claude/agents/
3. 项目级 .claude/agents/

这说明:
- CLI 定义优先级最高
- 同名 agent 会被高优先级覆盖

见 zh/10-cli/README.md:313-395

---
13. 高价值使用场景

这节课给了很多实用场景,最值得记住的有:

1)CI/CD 集成

claude -p --output-format json "run tests and summarize failures"

2)管道处理

cat error.log | claude -p "解释这些错误并给出修复建议"
git log --oneline -20 | claude -p "总结最近的开发方向"

3)多会话工作流

- --session
- --resume
- --fork-session

适合:
- 功能分支探索
- 并行方案比较
- 保留实验上下文

4)安全敏感开发

- --permission-mode plan
- --disallowedTools
- --tools "Read,Grep,Glob"

适合:
- 审计
- 只读分析
- 限制危险动作

5)JSON API 集成

- --output-format json
- 配合 jq
- 适合脚本和自动化系统

见 zh/10-cli/README.md:397-526

---
14. 常用环境变量

这一节列出了一些常见环境变量:

- ANTHROPIC_API_KEY
- CLAUDE_MODEL
- CLAUDE_EFFORT
- CLAUDE_WORKING_DIRECTORY
- CLAUDE_OUTPUT_FORMAT
- CLAUDE_MCP_CONFIG

这类变量通常用于:
- 默认配置
- CI 环境
- 团队统一设置
- 减少重复参数

见 zh/10-cli/README.md:558-567

---
15. 快速记忆版

如果你只想记最关键的,记这几条就够了:

- claude:交互式
- claude -p:打印模式,适合脚本
- -c:继续最近会话
- -r:恢复指定会话
- --output-format json:结构化输出
- --json-schema:保证 JSON 符合 schema
- --permission-mode plan:只读审查
- --tools "Read,Grep,Glob":限制工具
- --agents:定义自定义 agents
- --add-dir:加载额外目录上下文
- claude auth status:脚本里判断是否登录
- --fork-session:分叉会话做实验

---
16. 这节课的核心思想

这门课本质上讲的是:

▎ Claude CLI 不是单纯的聊天入口,而是一个可控、可脚本化、可集成、可限制权限的开发助手接口。

posted on 2026-04-15 13:55  fengZQ  阅读(205)  评论(0)    收藏  举报

导航