Langsung ke konten utama
Slash commands menyediakan cara untuk mengontrol sesi Claude Code dengan perintah khusus yang dimulai dengan /. Perintah-perintah ini dapat dikirim melalui SDK untuk melakukan tindakan seperti memadatkan konteks, mencantumkan penggunaan konteks, atau memanggil perintah khusus. Hanya perintah yang bekerja tanpa terminal interaktif yang dapat dikirim melalui SDK; pesan system/init mencantumkan yang tersedia di sesi Anda.

Menemukan Slash Commands yang Tersedia

Claude Agent SDK menyediakan informasi tentang slash commands yang tersedia dalam pesan inisialisasi sistem. Akses informasi ini ketika sesi Anda dimulai:
import { query } from "@anthropic-ai/claude-agent-sdk";

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);
    // Example output: ["clear", "compact", "context", "usage"]
  }
}

Mengirim Slash Commands

Kirim slash commands dengan memasukkannya dalam string prompt Anda, seperti teks biasa:
import { query } from "@anthropic-ai/claude-agent-sdk";

// Send a slash command
for await (const message of query({
  prompt: "/compact",
  options: { maxTurns: 1 }
})) {
  if (message.type === "result" && message.subtype === "success") {
    console.log("Command executed:", message.result);
  }
}

Slash Commands Umum

/compact - Memadatkan Riwayat Percakapan

Perintah /compact mengurangi ukuran riwayat percakapan Anda dengan merangkum pesan yang lebih lama sambil mempertahankan konteks penting:
import { query } from "@anthropic-ai/claude-agent-sdk";

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 - Atur Ulang Konteks Percakapan

Perintah /clear mengatur ulang percakapan ke konteks kosong, sehingga prompt berikutnya dimulai tanpa riwayat percakapan sebelumnya. Percakapan sebelumnya tetap tersimpan di disk dan dapat dikembalikan dengan melewatkan ID sesinya ke opsi resume. Ini berguna dalam mode input streaming, di mana Anda mengirim beberapa prompt melalui satu koneksi. Untuk panggilan query() sekali jalan, setiap panggilan sudah dimulai dengan konteks kosong, jadi mengirim /clear tidak memiliki efek praktis; mulai query() baru sebagai gantinya.
/clear di SDK memerlukan Claude Code v2.1.117 atau lebih baru. Dalam versi sebelumnya, ini dihilangkan dari slash_commands.

Membuat Slash Commands Khusus

Selain menggunakan slash commands bawaan, Anda dapat membuat perintah khusus Anda sendiri yang tersedia melalui SDK. Perintah khusus didefinisikan sebagai file markdown di direktori tertentu, mirip dengan cara subagents dikonfigurasi.
Direktori .claude/commands/ adalah format warisan. Format yang direkomendasikan adalah .claude/skills/<name>/SKILL.md, yang mendukung invokasi slash-command yang sama (/name) ditambah invokasi otonom oleh Claude. Lihat Skills untuk format saat ini. CLI terus mendukung kedua format, dan contoh di bawah tetap akurat untuk .claude/commands/.

Lokasi File

Slash commands khusus disimpan di direktori yang ditentukan berdasarkan cakupan mereka:
  • Perintah proyek: .claude/commands/ - Tersedia hanya di proyek saat ini (warisan; lebih suka .claude/skills/)
  • Perintah pribadi: ~/.claude/commands/ - Tersedia di semua proyek Anda (warisan; lebih suka ~/.claude/skills/)

Format File

Setiap perintah khusus adalah file markdown di mana:
  • Nama file (tanpa ekstensi .md) menjadi nama perintah
  • Konten file mendefinisikan apa yang dilakukan perintah
  • Frontmatter YAML opsional menyediakan konfigurasi

Contoh Dasar

Buat .claude/commands/refactor.md:
Refactor the selected code to improve readability and maintainability.
Focus on clean code principles and best practices.
Ini membuat perintah /refactor yang dapat Anda gunakan melalui SDK.

Dengan Frontmatter

Buat .claude/commands/security-check.md:
---
allowed-tools: Read, Grep, Glob
description: Run security vulnerability scan
model: claude-opus-4-7
---

Analyze the codebase for security vulnerabilities including:
- SQL injection risks
- XSS vulnerabilities
- Exposed credentials
- Insecure configurations

Menggunakan Custom Commands di SDK

Setelah didefinisikan di sistem file, perintah khusus secara otomatis tersedia melalui SDK:
import { query } from "@anthropic-ai/claude-agent-sdk";

// Use a custom command
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);
  }
}

// Custom commands appear in the slash_commands list
for await (const message of query({
  prompt: "Hello",
  options: { maxTurns: 1 }
})) {
  if (message.type === "system" && message.subtype === "init") {
    // Will include both built-in and custom commands
    console.log("Available commands:", message.slash_commands);
    // Example: ["clear", "compact", "context", "usage", "refactor", "security-check"]
  }
}

Fitur Lanjutan

Argumen dan Placeholder

Perintah khusus mendukung argumen dinamis menggunakan placeholder: Buat .claude/commands/fix-issue.md:
---
argument-hint: [issue-number] [priority]
description: Fix a GitHub issue
---

Fix issue #$0 with priority $1.
Check the issue description and implement the necessary changes.
Gunakan di SDK:
import { query } from "@anthropic-ai/claude-agent-sdk";

// Pass arguments to custom command
for await (const message of query({
  prompt: "/fix-issue 123 high",
  options: { maxTurns: 5 }
})) {
  // Command will process with $0="123" and $1="high"
  if (message.type === "result" && message.subtype === "success") {
    console.log("Issue fixed:", message.result);
  }
}

Eksekusi Perintah Bash

Perintah khusus dapat mengeksekusi perintah bash dan menyertakan output mereka: Buat .claude/commands/git-commit.md:
---
allowed-tools: Bash(git add *), Bash(git status *), Bash(git commit *)
description: Create a git commit
---

## Context

- Current status: !`git status`
- Current diff: !`git diff HEAD`

## Task

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

Referensi File

Sertakan konten file menggunakan awalan @: Buat .claude/commands/review-config.md:
---
description: Review configuration files
---

Review the following configuration files for issues:
- Package config: @package.json
- TypeScript config: @tsconfig.json
- Environment config: @.env

Check for security issues, outdated dependencies, and misconfigurations.

Organisasi dengan Namespacing

Organisir perintah dalam subdirektori untuk struktur yang lebih baik:
.claude/commands/
├── frontend/
   ├── component.md      # Creates /component (project:frontend)
   └── style-check.md     # Creates /style-check (project:frontend)
├── backend/
   ├── api-test.md        # Creates /api-test (project:backend)
   └── db-migrate.md      # Creates /db-migrate (project:backend)
└── review.md              # Creates /review (project)
Subdirektori muncul dalam deskripsi perintah tetapi tidak mempengaruhi nama perintah itu sendiri.

Contoh Praktis

Perintah Code Review

Buat .claude/commands/code-review.md:
---
allowed-tools: Read, Grep, Glob, Bash(git diff *)
description: Comprehensive code review
---

## Changed Files
!`git diff --name-only HEAD~1`

## Detailed Changes
!`git diff HEAD~1`

## Review Checklist

Review the above changes for:
1. Code quality and readability
2. Security vulnerabilities
3. Performance implications
4. Test coverage
5. Documentation completeness

Provide specific, actionable feedback organized by priority.

Perintah Test Runner

Buat .claude/commands/test.md:
---
allowed-tools: Bash, Read, Edit
argument-hint: [test-pattern]
description: Run tests with optional pattern
---

Run tests matching pattern: $ARGUMENTS

1. Detect the test framework (Jest, pytest, etc.)
2. Run tests with the provided pattern
3. If tests fail, analyze and fix them
4. Re-run to verify fixes
Gunakan perintah-perintah ini melalui SDK:
import { query } from "@anthropic-ai/claude-agent-sdk";

// Run code review
for await (const message of query({
  prompt: "/code-review",
  options: { maxTurns: 3 }
})) {
  // Process review feedback
}

// Run specific tests
for await (const message of query({
  prompt: "/test auth",
  options: { maxTurns: 5 }
})) {
  // Handle test results
}

Lihat Juga