--system-prompt 参数
用自定义文本替换整个系统提示
概述
--system-prompt 标志允许您用自定义文本替换整个系统提示。这为您提供了完全控制 Claude 行为的能力。
标志语法
claude --system-prompt "<prompt>" [其他选项]功能描述
--system-prompt 标志会:
- 用您提供的自定义文本替换整个默认系统提示
- 完全控制 Claude 的行为和指令
- 适用于交互模式和打印模式
使用示例
基本用法
claude --system-prompt "You are a Python expert"将 Claude 设置为 Python 专家。
代码风格指定
claude --system-prompt "You only write type-annotated Python code"指定只编写类型注解的 Python 代码。
领域专家
claude --system-prompt "You are a machine learning expert specializing in PyTorch"将 Claude 设置为 PyTorch 机器学习专家。
结合其他标志
claude --system-prompt "You are a security-focused code reviewer" --model opus使用指定的系统提示和模型。
使用场景
特定编程语言
claude --system-prompt "You are a Rust expert who follows the Rust API guidelines"专注于 Rust 编程。
特定框架
claude --system-prompt "You are a React expert who uses functional components and hooks"专注于 React 开发。
特定领域
claude --system-prompt "You are a DevOps expert specializing in Kubernetes"专注于 DevOps 和 Kubernetes。
特定风格
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 的行为
- 保持简洁:避免过长的提示,保持简洁明确
- 测试验证:使用前测试自定义提示,确保行为符合预期
- 文档记录:记录自定义提示及其用途
- 版本控制:将重要的自定义提示放入版本控制
常见问题
| 问题 | 答案 |
|---|---|
| 可以在打印模式中使用吗? | 是的,--system-prompt 在交互模式和打印模式中都有效 |
| 会影响会话历史吗? | 不会,系统提示只影响 Claude 的行为,不影响会话历史 |
| 可以动态更改吗? | 不可以,系统提示在会话开始时设置,会话期间不能更改 |
| 与 --append-system-prompt 有什么区别? | --system-prompt 完全替换默认提示,而 --append-system-prompt 附加到默认提示 |
相关标志
--system-prompt-file:从文件加载系统提示--append-system-prompt:附加到默认系统提示--model:设置会话模型
实际应用示例
项目特定提示
#!/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" "实现这个功能"团队标准提示
#!/bin/bash
# 使用团队标准的系统提示
TEAM_PROMPT=$(cat .claude/team-prompt.txt)
claude --system-prompt "$TEAM_PROMPT" "审查这个 PR"