Skip to content

斜杠命令

在交互式会话中使用斜杠命令控制 Claude 的行为。

内置斜杠命令

命令用途
/add-dir添加额外的工作目录
/agents管理用于专门任务的自定义 AI 子代理
/bashes列出并管理后台任务
/bug报告错误(将对话发送给 Anthropic)
/clear清除对话历史
/compact [instructions]压缩对话,可选择性地提供焦点指令
/config打开设置界面(配置选项卡)
/context将当前上下文使用情况可视化为彩色网格
/cost显示令牌使用统计信息(查看【成本跟踪指南】了解特定于订阅的详细信息)
/doctor检查 Claude Code 安装的健康状况
/exit退出 REPL
/export [filename]将当前对话导出到文件或剪贴板
/help获取使用帮助
/hooks管理工具事件的钩子配置
/init使用 CLAUDE.md 指南初始化项目
/login切换 Anthropic 账户
/logout从 Anthropic 账户登出
/mcp管理 MCP 服务器连接和 OAuth 身份验证
/memory编辑 CLAUDE.md 内存文件
/model选择或更改 AI 模型
/output-style [style]直接设置输出样式或从选择菜单中选择
/permissions查看或更新权限
/pr_comments查看拉取请求评论
/privacy-settings查看并更新隐私设置
/review请求代码审查
/sandbox启用沙箱化 bash 工具,具有文件系统和网络隔离,以实现更安全、更自主的执行
/rewind回退对话和/或代码
/status打开设置界面(状态选项卡),显示版本、模型、账户和连接性
/statusline设置 Claude Code 的状态行 UI
/terminal-setup安装 Shift+Enter 键绑定以实现换行(仅限 iTerm2 和 VSCode)
/todos列出当前待办事项
/usage显示计划使用限制和速率限制状态(仅限订阅计划)
/vim进入 vim 模式以交替使用插入和命令模式

自定义斜杠命令

自定义斜杠命令允许您将经常使用的提示定义为 Markdown 文件,Claude Code 可以执行这些文件。命令按范围(特定于项目或个人)组织,并通过目录结构支持命名空间。

语法

/<command-name> [arguments]

参数

参数描述
<command-name>从 Markdown 文件名派生的名称(不包括 .md 扩展名)
[arguments]传递给命令的可选参数

命令类型

项目命令

存储在您的存储库中并与您的团队共享的命令。在 /help 中列出时,这些命令在其描述后显示"(project)"。

位置: .claude/commands/

在以下示例中,我们创建 /optimize 命令:

bash
# 创建项目命令
mkdir -p .claude/commands
echo "Analyze this code for performance issues and suggest optimizations:" > .claude/commands/optimize.md

个人命令

在所有项目中可用的命令。在 /help 中列出时,这些命令在其描述后显示"(user)"。

位置: ~/.claude/commands/

在以下示例中,我们创建 /security-review 命令:

bash
# 创建个人命令
mkdir -p ~/.claude/commands
echo "Review this code for security vulnerabilities:" > ~/.claude/commands/security-review.md

功能

命名空间

在子目录中组织命令。子目录用于组织,并在命令描述中显示,但不影响命令名称本身。描述将显示命令来自项目目录(.claude/commands)还是用户级目录(~/.claude/commands),以及子目录名称。

不支持用户级和项目级命令之间的冲突。否则,具有相同基本文件名的多个命令可以共存。

例如,位于 .claude/commands/frontend/component.md 的文件创建命令 /component,描述显示"(project:frontend)"。 同时,位于 ~/.claude/commands/component.md 的文件创建命令 /component,描述显示"(user)"。

参数

使用参数占位符将动态值传递给命令:

使用 $ARGUMENTS 的所有参数

$ARGUMENTS 占位符捕获传递给命令的所有参数:

bash
# 命令定义
echo 'Fix issue #$ARGUMENTS following our coding standards' > .claude/commands/fix-issue.md

# 用法
> /fix-issue 123 high-priority
# $ARGUMENTS 变为:"123 high-priority"
使用 $1$2 等的单个参数

使用位置参数(类似于 shell 脚本)单独访问特定参数:

bash
# 命令定义  
echo 'Review PR #$1 with priority $2 and assign to $3' > .claude/commands/review-pr.md

# 用法
> /review-pr 456 high alice
# $1 变为 "456",$2 变为 "high",$3 变为 "alice"

在以下情况下使用位置参数:

  • 在命令的不同部分单独访问参数
  • 为缺失的参数提供默认值
  • 使用特定参数角色构建更结构化的命令

Bash 命令执行

使用 ! 前缀在斜杠命令运行之前执行 bash 命令。输出包含在命令上下文中。您_必须_使用 Bash 工具包含 allowed-tools,但您可以选择允许的特定 bash 命令。

例如:

markdown
---
allowed-tools: Bash(git add:*), Bash(git status:*), Bash(git commit:*)
description: Create a git commit
---

## Context

- Current git status: !`git status`
- Current git diff (staged and unstaged changes): !`git diff HEAD`
- Current branch: !`git branch --show-current`
- Recent commits: !`git log --oneline -10`

## Your task

Based on the above changes, create a single git commit.

文件引用

使用 @ 前缀在命令中包含文件内容以[引用文件]。

例如:

markdown
# 引用特定文件

Review the implementation in @src/utils/helpers.js

# 引用多个文件

Compare @src/old-version.js with @src/new-version.js

思考模式

斜杠命令可以通过包含[扩展思考关键字]来触发扩展思考。

前置事项

命令文件支持前置事项,用于指定有关命令的元数据:

前置事项用途默认值
allowed-tools命令可以使用的工具列表从对话继承
argument-hint斜杠命令期望的参数。示例:argument-hint: add [tagId] | remove [tagId] | list。此提示在自动完成斜杠命令时显示给用户。
description命令的简要描述使用提示中的第一行
model特定模型字符串(查看[模型概览])从对话继承
disable-model-invocation是否防止 SlashCommand 工具调用此命令false

例如:

markdown
---
allowed-tools: Bash(git add:*), Bash(git status:*), Bash(git commit:*)
argument-hint: [message]
description: Create a git commit
model: claude-3-5-haiku-20241022
---

Create a git commit with message: $ARGUMENTS

使用位置参数的示例:

markdown
---
argument-hint: [pr-number] [priority] [assignee]
description: Review pull request
---

Review PR #$1 with priority $2 and assign to $3.
Focus on security, performance, and code style.

插件命令

[插件]可以提供与 Claude Code 无缝集成的自定义斜杠命令。插件命令的工作方式与用户定义的命令完全相同,但通过[插件市场]分发。

插件命令如何工作

插件命令具有以下特点:

  • 命名空间化:命令可以使用 /plugin-name:command-name 格式以避免冲突(除非存在名称冲突,否则插件前缀是可选的)
  • 自动可用:安装并启用插件后,其命令会出现在 /help
  • 完全集成:支持所有命令功能(参数、前置事项、bash 执行、文件引用)

插件命令结构

位置: 插件根目录中的 commands/ 目录

文件格式: 带有前置事项的 Markdown 文件

基本命令结构:

markdown
---
description: Brief description of what the command does
---

# Command Name

Detailed instructions for Claude on how to execute this command.
Include specific guidance on parameters, expected outcomes, and any special considerations.

高级命令功能:

  • 参数:在命令描述中使用 {arg1} 等占位符
  • 子目录:在子目录中组织命令以实现命名空间
  • Bash 集成:命令可以执行 shell 脚本和程序
  • 文件引用:命令可以引用和修改项目文件

调用模式

shell
/command-name
shell
/plugin-name:command-name
shell
/command-name arg1 arg2

MCP 斜杠命令

MCP 服务器可以将提示公开为斜杠命令,这些命令在 Claude Code 中变为可用。这些命令从连接的 MCP 服务器动态发现。

命令格式

MCP 命令遵循以下模式:

/mcp__<server-name>__<prompt-name> [arguments]

功能

动态发现

MCP 命令在以下情况下自动可用:

  • MCP 服务器已连接并处于活动状态
  • 服务器通过 MCP 协议公开提示
  • 在连接期间成功检索提示

参数

MCP 提示可以接受由服务器定义的参数:

# 无参数
> /mcp__github__list_prs

# 带参数
> /mcp__github__pr_review 456
> /mcp__jira__create_issue "Bug title" high

命名约定

  • 服务器和提示名称已规范化
  • 空格和特殊字符变为下划线
  • 名称小写以保持一致性

管理 MCP 连接

使用 /mcp 命令来:

  • 查看所有已配置的 MCP 服务器
  • 检查连接状态
  • 使用启用 OAuth 的服务器进行身份验证
  • 清除身份验证令牌
  • 查看每个服务器的可用工具和提示

MCP 权限和通配符

配置[MCP 工具权限]时,请注意不支持通配符

  • 正确mcp__github(批准来自 github 服务器的所有工具)
  • 正确mcp__github__get_issue(批准特定工具)
  • 不正确mcp__github__*(不支持通配符)

要批准来自 MCP 服务器的所有工具,只需使用服务器名称:mcp__servername。要仅批准特定工具,请单独列出每个工具。

SlashCommand 工具

SlashCommand 工具允许 Claude 在对话期间以编程方式执行[自定义斜杠命令]。这使 Claude 能够在适当时代表您调用自定义命令。

要鼓励 Claude 触发 SlashCommand 工具,您的指令(提示、CLAUDE.md 等)通常需要按名称引用带有斜杠的命令。

示例:

> Run /write-unit-test when you are about to start writing tests.

此工具将每个可用自定义斜杠命令的元数据放入上下文中,直到达到字符预算限制。您可以使用 /context 监控令牌使用情况,并按照以下操作管理上下文。

SlashCommand 工具支持的命令

SlashCommand 工具仅支持满足以下条件的自定义斜杠命令:

  • 是用户定义的。内置命令如 /compact/init _不_受支持。
  • 已填充 description 前置事项字段。我们在上下文中使用 description

对于 Claude Code 版本 >= 1.0.124,您可以通过运行 claude --debug 并触发查询来查看 SlashCommand 工具可以调用的自定义斜杠命令。

禁用 SlashCommand 工具

要防止 Claude 通过工具执行任何斜杠命令:

bash
/permissions
# 添加到拒绝规则:SlashCommand

这也将从上下文中删除 SlashCommand 工具(和斜杠命令描述)。

仅禁用特定命令

要防止特定斜杠命令变为可用,请在斜杠命令的前置事项中添加 disable-model-invocation: true

这也将从上下文中删除命令的元数据。

SlashCommand 权限规则

权限规则支持:

  • 精确匹配SlashCommand:/commit(仅允许 /commit 且无参数)
  • 前缀匹配SlashCommand:/review-pr:*(允许 /review-pr 带任何参数)

字符预算限制

SlashCommand 工具包含字符预算以限制显示给 Claude 的命令描述的大小。这可以防止在有许多命令可用时出现令牌溢出。

预算包括每个自定义斜杠命令的名称、参数和描述。

  • 默认限制:15,000 个字符
  • 自定义限制:通过 SLASH_COMMAND_TOOL_CHAR_BUDGET 环境变量设置

当超过字符预算时,Claude 将仅看到可用命令的子集。在 /context 中,将显示一条警告,显示"M of N commands"。

技能与斜杠命令

斜杠命令代理技能在 Claude Code 中有不同的用途:

使用斜杠命令

快速、经常使用的提示

  • 您经常使用的简单提示片段
  • 快速提醒或模板
  • 适合一个文件的经常使用的指令

示例

  • /review → "Review this code for bugs and suggest improvements"
  • /explain → "Explain this code in simple terms"
  • /optimize → "Analyze this code for performance issues"

使用技能

具有结构的全面功能

  • 具有多个步骤的复杂工作流
  • 需要脚本或实用程序的功能
  • 跨多个文件组织的知识
  • 您想要标准化的团队工作流

示例

  • 带有表单填充脚本和验证的 PDF 处理技能
  • 具有不同数据类型参考文档的数据分析技能
  • 具有风格指南和模板的文档技能

关键差异

方面斜杠命令代理技能
复杂性简单提示复杂功能
结构单个 .md 文件带有 SKILL.md + 资源的目录
发现显式调用(/command自动(基于上下文)
文件仅一个文件多个文件、脚本、模板
范围项目或个人项目或个人
共享通过 git通过 git

示例比较

作为斜杠命令

markdown
# .claude/commands/review.md
Review this code for:
- Security vulnerabilities
- Performance issues
- Code style violations

用法:/review(手动调用)

作为技能

.claude/skills/code-review/
├── SKILL.md (overview and workflows)
├── SECURITY.md (security checklist)
├── PERFORMANCE.md (performance patterns)
├── STYLE.md (style guide reference)
└── scripts/
    └── run-linters.sh

用法:"Can you review this code?"(自动发现)

该技能提供更丰富的上下文、验证脚本和组织的参考材料。

何时使用每一个

使用斜杠命令

  • 您重复调用相同的提示
  • 提示适合单个文件
  • 您想要明确控制何时运行

使用技能

  • Claude 应该自动发现该功能
  • 需要多个文件或脚本
  • 具有验证步骤的复杂工作流
  • 团队需要标准化、详细的指导

斜杠命令和技能可以共存。使用适合您需求的方法。

MIT