6.6 --system-prompt - 替换整个系统提示
--system-prompt 标志允许您用自定义文本替换整个系统提示。这为您提供了完全控制 Claude 行为的能力。
标志语法
bash
claude --system-prompt "<prompt>" [其他选项]
功能描述
--system-prompt 标志会:
- 用您提供的自定义文本替换整个默认系统提示
- 完全控制 Claude 的行为和指令
- 适用于交互模式和打印模式
使用示例
基本用法
bash
claude --system-prompt "You are a Python expert"
将 Claude 设置为 Python 专家。
代码风格指定
bash
claude --system-prompt "You only write type-annotated Python code"
指定只编写类型注解的 Python 代码。
领域专家
bash
claude --system-prompt "You are a machine learning expert specializing in PyTorch"
将 Claude 设置为 PyTorch 机器学习专家。
结合其他标志
bash
claude --system-prompt "You are a security-focused code reviewer" --model opus
使用指定的系统提示和模型。
使用场景
1. 特定编程语言
bash
claude --system-prompt "You are a Rust expert who follows the Rust API guidelines"
专注于 Rust 编程。
2. 特定框架
bash
claude --system-prompt "You are a React expert who uses functional components and hooks"
专注于 React 开发。
3. 特定领域
bash
claude --system-prompt "You are a DevOps expert specializing in Kubernetes"
专注于 DevOps 和 Kubernetes。
4. 特定风格
bash
claude --system-prompt "You write clean, well-documented code with comprehensive tests"
强调代码质量和文档。
系统提示的影响
完全替换
--system-prompt 会完全替换默认系统提示,这意味着:
- 删除所有默认 Claude Code 指令
- 为您提供一个空白的开始
- 完全由您控制 Claude 的行为
适用模式
--system-prompt 在以下模式中有效:
- 交互模式 :
claude --system-prompt "..." - 打印模式 :
claude -p --system-prompt "..." - 继续模式 :
claude -c --system-prompt "..."
注意事项
- 与
--system-prompt-file互斥:不能同时使用两个标志 - 完全替换 :会删除所有默认指令,确保您的提示足够完整
- 提示长度 :系统提示有长度限制,保持简洁明确
- 行为改变 :会显著改变 Claude 的行为,确保这是您想要的
- 测试验证 :使用前测试自定义提示,确保行为符合预期
与其他系统提示标志的对比
| 标志 | 行为 | 模式 | 用例 |
|---|
--system-prompt| 替换 整个默认提示| 交互 + 打印| 完全控制 Claude 的行为和指令 --system-prompt-file| 替换 为文件内容| 仅打印| 从文件加载提示以实现可重现性和版本控制 --append-system-prompt| 附加 到默认提示| 交互 + 打印| 添加特定指令,同时保持默认 Claude Code 行为
最佳实践
- 明确具体 :系统提示应该明确具体,指导 Claude 的行为
- 保持简洁 :避免过长的提示,保持简洁明确
- 测试验证 :使用前测试自定义提示,确保行为符合预期
- 文档记录 :记录自定义提示及其用途
- 版本控制 :将重要的自定义提示放入版本控制
## 常见问题
### Q: 可以在打印模式中使用吗?
A: 是的,`--system-prompt` 在交互模式和打印模式中都有效。
### Q: 会影响会话历史吗?
A: 不会,系统提示只影响 Claude 的行为,不影响会话历史。
### Q: 可以动态更改吗?
A: 不可以,系统提示在会话开始时设置,会话期间不能更改。
### Q: 与 `--append-system-prompt` 有什么区别?
A: `--system-prompt` 完全替换默认提示,而 `--append-system-prompt` 附加到默认提示。
## 相关标志
* `--system-prompt-file`:从文件加载系统提示
* `--append-system-prompt`:附加到默认系统提示
* `--model`:设置会话模型
## 实际应用示例
### 项目特定提示
bash
#!/bin/bash
# 为项目定义特定的系统提示
PROJECT_PROMPT="You are a developer working on the XYZ project. Follow our coding standards: use TypeScript, include JSDoc comments, and write unit tests for all functions."
claude --system-prompt "$PROJECT_PROMPT" "实现这个功能"
### 团队标准提示
bash
#!/bin/bash
# 使用团队标准的系统提示
TEAM_PROMPT=$(cat .claude/team-prompt.txt)
claude --system-prompt "$TEAM_PROMPT" "审查这个 PR"