SpyBara
Go Premium

Documentation 2026-08-19 17:02 UTC to 2026-08-20 23:01 UTC

1 file changed +0 −594. View all changes and history on the product overview
2026
Sat 22 17:02 Fri 21 22:58 Thu 20 23:01 Wed 19 17:02 Tue 18 23:59 Mon 17 22:57 Sun 16 14:59 Sat 15 16:00 Fri 14 23:00 Thu 13 23:57 Wed 12 23:59 Tue 11 22:03 Mon 10 22:57 Sun 9 04:02 Sat 8 04:59 Fri 7 23:57 Thu 6 15:02 Wed 5 22:02 Tue 4 22:59 Mon 3 20:02 Sun 2 19:00

agent-sdk/slash-commands.md +0 −594 deleted

File Deleted View Diff

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Slash Commands в SDK

6 

7> Узнайте, как использовать slash commands для управления сеансами Claude Code через SDK

8 

9Slash commands предоставляют способ управления сеансами Claude Code с помощью специальных команд, которые начинаются с `/`. Эти команды можно отправлять через SDK для выполнения действий, таких как компактирование контекста, список использования контекста или вызов пользовательских команд. Только команды, которые работают без интерактивного терминала, могут быть отправлены через SDK; сообщение `system/init` содержит список доступных в вашем сеансе.

10 

11<h2 id="discovering-available-slash-commands">

12 Обнаружение доступных Slash Commands

13</h2>

14 

15Claude Agent SDK предоставляет информацию о доступных slash commands в сообщении инициализации системы. Получите доступ к этой информации при запуске вашего сеанса:

16 

17<CodeGroup>

18 ```typescript TypeScript theme={null}

19 import { query } from "@anthropic-ai/claude-agent-sdk";

20 

21 for await (const message of query({

22 prompt: "Hello Claude",

23 options: { maxTurns: 1 }

24 })) {

25 if (message.type === "system" && message.subtype === "init") {

26 console.log("Available slash commands:", message.slash_commands);

27 // Включает встроенные команды плюс связанные skills, например:

28 // ["clear", "compact", "context", "usage", "code-review", "verify", ...]

29 }

30 }

31 ```

32 

33 ```python Python theme={null}

34 import asyncio

35 from claude_agent_sdk import query, ClaudeAgentOptions, SystemMessage

36 

37 

38 async def main():

39 async for message in query(prompt="Hello Claude", options=ClaudeAgentOptions(max_turns=1)):

40 if isinstance(message, SystemMessage) and message.subtype == "init":

41 print("Available slash commands:", message.data["slash_commands"])

42 # Включает встроенные команды плюс связанные skills, например:

43 # ["clear", "compact", "context", "usage", "code-review", "verify", ...]

44 

45 

46 asyncio.run(main())

47 ```

48</CodeGroup>

49 

50<h2 id="sending-slash-commands">

51 Отправка Slash Commands

52</h2>

53 

54Отправляйте slash commands, включая их в строку подсказки, как обычный текст. Команды, которые действуют на историю разговора, такие как `/compact`, требуют предыдущих сообщений для работы, поэтому примеры ниже сначала задают вопрос, а затем отправляют команду как продолжение того же разговора:

55 

56<CodeGroup>

57 ```typescript TypeScript theme={null}

58 import { query } from "@anthropic-ai/claude-agent-sdk";

59 

60 // Build up conversation history first

61 try {

62 for await (const message of query({

63 prompt: "What does the README in this directory cover?",

64 options: { maxTurns: 2 }

65 })) {

66 if (message.type === "result" && message.subtype === "success") {

67 console.log(message.result);

68 }

69 }

70 } catch (error) {

71 // A single-shot query() throws after yielding an error result,

72 // so the follow-up query below still runs.

73 console.error(`Session ended with an error: ${error}`);

74 }

75 

76 // Send a slash command as a follow-up to the same conversation

77 for await (const message of query({

78 prompt: "/compact",

79 options: { continue: true, maxTurns: 1 }

80 })) {

81 if (message.type === "result") {

82 console.log("Command executed, result subtype:", message.subtype);

83 // Example output: Command executed, result subtype: success

84 }

85 }

86 ```

87 

88 ```python Python theme={null}

89 import asyncio

90 from claude_agent_sdk import query, ClaudeAgentOptions, ResultMessage

91 

92 

93 async def main():

94 # Build up conversation history first

95 try:

96 async for message in query(

97 prompt="What does the README in this directory cover?",

98 options=ClaudeAgentOptions(max_turns=2),

99 ):

100 if isinstance(message, ResultMessage) and message.subtype == "success":

101 print(message.result)

102 except Exception as error:

103 # A single-shot query() raises after yielding an error result,

104 # so the follow-up query below still runs.

105 print(f"Session ended with an error: {error}")

106 

107 # Send a slash command as a follow-up to the same conversation

108 async for message in query(

109 prompt="/compact",

110 options=ClaudeAgentOptions(continue_conversation=True, max_turns=1),

111 ):

112 if isinstance(message, ResultMessage):

113 print("Command executed, result subtype:", message.subtype)

114 # Example output: Command executed, result subtype: success

115 

116 

117 asyncio.run(main())

118 ```

119</CodeGroup>

120 

121<Note>

122 Запрос может завершиться с результатом ошибки, например когда достигнут лимит `maxTurns` / `max_turns` до завершения работы. Финальное сообщение результата имеет `is_error: true` и подтип ошибки, такой как `error_max_turns`, вместо `success`.

123 

124 После выдачи этого финального сообщения результата SDK выбрасывает ошибку, потому что процесс CLI завершается с ненулевым кодом.

125 

126 Оберните цикл в `try`/`catch` в TypeScript или `try`/`except` в Python, если ваша команда может достичь лимита, как показано в [Single Message Input](/ru/agent-sdk/streaming-vs-single-mode#single-message-input), или установите `maxTurns` достаточно высоко для завершения работы. В Python перехватывайте `Exception`: SDK выводит результаты ошибок как простое `Exception`.

127</Note>

128 

129<h2 id="common-slash-commands">

130 Распространённые Slash Commands

131</h2>

132 

133<h3 id="/compact-compact-conversation-history">

134 `/compact` - Компактирование истории разговора

135</h3>

136 

137Команда `/compact` уменьшает размер истории вашего разговора путём суммирования старых сообщений при сохранении важного контекста. Компактирование требует существующего разговора с минимум двумя предыдущими обменами для суммирования. Этот пример сначала содержит разговор, затем компактирует его и читает системное сообщение `compact_boundary`, которое сообщает результат:

138 

139<CodeGroup>

140 ```typescript TypeScript theme={null}

141 import { query } from "@anthropic-ai/claude-agent-sdk";

142 

143 // Compaction needs existing history, so have a conversation first

144 try {

145 for await (const message of query({

146 prompt: "Explain what this project does",

147 options: { maxTurns: 2 }

148 })) {

149 if (message.type === "result" && message.subtype === "success") {

150 console.log(message.result);

151 }

152 }

153 } catch (error) {

154 // A single-shot query() throws after yielding an error result,

155 // so the follow-up query below still runs.

156 console.error(`Session ended with an error: ${error}`);

157 }

158 

159 // Compact the same conversation

160 for await (const message of query({

161 prompt: "/compact",

162 options: { continue: true, maxTurns: 1 }

163 })) {

164 if (message.type === "system" && message.subtype === "compact_boundary") {

165 console.log("Compaction completed");

166 console.log("Pre-compaction tokens:", message.compact_metadata.pre_tokens);

167 console.log("Trigger:", message.compact_metadata.trigger);

168 // Example output:

169 // Compaction completed

170 // Pre-compaction tokens: 1842

171 // Trigger: manual

172 }

173 }

174 ```

175 

176 ```python Python theme={null}

177 import asyncio

178 from claude_agent_sdk import query, ClaudeAgentOptions, ResultMessage, SystemMessage

179 

180 

181 async def main():

182 # Compaction needs existing history, so have a conversation first

183 try:

184 async for message in query(

185 prompt="Explain what this project does",

186 options=ClaudeAgentOptions(max_turns=2),

187 ):

188 if isinstance(message, ResultMessage) and message.subtype == "success":

189 print(message.result)

190 except Exception as error:

191 # A single-shot query() raises after yielding an error result,

192 # so the follow-up query below still runs.

193 print(f"Session ended with an error: {error}")

194 

195 # Compact the same conversation

196 async for message in query(

197 prompt="/compact",

198 options=ClaudeAgentOptions(continue_conversation=True, max_turns=1),

199 ):

200 if isinstance(message, SystemMessage) and message.subtype == "compact_boundary":

201 print("Compaction completed")

202 print("Pre-compaction tokens:", message.data["compact_metadata"]["pre_tokens"])

203 print("Trigger:", message.data["compact_metadata"]["trigger"])

204 # Example output:

205 # Compaction completed

206 # Pre-compaction tokens: 1842

207 # Trigger: manual

208 

209 

210 asyncio.run(main())

211 ```

212</CodeGroup>

213 

214<Note>

215 Сообщение `compact_boundary` поступает только при выполнении компактирования. Если нечего суммировать, `/compact` сообщает причину вместо возникновения ошибки: выполнение всё ещё заканчивается результатом `success`, сообщение `compact_boundary` не выдаётся, и текст результата содержит сообщение, например `Not enough messages to compact.` после одного короткого обмена. Новый одноразовый вызов `query()` начинается с пустым контекстом, поэтому используйте этот паттерн в сеансе с предыдущими ходами, например в [режиме потоковой передачи входных данных](/ru/agent-sdk/streaming-vs-single-mode) или при возобновлении сеанса.

216</Note>

217 

218<h3 id="/clear-reset-conversation-context">

219 `/clear` - Сброс контекста разговора

220</h3>

221 

222Команда `/clear` сбрасывает разговор в пустой контекст, поэтому последующие запросы начинаются без предыдущей истории разговора. Предыдущий разговор остаётся на диске и может быть восстановлен путём передачи его ID сеанса в [опцию `resume`](/ru/agent-sdk/sessions#resume-by-id).

223 

224Это полезно в [режиме потоковой передачи входных данных](/ru/agent-sdk/streaming-vs-single-mode), где вы отправляете несколько запросов через одно соединение. Для одноразовых вызовов `query()` каждый вызов уже начинает с пустого контекста, поэтому отправка `/clear` не имеет практического эффекта; вместо этого начните новый `query()`.

225 

226<Note>

227 `/clear` в SDK требует Claude Code v2.1.117 или более поздней версии. В более ранних версиях он опущен из `slash_commands`.

228</Note>

229 

230<h2 id="creating-custom-slash-commands">

231 Создание пользовательских Slash Commands

232</h2>

233 

234Помимо использования встроенных slash commands, вы можете создавать свои собственные пользовательские команды, доступные через SDK. Пользовательские команды определяются как файлы markdown в определённых каталогах, аналогично тому, как настраиваются подагенты.

235 

236<Note>

237 Каталог `.claude/commands/` — это устаревший формат. Рекомендуемый формат — `.claude/skills/<name>/SKILL.md`, который поддерживает то же самое вызывание slash-команды (`/name`) плюс автономный вызов Claude. Смотрите [Skills](/ru/agent-sdk/skills) для текущего формата. CLI продолжает поддерживать оба формата, и приведённые ниже примеры остаются точными для `.claude/commands/`.

238</Note>

239 

240<h3 id="file-locations">

241 Расположение файлов

242</h3>

243 

244Пользовательские slash commands хранятся в назначенных каталогах в зависимости от их области действия:

245 

246* **Команды проекта**: `.claude/commands/` - Доступны только в текущем проекте (устаревший; предпочитайте `.claude/skills/`)

247* **Личные команды**: `~/.claude/commands/` - Доступны во всех ваших проектах (устаревший; предпочитайте `~/.claude/skills/`)

248 

249<h3 id="file-format">

250 Формат файла

251</h3>

252 

253Каждая пользовательская команда — это файл markdown, где:

254 

255* Имя файла (без расширения `.md`) становится именем команды

256* Содержимое файла определяет, что делает команда

257* Опциональный YAML frontmatter предоставляет конфигурацию

258 

259<h4 id="basic-example">

260 Базовый пример

261</h4>

262 

263Создайте каталог `.claude/commands` в вашем проекте, если его ещё нет, затем создайте `.claude/commands/refactor.md`:

264 

265```markdown theme={null}

266Refactor the selected code to improve readability and maintainability.

267Focus on clean code principles and best practices.

268```

269 

270Это создаёт команду `/refactor`, которую вы можете использовать через SDK.

271 

272<h4 id="with-frontmatter">

273 С Frontmatter

274</h4>

275 

276Создайте `.claude/commands/security-check.md`:

277 

278```markdown theme={null}

279allowed-tools: Read, Grep, Glob

280description: Run security vulnerability scan

281model: claude-opus-4-8

282 

283Analyze the codebase for security vulnerabilities including:

284- SQL injection risks

285- XSS vulnerabilities

286- Exposed credentials

287- Insecure configurations

288```

289 

290<h3 id="using-custom-commands-in-the-sdk">

291 Использование пользовательских команд в SDK

292</h3>

293 

294После определения в файловой системе пользовательские команды автоматически доступны через SDK:

295 

296<CodeGroup>

297 ```typescript TypeScript theme={null}

298 import { query } from "@anthropic-ai/claude-agent-sdk";

299 

300 // Use a custom command

301 try {

302 for await (const message of query({

303 prompt: "/refactor src/auth/login.ts",

304 options: { maxTurns: 3 }

305 })) {

306 if (message.type === "assistant") {

307 console.log("Refactoring suggestions:", message.message);

308 }

309 }

310 } catch (error) {

311 // A single-shot query() throws after yielding an error result,

312 // so the second query below still runs.

313 console.error(`Session ended with an error: ${error}`);

314 }

315 

316 // Custom commands appear in the slash_commands list

317 for await (const message of query({

318 prompt: "Hello",

319 options: { maxTurns: 1 }

320 })) {

321 if (message.type === "system" && message.subtype === "init") {

322 console.log("Available commands:", message.slash_commands);

323 // Includes built-in commands plus bundled skills and your custom commands, for example:

324 // ["clear", "compact", "context", "usage", "code-review", "verify", "refactor", "security-check", ...]

325 }

326 }

327 ```

328 

329 ```python Python theme={null}

330 import asyncio

331 from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, SystemMessage

332 

333 

334 async def main():

335 # Use a custom command

336 try:

337 async for message in query(

338 prompt="/refactor src/auth/login.py", options=ClaudeAgentOptions(max_turns=3)

339 ):

340 if isinstance(message, AssistantMessage):

341 for block in message.content:

342 if hasattr(block, "text"):

343 print("Refactoring suggestions:", block.text)

344 except Exception as error:

345 # A single-shot query() raises after yielding an error result,

346 # so the second query below still runs.

347 print(f"Session ended with an error: {error}")

348 

349 # Custom commands appear in the slash_commands list

350 async for message in query(prompt="Hello", options=ClaudeAgentOptions(max_turns=1)):

351 if isinstance(message, SystemMessage) and message.subtype == "init":

352 print("Available commands:", message.data["slash_commands"])

353 # Includes built-in commands plus bundled skills and your custom commands, for example:

354 # ["clear", "compact", "context", "usage", "code-review", "verify", "refactor", "security-check", ...]

355 

356 

357 asyncio.run(main())

358 ```

359</CodeGroup>

360 

361<h3 id="advanced-features">

362 Расширенные возможности

363</h3>

364 

365<h4 id="arguments-and-placeholders">

366 Аргументы и заполнители

367</h4>

368 

369Пользовательские команды поддерживают динамические аргументы с использованием заполнителей:

370 

371Создайте `.claude/commands/fix-issue.md`:

372 

373```markdown theme={null}

374argument-hint: [issue-number] [priority]

375description: Fix a GitHub issue

376 

377Fix issue #$0 with priority $1.

378Check the issue description and implement the necessary changes.

379```

380 

381Используйте в SDK:

382 

383<CodeGroup>

384 ```typescript TypeScript theme={null}

385 import { query } from "@anthropic-ai/claude-agent-sdk";

386 

387 // Pass arguments to custom command

388 for await (const message of query({

389 prompt: "/fix-issue 123 high",

390 options: { maxTurns: 5 }

391 })) {

392 // Command will process with $0="123" and $1="high"

393 if (message.type === "result" && message.subtype === "success") {

394 console.log("Issue fixed:", message.result);

395 }

396 }

397 ```

398 

399 ```python Python theme={null}

400 import asyncio

401 from claude_agent_sdk import query, ClaudeAgentOptions, ResultMessage

402 

403 

404 async def main():

405 # Pass arguments to custom command

406 async for message in query(prompt="/fix-issue 123 high", options=ClaudeAgentOptions(max_turns=5)):

407 # Command will process with $0="123" and $1="high"

408 if isinstance(message, ResultMessage):

409 print("Issue fixed:", message.result)

410 

411 

412 asyncio.run(main())

413 ```

414</CodeGroup>

415 

416<h4 id="bash-command-execution">

417 Выполнение команд Bash

418</h4>

419 

420Пользовательские команды могут выполнять команды bash и включать их вывод:

421 

422Создайте `.claude/commands/git-commit.md`:

423 

424```markdown theme={null}

425allowed-tools: Bash(git add *), Bash(git status *), Bash(git commit *)

426description: Create a git commit

427 

428## Context

429 

430- Current status: !`git status`

431- Current diff: !`git diff HEAD`

432 

433## Task

434 

435Create a git commit with appropriate message based on the changes.

436```

437 

438<h4 id="file-references">

439 Ссылки на файлы

440</h4>

441 

442Включайте содержимое файлов с использованием префикса `@`:

443 

444Создайте `.claude/commands/review-config.md`:

445 

446```markdown theme={null}

447description: Review configuration files

448 

449Review the following configuration files for issues:

450- Package config: @package.json

451- TypeScript config: @tsconfig.json

452- Environment config: @.env

453 

454Check for security issues, outdated dependencies, and misconfigurations.

455```

456 

457<h3 id="organization-with-namespacing">

458 Организация с использованием пространств имён

459</h3>

460 

461Организуйте команды в подкаталогах для лучшей структуры:

462 

463```bash theme={null}

464.claude/commands/

465├── frontend/

466│ ├── component.md # Creates /component (project:frontend)

467│ └── style-check.md # Creates /style-check (project:frontend)

468├── backend/

469│ ├── api-test.md # Creates /api-test (project:backend)

470│ └── db-migrate.md # Creates /db-migrate (project:backend)

471└── review.md # Creates /review (project)

472```

473 

474Подкаталог появляется в описании команды, но не влияет на само имя команды.

475 

476<h3 id="practical-examples">

477 Практические примеры

478</h3>

479 

480<h4 id="pull-request-review-command">

481 Команда проверки Pull Request

482</h4>

483 

484Создайте `.claude/commands/review-pr.md`:

485 

486```markdown theme={null}

487allowed-tools: Read, Grep, Glob, Bash(git diff *)

488description: Comprehensive code review

489 

490## Changed Files

491!`git diff --name-only HEAD~1`

492 

493## Detailed Changes

494!`git diff HEAD~1`

495 

496## Review Checklist

497 

498Review the above changes for:

4991. Code quality and readability

5002. Security vulnerabilities

5013. Performance implications

5024. Test coverage

5035. Documentation completeness

504 

505Provide specific, actionable feedback organized by priority.

506```

507 

508<Note>

509 Claude Code включает встроенные skills `code-review` и `verify`. Если вы назовёте пользовательскую команду в честь одного из них, например `.claude/commands/code-review.md`, ваша команда затенит встроенный skill и `slash_commands` выведет имя один раз.

510</Note>

511 

512<h4 id="test-runner-command">

513 Команда запуска тестов

514</h4>

515 

516Создайте `.claude/commands/test.md`:

517 

518```markdown theme={null}

519allowed-tools: Bash, Read, Edit

520argument-hint: [test-pattern]

521description: Run tests with optional pattern

522 

523Run tests matching pattern: $ARGUMENTS

524 

5251. Detect the test framework (Jest, pytest, etc.)

5262. Run tests with the provided pattern

5273. If tests fail, analyze and fix them

5284. Re-run to verify fixes

529```

530 

531Используйте эти команды через SDK:

532 

533<CodeGroup>

534 ```typescript TypeScript theme={null}

535 import { query } from "@anthropic-ai/claude-agent-sdk";

536 

537 // Run code review

538 try {

539 for await (const message of query({

540 prompt: "/review-pr",

541 options: { maxTurns: 3 }

542 })) {

543 // Process review feedback

544 }

545 } catch (error) {

546 // A single-shot query() throws after yielding an error result,

547 // so the second query below still runs.

548 console.error(`Session ended with an error: ${error}`);

549 }

550 

551 // Run specific tests

552 for await (const message of query({

553 prompt: "/test auth",

554 options: { maxTurns: 5 }

555 })) {

556 // Handle test results

557 }

558 ```

559 

560 ```python Python theme={null}

561 import asyncio

562 from claude_agent_sdk import query, ClaudeAgentOptions

563 

564 

565 async def main():

566 # Run code review

567 try:

568 async for message in query(prompt="/review-pr", options=ClaudeAgentOptions(max_turns=3)):

569 # Process review feedback

570 pass

571 except Exception as error:

572 # A single-shot query() raises after yielding an error result,

573 # so the second query below still runs.

574 print(f"Session ended with an error: {error}")

575 

576 # Run specific tests

577 async for message in query(prompt="/test auth", options=ClaudeAgentOptions(max_turns=5)):

578 # Handle test results

579 pass

580 

581 

582 asyncio.run(main())

583 ```

584</CodeGroup>

585 

586<h2 id="see-also">

587 Смотрите также

588</h2>

589 

590* [Slash Commands](/ru/skills) - Полная документация slash commands

591* [Subagents в SDK](/ru/agent-sdk/subagents) - Аналогичная конфигурация на основе файловой системы для подагентов

592* [Справочник TypeScript SDK](/ru/agent-sdk/typescript) - Полная документация API

593* [Обзор SDK](/ru/agent-sdk/overview) - Общие концепции SDK

594* [Справочник CLI](/ru/cli-reference) - Интерфейс командной строки