斜杠命令提供了一种使用以 /
开头的特殊命令来控制 Claude Code 会话的方法。这些命令可以通过 SDK 发送,以执行清除对话历史、压缩消息或获取帮助等操作。
发现可用的斜杠命令
Claude Code SDK 在系统初始化消息中提供有关可用斜杠命令的信息。在会话开始时访问此信息:
import { query } from "@anthropic-ai/claude-code" ;
for await ( const message of query ( {
prompt: "Hello Claude" ,
options: { maxTurns: 1 }
} ) ) {
if ( message. type === "system" && message. subtype === "init" ) {
console . log ( "Available slash commands:" , message. slash_commands) ;
}
}
发送斜杠命令
通过在提示字符串中包含斜杠命令来发送它们,就像常规文本一样:
import { query } from "@anthropic-ai/claude-code" ;
for await ( const message of query ( {
prompt: "/compact" ,
options: { maxTurns: 1 }
} ) ) {
if ( message. type === "result" ) {
console . log ( "Command executed:" , message. result) ;
}
}
常见斜杠命令
/compact
- 压缩对话历史
/compact
命令通过总结较旧的消息同时保留重要上下文来减少对话历史的大小:
import { query } from "@anthropic-ai/claude-code" ;
for await ( const message of query ( {
prompt: "/compact" ,
options: { maxTurns: 1 }
} ) ) {
if ( message. type === "system" && message. subtype === "compact_boundary" ) {
console . log ( "Compaction completed" ) ;
console . log ( "Pre-compaction tokens:" , message. compact_metadata. pre_tokens) ;
console . log ( "Trigger:" , message. compact_metadata. trigger) ;
}
}
/clear
- 清除对话
/clear
命令通过清除所有先前历史来开始新的对话:
import { query } from "@anthropic-ai/claude-code" ;
for await ( const message of query ( {
prompt: "/clear" ,
options: { maxTurns: 1 }
} ) ) {
if ( message. type === "system" && message. subtype === "init" ) {
console . log ( "Conversation cleared, new session started" ) ;
console . log ( "Session ID:" , message. session_id) ;
}
}
创建自定义斜杠命令
除了使用内置斜杠命令外,您还可以创建通过 SDK 可用的自定义命令。自定义命令定义为特定目录中的 markdown 文件,类似于子代理的配置方式。
文件位置
自定义斜杠命令根据其范围存储在指定目录中:
项目命令 :.claude/commands/
- 仅在当前项目中可用
个人命令 :~/.claude/commands/
- 在您的所有项目中可用
文件格式
每个自定义命令都是一个 markdown 文件,其中:
文件名(不包括 .md
扩展名)成为命令名称
文件内容定义命令的功能
可选的 YAML 前置内容提供配置
基本示例
创建 .claude/commands/refactor.md
:
这将创建可通过 SDK 使用的 /refactor
命令。
带前置内容
创建 .claude/commands/security-check.md
:
在 SDK 中使用自定义命令
一旦在文件系统中定义,自定义命令就会自动通过 SDK 可用:
import { query } from "@anthropic-ai/claude-code" ;
for await ( const message of query ( {
prompt: "/refactor src/auth/login.ts" ,
options: { maxTurns: 3 }
} ) ) {
if ( message. type === "assistant" ) {
console . log ( "Refactoring suggestions:" , message. message) ;
}
}
for await ( const message of query ( {
prompt: "Hello" ,
options: { maxTurns: 1 }
} ) ) {
if ( message. type === "system" && message. subtype === "init" ) {
console . log ( "Available commands:" , message. slash_commands) ;
}
}
高级功能
参数和占位符
自定义命令支持使用占位符的动态参数:
创建 .claude/commands/fix-issue.md
:
在 SDK 中使用:
import { query } from "@anthropic-ai/claude-code" ;
for await ( const message of query ( {
prompt: "/fix-issue 123 high" ,
options: { maxTurns: 5 }
} ) ) {
if ( message. type === "result" ) {
console . log ( "Issue fixed:" , message. result) ;
}
}
Bash 命令执行
自定义命令可以执行 bash 命令并包含其输出:
创建 .claude/commands/git-commit.md
:
文件引用
使用 @
前缀包含文件内容:
创建 .claude/commands/review-config.md
:
使用命名空间进行组织
在子目录中组织命令以获得更好的结构:
子目录出现在命令描述中,但不影响命令名称本身。
实际示例
代码审查命令
创建 .claude/commands/code-review.md
:
测试运行器命令
创建 .claude/commands/test.md
:
通过 SDK 使用这些命令:
import { query } from "@anthropic-ai/claude-code" ;
for await ( const message of query ( {
prompt: "/code-review" ,
options: { maxTurns: 3 }
} ) ) {
}
for await ( const message of query ( {
prompt: "/test auth" ,
options: { maxTurns: 5 }
} ) ) {
}
另请参阅