Coba antarmuka V2 baru (pratinjau): Antarmuka yang disederhanakan dengan pola
send() dan stream() kini tersedia, membuat percakapan multi-putaran lebih mudah. Pelajari lebih lanjut tentang pratinjau TypeScript V2Instalasi
SDK menggabungkan biner Claude Code asli untuk platform Anda sebagai dependensi opsional seperti
@anthropic-ai/claude-agent-sdk-darwin-arm64. Anda tidak perlu menginstal Claude Code secara terpisah. Jika pengelola paket Anda melewatkan dependensi opsional, SDK melempar Native CLI binary for <platform> not found; setel pathToClaudeCodeExecutable ke biner claude yang diinstal secara terpisah sebagai gantinya.Fungsi
query()
Fungsi utama untuk berinteraksi dengan Claude Code. Membuat generator asinkron yang melakukan streaming pesan saat tiba.
Parameter
| Parameter | Tipe | Deskripsi |
|---|---|---|
prompt | string | AsyncIterable<SDKUserMessage> | Prompt input sebagai string atau async iterable untuk mode streaming |
options | Options | Objek konfigurasi opsional (lihat tipe Options di bawah) |
Pengembalian
Mengembalikan objekQuery yang memperluas AsyncGenerator<SDKMessage, void> dengan metode tambahan.
startup()
Pra-pemanasan subprocess CLI dengan menspawnya dan menyelesaikan handshake inisialisasi sebelum prompt tersedia. Handle WarmQuery yang dikembalikan menerima prompt nanti dan menulisnya ke proses yang sudah siap, sehingga panggilan query() pertama diselesaikan tanpa membayar biaya spawn dan inisialisasi subprocess secara inline.
Parameter
| Parameter | Tipe | Deskripsi |
|---|---|---|
options | Options | Objek konfigurasi opsional. Sama dengan parameter options ke query() |
initializeTimeoutMs | number | Waktu maksimum dalam milidetik untuk menunggu inisialisasi subprocess. Default ke 60000. Jika inisialisasi tidak selesai tepat waktu, promise ditolak dengan error timeout |
Pengembalian
MengembalikanPromise<WarmQuery> yang diselesaikan setelah subprocess telah dispawn dan menyelesaikan handshake inisialisasinya.
Contoh
Panggilstartup() lebih awal, misalnya saat boot aplikasi, kemudian panggil .query() pada handle yang dikembalikan setelah prompt siap. Ini memindahkan spawn subprocess dan inisialisasi keluar dari jalur kritis.
tool()
Membuat definisi tool MCP yang aman tipe untuk digunakan dengan server MCP SDK.
Parameter
| Parameter | Tipe | Deskripsi |
|---|---|---|
name | string | Nama tool |
description | string | Deskripsi tentang apa yang dilakukan tool |
inputSchema | Schema extends AnyZodRawShape | Skema Zod yang mendefinisikan parameter input tool (mendukung Zod 3 dan Zod 4) |
handler | (args, extra) => Promise<CallToolResult> | Fungsi asinkron yang mengeksekusi logika tool |
extras | { annotations?: ToolAnnotations } | Anotasi tool MCP opsional yang memberikan petunjuk perilaku kepada klien |
ToolAnnotations
Dieksport ulang dari @modelcontextprotocol/sdk/types.js. Semua field adalah petunjuk opsional; klien tidak boleh mengandalkannya untuk keputusan keamanan.
| Field | Tipe | Default | Deskripsi |
|---|---|---|---|
title | string | undefined | Judul yang dapat dibaca manusia untuk tool |
readOnlyHint | boolean | false | Jika true, tool tidak memodifikasi lingkungannya |
destructiveHint | boolean | true | Jika true, tool dapat melakukan pembaruan destruktif (hanya bermakna ketika readOnlyHint adalah false) |
idempotentHint | boolean | false | Jika true, panggilan berulang dengan argumen yang sama tidak memiliki efek tambahan (hanya bermakna ketika readOnlyHint adalah false) |
openWorldHint | boolean | true | Jika true, tool berinteraksi dengan entitas eksternal (misalnya, pencarian web). Jika false, domain tool ditutup (misalnya, tool memori) |
createSdkMcpServer()
Membuat instance server MCP yang berjalan dalam proses yang sama dengan aplikasi Anda.
Parameter
| Parameter | Tipe | Deskripsi |
|---|---|---|
options.name | string | Nama server MCP |
options.version | string | String versi opsional |
options.tools | Array<SdkMcpToolDefinition> | Array definisi tool yang dibuat dengan tool() |
listSessions()
Menemukan dan membuat daftar sesi masa lalu dengan metadata ringan. Filter berdasarkan direktori proyek atau buat daftar sesi di semua proyek.
Parameter
| Parameter | Tipe | Default | Deskripsi |
|---|---|---|---|
options.dir | string | undefined | Direktori untuk membuat daftar sesi. Ketika dihilangkan, mengembalikan sesi di semua proyek |
options.limit | number | undefined | Jumlah maksimum sesi yang akan dikembalikan |
options.includeWorktrees | boolean | true | Ketika dir berada di dalam repositori git, sertakan sesi dari semua jalur worktree |
Tipe pengembalian: SDKSessionInfo
| Properti | Tipe | Deskripsi |
|---|---|---|
sessionId | string | Pengenal sesi unik (UUID) |
summary | string | Judul tampilan: judul kustom, ringkasan yang dihasilkan otomatis, atau prompt pertama |
lastModified | number | Waktu modifikasi terakhir dalam milidetik sejak epoch |
fileSize | number | undefined | Ukuran file sesi dalam byte. Hanya diisi untuk penyimpanan JSONL lokal |
customTitle | string | undefined | Judul sesi yang ditetapkan pengguna (melalui /rename) |
firstPrompt | string | undefined | Prompt pengguna bermakna pertama dalam sesi |
gitBranch | string | undefined | Cabang Git di akhir sesi |
cwd | string | undefined | Direktori kerja untuk sesi |
tag | string | undefined | Tag sesi yang ditetapkan pengguna (lihat tagSession()) |
createdAt | number | undefined | Waktu pembuatan dalam milidetik sejak epoch, dari timestamp entri pertama |
Contoh
Cetak 10 sesi terbaru untuk proyek. Hasil diurutkan berdasarkanlastModified menurun, jadi item pertama adalah yang terbaru. Hilangkan dir untuk mencari di semua proyek.
getSessionMessages()
Membaca pesan pengguna dan asisten dari transkrip sesi masa lalu.
Parameter
| Parameter | Tipe | Default | Deskripsi |
|---|---|---|---|
sessionId | string | required | UUID sesi untuk dibaca (lihat listSessions()) |
options.dir | string | undefined | Direktori proyek untuk menemukan sesi. Ketika dihilangkan, mencari di semua proyek |
options.limit | number | undefined | Jumlah maksimum pesan yang akan dikembalikan |
options.offset | number | undefined | Jumlah pesan yang akan dilewati dari awal |
Tipe pengembalian: SessionMessage
| Properti | Tipe | Deskripsi |
|---|---|---|
type | "user" | "assistant" | Peran pesan |
uuid | string | Pengenal pesan unik |
session_id | string | Sesi yang pesan ini milik |
message | unknown | Payload pesan mentah dari transkrip |
parent_tool_use_id | null | Dicadangkan |
Contoh
getSessionInfo()
Membaca metadata untuk sesi tunggal berdasarkan ID tanpa memindai direktori proyek lengkap.
Parameter
| Parameter | Tipe | Default | Deskripsi |
|---|---|---|---|
sessionId | string | required | UUID sesi yang akan dicari |
options.dir | string | undefined | Jalur direktori proyek. Ketika dihilangkan, mencari di semua direktori proyek |
SDKSessionInfo, atau undefined jika sesi tidak ditemukan.
renameSession()
Mengganti nama sesi dengan menambahkan entri judul kustom. Panggilan berulang aman; judul terbaru menang.
Parameter
| Parameter | Tipe | Default | Deskripsi |
|---|---|---|---|
sessionId | string | required | UUID sesi yang akan diganti nama |
title | string | required | Judul baru. Harus tidak kosong setelah memangkas spasi putih |
options.dir | string | undefined | Jalur direktori proyek. Ketika dihilangkan, mencari di semua direktori proyek |
tagSession()
Menandai sesi. Lewatkan null untuk menghapus tag. Panggilan berulang aman; tag terbaru menang.
Parameter
| Parameter | Tipe | Default | Deskripsi |
|---|---|---|---|
sessionId | string | required | UUID sesi yang akan ditandai |
tag | string | null | required | String tag, atau null untuk menghapus |
options.dir | string | undefined | Jalur direktori proyek. Ketika dihilangkan, mencari di semua direktori proyek |
Tipe
Options
Objek konfigurasi untuk fungsi query().
| Properti | Tipe | Default | Deskripsi |
|---|---|---|---|
abortController | AbortController | new AbortController() | Pengontrol untuk membatalkan operasi |
additionalDirectories | string[] | [] | Direktori tambahan yang dapat diakses Claude |
agent | string | undefined | Nama agen untuk thread utama. Agen harus didefinisikan dalam opsi agents atau dalam pengaturan |
agents | Record<string, [AgentDefinition](#agent-definition)> | undefined | Tentukan subagen secara terprogram |
allowDangerouslySkipPermissions | boolean | false | Aktifkan bypass izin. Diperlukan saat menggunakan permissionMode: 'bypassPermissions' |
allowedTools | string[] | [] | Tool untuk auto-approve tanpa prompt. Ini tidak membatasi Claude hanya pada tool ini; tool yang tidak terdaftar jatuh ke permissionMode dan canUseTool. Gunakan disallowedTools untuk memblokir tool. Lihat Izin |
betas | SdkBeta[] | [] | Aktifkan fitur beta |
canUseTool | CanUseTool | undefined | Fungsi izin kustom untuk penggunaan tool |
continue | boolean | false | Lanjutkan percakapan terbaru |
cwd | string | process.cwd() | Direktori kerja saat ini |
debug | boolean | false | Aktifkan mode debug untuk proses Claude Code |
debugFile | string | undefined | Tulis log debug ke jalur file tertentu. Secara implisit mengaktifkan mode debug |
disallowedTools | string[] | [] | Tool untuk selalu tolak. Aturan tolak diperiksa terlebih dahulu dan mengganti allowedTools dan permissionMode (termasuk bypassPermissions) |
effort | 'low' | 'medium' | 'high' | 'xhigh' | 'max' | 'high' | Mengontrol seberapa banyak usaha yang Claude masukkan ke dalam responsnya. Bekerja dengan pemikiran adaptif untuk memandu kedalaman pemikiran |
enableFileCheckpointing | boolean | false | Aktifkan pelacakan perubahan file untuk rewinding. Lihat File checkpointing |
env | Record<string, string | undefined> | process.env | Variabel lingkungan. Atur CLAUDE_AGENT_SDK_CLIENT_APP untuk mengidentifikasi aplikasi Anda di header User-Agent |
executable | 'bun' | 'deno' | 'node' | Auto-detected | Runtime JavaScript yang akan digunakan |
executableArgs | string[] | [] | Argumen untuk diteruskan ke executable |
extraArgs | Record<string, string | null> | {} | Argumen tambahan |
fallbackModel | string | undefined | Model yang digunakan jika model utama gagal |
forkSession | boolean | false | Saat melanjutkan dengan resume, fork ke ID sesi baru alih-alih melanjutkan sesi asli |
hooks | Partial<Record<HookEvent, HookCallbackMatcher[]>> | {} | Callback hook untuk event |
includePartialMessages | boolean | false | Sertakan event pesan parsial |
maxBudgetUsd | number | undefined | Hentikan query ketika estimasi biaya sisi klien mencapai nilai USD ini. Dibandingkan dengan estimasi yang sama seperti total_cost_usd; lihat Lacak biaya dan penggunaan untuk peringatan akurasi |
maxThinkingTokens | number | undefined | Deprecated: Gunakan opsi thinking sebagai gantinya. Token maksimum untuk proses pemikiran |
maxTurns | number | undefined | Putaran agen maksimum (perjalanan round-trip penggunaan tool) |
mcpServers | Record<string, [McpServerConfig](#mcp-server-config)> | {} | Konfigurasi server MCP |
model | string | Default dari CLI | Model Claude yang akan digunakan |
outputFormat | { type: 'json_schema', schema: JSONSchema } | undefined | Tentukan format output untuk hasil agen. Lihat Output terstruktur untuk detail |
pathToClaudeCodeExecutable | string | Auto-resolved dari biner asli bundel | Jalur ke executable Claude Code. Hanya diperlukan jika dependensi opsional dilewati selama instalasi atau platform Anda tidak dalam set yang didukung |
permissionMode | PermissionMode | 'default' | Mode izin untuk sesi |
permissionPromptToolName | string | undefined | Nama tool MCP untuk prompt izin |
persistSession | boolean | true | Ketika false, menonaktifkan persistensi sesi ke disk. Sesi tidak dapat dilanjutkan nanti |
plugins | SdkPluginConfig[] | [] | Muat plugin kustom dari jalur lokal. Lihat Plugins untuk detail |
promptSuggestions | boolean | false | Aktifkan saran prompt. Mengirimkan pesan prompt_suggestion setelah setiap putaran dengan prompt pengguna berikutnya yang diprediksi |
resume | string | undefined | ID sesi untuk dilanjutkan |
resumeSessionAt | string | undefined | Lanjutkan sesi pada UUID pesan tertentu |
sandbox | SandboxSettings | undefined | Konfigurasi perilaku sandbox secara terprogram. Lihat Pengaturan sandbox untuk detail |
sessionId | string | Auto-generated | Gunakan UUID tertentu untuk sesi alih-alih auto-generate |
settingSources | SettingSource[] | CLI defaults (all sources) | Kontrol pengaturan filesystem mana yang akan dimuat. Lewatkan [] untuk menonaktifkan pengaturan pengguna, proyek, dan lokal. Pengaturan kebijakan terkelola dimuat terlepas dari itu. Lihat Gunakan fitur Claude Code |
spawnClaudeCodeProcess | (options: SpawnOptions) => SpawnedProcess | undefined | Fungsi kustom untuk spawn proses Claude Code. Gunakan untuk menjalankan Claude Code di VM, kontainer, atau lingkungan jarak jauh |
stderr | (data: string) => void | undefined | Callback untuk output stderr |
strictMcpConfig | boolean | false | Terapkan validasi MCP ketat |
systemPrompt | string | { type: 'preset'; preset: 'claude_code'; append?: string; excludeDynamicSections?: boolean } | undefined (minimal prompt) | Konfigurasi prompt sistem. Lewatkan string untuk prompt kustom, atau { type: 'preset', preset: 'claude_code' } untuk menggunakan prompt sistem Claude Code. Saat menggunakan bentuk objek preset, tambahkan append untuk memperluas dengan instruksi tambahan, dan atur excludeDynamicSections: true untuk memindahkan konteks per-sesi ke pesan pengguna pertama untuk reuse prompt-cache yang lebih baik di seluruh mesin |
thinking | ThinkingConfig | { type: 'adaptive' } untuk model yang didukung | Mengontrol perilaku pemikiran/penalaran Claude. Lihat ThinkingConfig untuk opsi |
toolConfig | ToolConfig | undefined | Konfigurasi untuk perilaku tool bawaan. Lihat ToolConfig untuk detail |
tools | string[] | { type: 'preset'; preset: 'claude_code' } | undefined | Konfigurasi tool. Lewatkan array nama tool atau gunakan preset untuk mendapatkan tool default Claude Code |
Objek Query
Antarmuka yang dikembalikan oleh fungsi query().
Metode
| Metode | Deskripsi |
|---|---|
interrupt() | Mengganggu query (hanya tersedia dalam mode input streaming) |
rewindFiles(userMessageId, options?) | Mengembalikan file ke keadaan mereka pada pesan pengguna yang ditentukan. Lewatkan { dryRun: true } untuk pratinjau perubahan. Memerlukan enableFileCheckpointing: true. Lihat File checkpointing |
setPermissionMode() | Mengubah mode izin (hanya tersedia dalam mode input streaming) |
setModel() | Mengubah model (hanya tersedia dalam mode input streaming) |
setMaxThinkingTokens() | Deprecated: Gunakan opsi thinking sebagai gantinya. Mengubah token pemikiran maksimum |
initializationResult() | Mengembalikan hasil inisialisasi lengkap termasuk perintah yang didukung, model, info akun, dan konfigurasi gaya output |
supportedCommands() | Mengembalikan perintah slash yang tersedia |
supportedModels() | Mengembalikan model yang tersedia dengan info tampilan |
supportedAgents() | Mengembalikan subagen yang tersedia sebagai AgentInfo[] |
mcpServerStatus() | Mengembalikan status server MCP yang terhubung |
accountInfo() | Mengembalikan informasi akun |
reconnectMcpServer(serverName) | Sambungkan kembali server MCP berdasarkan nama |
toggleMcpServer(serverName, enabled) | Aktifkan atau nonaktifkan server MCP berdasarkan nama |
setMcpServers(servers) | Ganti secara dinamis set server MCP untuk sesi ini. Mengembalikan info tentang server mana yang ditambahkan, dihapus, dan error apa pun |
streamInput(stream) | Alirkan pesan input ke query untuk percakapan multi-putaran |
stopTask(taskId) | Hentikan tugas latar belakang yang sedang berjalan berdasarkan ID |
close() | Tutup query dan hentikan proses yang mendasarinya. Secara paksa mengakhiri query dan membersihkan semua sumber daya |
WarmQuery
Handle yang dikembalikan oleh startup(). Subprocess sudah dispawn dan diinisialisasi, jadi memanggil query() pada handle ini menulis prompt langsung ke proses yang siap tanpa latensi startup.
Metode
| Metode | Deskripsi |
|---|---|
query(prompt) | Kirim prompt ke subprocess yang sudah dipanaskan dan kembalikan Query. Hanya dapat dipanggil sekali per WarmQuery |
close() | Tutup subprocess tanpa mengirim prompt. Gunakan ini untuk membuang warm query yang tidak lagi diperlukan |
WarmQuery mengimplementasikan AsyncDisposable, jadi dapat digunakan dengan await using untuk pembersihan otomatis.
SDKControlInitializeResponse
Tipe pengembalian dari initializationResult(). Berisi data inisialisasi sesi.
AgentDefinition
Konfigurasi untuk subagen yang didefinisikan secara terprogram.
| Field | Diperlukan | Deskripsi |
|---|---|---|
description | Ya | Deskripsi bahasa alami tentang kapan menggunakan agen ini |
tools | Tidak | Array nama tool yang diizinkan. Jika dihilangkan, mewarisi semua tool dari parent |
disallowedTools | Tidak | Array nama tool untuk secara eksplisit tidak izinkan untuk agen ini |
prompt | Ya | Prompt sistem agen |
model | Tidak | Penggantian model untuk agen ini. Jika dihilangkan atau 'inherit', menggunakan model utama |
mcpServers | Tidak | Spesifikasi server MCP untuk agen ini |
skills | Tidak | Array nama skill untuk preload ke konteks agen |
maxTurns | Tidak | Jumlah maksimum putaran agen (API round-trips) sebelum berhenti |
criticalSystemReminder_EXPERIMENTAL | Tidak | Eksperimental: Pengingat kritis ditambahkan ke prompt sistem |
AgentMcpServerSpec
Menentukan server MCP yang tersedia untuk subagen. Dapat berupa nama server (string yang mereferensikan server dari konfigurasi mcpServers parent) atau konfigurasi server inline yang merekam nama server ke config.
McpServerConfigForProcessTransport adalah McpStdioServerConfig | McpSSEServerConfig | McpHttpServerConfig | McpSdkServerConfig.
SettingSource
Mengontrol sumber konfigurasi berbasis filesystem mana yang dimuat pengaturan SDK.
| Nilai | Deskripsi | Lokasi |
|---|---|---|
'user' | Pengaturan pengguna global | ~/.claude/settings.json |
'project' | Pengaturan proyek bersama (version controlled) | .claude/settings.json |
'local' | Pengaturan proyek lokal (gitignored) | .claude/settings.local.json |
Perilaku default
KetikasettingSources dihilangkan atau undefined, query() memuat pengaturan filesystem yang sama seperti CLI Claude Code: pengguna, proyek, dan lokal. Pengaturan kebijakan terkelola dimuat dalam semua kasus. Lihat Apa yang tidak dikontrol settingSources untuk input yang dibaca terlepas dari opsi ini, dan cara menonaktifkannya.
Mengapa menggunakan settingSources
Nonaktifkan pengaturan filesystem:Preseden pengaturan
Ketika beberapa sumber dimuat, pengaturan digabungkan dengan preseden ini (tertinggi ke terendah):- Pengaturan lokal (
.claude/settings.local.json) - Pengaturan proyek (
.claude/settings.json) - Pengaturan pengguna (
~/.claude/settings.json)
agents dan allowedTools mengganti pengaturan filesystem pengguna, proyek, dan lokal. Pengaturan kebijakan terkelola mengambil preseden atas opsi terprogram.
PermissionMode
CanUseTool
Tipe fungsi izin kustom untuk mengontrol penggunaan tool.
| Opsi | Tipe | Deskripsi |
|---|---|---|
signal | AbortSignal | Signaled jika operasi harus dibatalkan |
suggestions | PermissionUpdate[] | Saran pembaruan izin sehingga pengguna tidak diprompt lagi untuk tool ini |
blockedPath | string | Jalur file yang memicu permintaan izin, jika berlaku |
decisionReason | string | Menjelaskan mengapa permintaan izin ini dipicu |
toolUseID | string | Pengenal unik untuk tool call spesifik ini dalam pesan asisten |
agentID | string | Jika berjalan dalam sub-agen, ID sub-agen |
PermissionResult
Hasil pemeriksaan izin.
ToolConfig
Konfigurasi untuk perilaku tool bawaan.
| Field | Tipe | Deskripsi |
|---|---|---|
askUserQuestion.previewFormat | 'markdown' | 'html' | Opt-in ke field preview pada opsi AskUserQuestion dan atur format kontennya. Ketika tidak diatur, Claude tidak mengirimkan preview |
McpServerConfig
Konfigurasi untuk server MCP.
McpStdioServerConfig
McpSSEServerConfig
McpHttpServerConfig
McpSdkServerConfigWithInstance
McpClaudeAIProxyServerConfig
SdkPluginConfig
Konfigurasi untuk memuat plugin di SDK.
| Field | Tipe | Deskripsi |
|---|---|---|
type | 'local' | Harus 'local' (hanya plugin lokal yang saat ini didukung) |
path | string | Jalur absolut atau relatif ke direktori plugin |
Tipe Pesan
SDKMessage
Tipe union dari semua pesan yang mungkin dikembalikan oleh query.
SDKAssistantMessage
Pesan respons asisten.
message adalah BetaMessage dari Anthropic SDK. Ini mencakup field seperti id, content, model, stop_reason, dan usage.
SDKAssistantMessageError adalah salah satu dari: 'authentication_failed', 'billing_error', 'rate_limit', 'invalid_request', 'server_error', 'max_output_tokens', atau 'unknown'.
SDKUserMessage
Pesan input pengguna.
shouldQuery ke false untuk menambahkan pesan ke transkrip tanpa memicu putaran asisten. Pesan ditahan dan digabungkan ke pesan pengguna berikutnya yang memicu putaran. Gunakan ini untuk menyuntikkan konteks, seperti output perintah yang Anda jalankan out of band, tanpa menghabiskan panggilan model.
SDKUserMessageReplay
Pesan pengguna yang diputar ulang dengan UUID yang diperlukan.
SDKResultMessage
Pesan hasil akhir.
SDKSystemMessage
Pesan inisialisasi sistem.
SDKPartialAssistantMessage
Pesan parsial streaming (hanya ketika includePartialMessages adalah true).
SDKCompactBoundaryMessage
Pesan yang menunjukkan batas pemadatan percakapan.
SDKPluginInstallMessage
Event kemajuan instalasi plugin. Dipancarkan ketika CLAUDE_CODE_SYNC_PLUGIN_INSTALL diatur, sehingga aplikasi Agent SDK Anda dapat melacak instalasi plugin marketplace sebelum putaran pertama. Status started dan completed membatasi keseluruhan instalasi. Status installed dan failed melaporkan marketplace individual dan menyertakan name.
SDKPermissionDenial
Informasi tentang penggunaan tool yang ditolak.
Tipe Hook
Untuk panduan komprehensif tentang menggunakan hook dengan contoh dan pola umum, lihat panduan Hooks.HookEvent
Event hook yang tersedia.
HookCallback
Tipe fungsi callback hook.
HookCallbackMatcher
Konfigurasi hook dengan matcher opsional.
HookInput
Tipe union dari semua tipe input hook.
BaseHookInput
Antarmuka dasar yang diperluas oleh semua tipe input hook.
PreToolUseHookInput
PostToolUseHookInput
PostToolUseFailureHookInput
NotificationHookInput
UserPromptSubmitHookInput
SessionStartHookInput
SessionEndHookInput
StopHookInput
SubagentStartHookInput
SubagentStopHookInput
PreCompactHookInput
PermissionRequestHookInput
SetupHookInput
TeammateIdleHookInput
TaskCompletedHookInput
ConfigChangeHookInput
WorktreeCreateHookInput
WorktreeRemoveHookInput
HookJSONOutput
Nilai pengembalian hook.
AsyncHookJSONOutput
SyncHookJSONOutput
Tipe Input Tool
Dokumentasi skema input untuk semua tool Claude Code bawaan. Tipe ini dieksport dari@anthropic-ai/claude-agent-sdk dan dapat digunakan untuk interaksi tool yang aman tipe.
ToolInputSchemas
Union dari semua tipe input tool, dieksport dari @anthropic-ai/claude-agent-sdk.
Agent
Nama tool:Agent (sebelumnya Task, yang masih diterima sebagai alias)
AskUserQuestion
Nama tool:AskUserQuestion
Bash
Nama tool:Bash
Monitor
Nama tool:Monitor
persistent: true untuk watch panjang sesi seperti log tails. Monitor mengikuti aturan izin yang sama seperti Bash. Lihat referensi tool Monitor untuk perilaku dan ketersediaan provider.
TaskOutput
Nama tool:TaskOutput
Edit
Nama tool:Edit
Read
Nama tool:Read
pages untuk rentang halaman PDF (misalnya, "1-5").
Write
Nama tool:Write
Glob
Nama tool:Glob
Grep
Nama tool:Grep
TaskStop
Nama tool:TaskStop
NotebookEdit
Nama tool:NotebookEdit
WebFetch
Nama tool:WebFetch
WebSearch
Nama tool:WebSearch
TodoWrite
Nama tool:TodoWrite
ExitPlanMode
Nama tool:ExitPlanMode
ListMcpResources
Nama tool:ListMcpResources
ReadMcpResource
Nama tool:ReadMcpResource
Config
Nama tool:Config
EnterWorktree
Nama tool:EnterWorktree
path untuk beralih ke worktree yang ada dari repositori saat ini alih-alih membuat yang baru. name dan path saling eksklusif.
Tipe Output Tool
Dokumentasi skema output untuk semua tool Claude Code bawaan. Tipe ini dieksport dari@anthropic-ai/claude-agent-sdk dan mewakili data respons aktual yang dikembalikan oleh setiap tool.
ToolOutputSchemas
Union dari semua tipe output tool.
Agent
Nama tool:Agent (sebelumnya Task, yang masih diterima sebagai alias)
status: "completed" untuk tugas yang selesai, "async_launched" untuk tugas latar belakang, dan "sub_agent_entered" untuk subagen interaktif.
AskUserQuestion
Nama tool:AskUserQuestion
Bash
Nama tool:Bash
backgroundTaskId.
Monitor
Nama tool:Monitor
TaskStop untuk membatalkan watch lebih awal.
Edit
Nama tool:Edit
Read
Nama tool:Read
type.
Write
Nama tool:Write
Glob
Nama tool:Glob
Grep
Nama tool:Grep
mode: daftar file, konten dengan kecocokan, atau hitungan kecocokan.
TaskStop
Nama tool:TaskStop
NotebookEdit
Nama tool:NotebookEdit
WebFetch
Nama tool:WebFetch
WebSearch
Nama tool:WebSearch
TodoWrite
Nama tool:TodoWrite
ExitPlanMode
Nama tool:ExitPlanMode
ListMcpResources
Nama tool:ListMcpResources
ReadMcpResource
Nama tool:ReadMcpResource
Config
Nama tool:Config
EnterWorktree
Nama tool:EnterWorktree
Tipe Izin
PermissionUpdate
Operasi untuk memperbarui izin.
PermissionBehavior
PermissionUpdateDestination
PermissionRuleValue
Tipe Lainnya
ApiKeySource
SdkBeta
Fitur beta yang tersedia yang dapat diaktifkan melalui opsi betas. Lihat Beta headers untuk informasi lebih lanjut.
SlashCommand
Informasi tentang perintah slash yang tersedia.
ModelInfo
Informasi tentang model yang tersedia.
AgentInfo
Informasi tentang subagen yang tersedia yang dapat dipanggil melalui tool Agent.
| Field | Tipe | Deskripsi |
|---|---|---|
name | string | Pengenal tipe agen (misalnya, "Explore", "general-purpose") |
description | string | Deskripsi tentang kapan menggunakan agen ini |
model | string | undefined | Alias model yang digunakan agen ini. Jika dihilangkan, mewarisi model parent |
McpServerStatus
Status server MCP yang terhubung.
McpServerStatusConfig
Konfigurasi server MCP seperti yang dilaporkan oleh mcpServerStatus(). Ini adalah union dari semua tipe transport server MCP.
McpServerConfig untuk detail tentang setiap tipe transport.
AccountInfo
Informasi akun untuk pengguna yang diautentikasi.
ModelUsage
Statistik penggunaan per-model yang dikembalikan dalam pesan hasil. Nilai costUSD adalah estimasi sisi klien. Lihat Lacak biaya dan penggunaan untuk peringatan penagihan.
ConfigScope
NonNullableUsage
Versi Usage dengan semua field nullable dibuat non-nullable.
Usage
Statistik penggunaan token (dari @anthropic-ai/sdk).
CallToolResult
Tipe hasil tool MCP (dari @modelcontextprotocol/sdk/types.js).
ThinkingConfig
Mengontrol perilaku pemikiran/penalaran Claude. Mengambil preseden atas maxThinkingTokens yang sudah usang.
SpawnedProcess
Antarmuka untuk spawn proses kustom (digunakan dengan opsi spawnClaudeCodeProcess). ChildProcess sudah memenuhi antarmuka ini.
SpawnOptions
Opsi yang diteruskan ke fungsi spawn kustom.
McpSetServersResult
Hasil operasi setMcpServers().
RewindFilesResult
Hasil operasi rewindFiles().
SDKStatusMessage
Pesan pembaruan status (misalnya, pemadatan).
SDKTaskNotificationMessage
Notifikasi ketika tugas latar belakang selesai, gagal, atau dihentikan. Tugas latar belakang mencakup perintah Bash run_in_background, watch Monitor, dan subagen latar belakang.
SDKToolUseSummaryMessage
Ringkasan penggunaan tool dalam percakapan.
SDKHookStartedMessage
Dipancarkan ketika hook mulai mengeksekusi.
SDKHookProgressMessage
Dipancarkan saat hook sedang berjalan, dengan output stdout/stderr.
SDKHookResponseMessage
Dipancarkan ketika hook selesai mengeksekusi.
SDKToolProgressMessage
Dipancarkan secara berkala saat tool sedang mengeksekusi untuk menunjukkan kemajuan.
SDKAuthStatusMessage
Dipancarkan selama alur autentikasi.
SDKTaskStartedMessage
Dipancarkan ketika tugas latar belakang dimulai. Field task_type adalah "local_bash" untuk perintah Bash latar belakang dan watch Monitor, "local_agent" untuk subagen, atau "remote_agent".
SDKTaskProgressMessage
Dipancarkan secara berkala saat tugas latar belakang sedang berjalan.
SDKFilesPersistedEvent
Dipancarkan ketika checkpoint file dipersistenkan ke disk.
SDKRateLimitEvent
Dipancarkan ketika sesi mengalami batas laju.
SDKLocalCommandOutputMessage
Output dari perintah slash lokal (misalnya, /voice atau /cost). Ditampilkan sebagai teks gaya asisten dalam transkrip.
SDKPromptSuggestionMessage
Dipancarkan setelah setiap putaran ketika promptSuggestions diaktifkan. Berisi prompt pengguna berikutnya yang diprediksi.
AbortError
Kelas error kustom untuk operasi abort.
Konfigurasi Sandbox
SandboxSettings
Konfigurasi untuk perilaku sandbox. Gunakan ini untuk mengaktifkan sandboxing perintah dan mengonfigurasi pembatasan jaringan secara terprogram.
| Properti | Tipe | Default | Deskripsi |
|---|---|---|---|
enabled | boolean | false | Aktifkan mode sandbox untuk eksekusi perintah |
autoAllowBashIfSandboxed | boolean | true | Auto-approve perintah bash ketika sandbox diaktifkan |
excludedCommands | string[] | [] | Perintah yang selalu bypass pembatasan sandbox (misalnya, ['docker']). Ini berjalan unsandboxed secara otomatis tanpa keterlibatan model |
allowUnsandboxedCommands | boolean | true | Izinkan model untuk meminta menjalankan perintah di luar sandbox. Ketika true, model dapat mengatur dangerouslyDisableSandbox dalam input tool, yang jatuh kembali ke sistem izin |
network | SandboxNetworkConfig | undefined | Konfigurasi sandbox spesifik jaringan |
filesystem | SandboxFilesystemConfig | undefined | Konfigurasi sandbox spesifik filesystem untuk pembatasan baca/tulis |
ignoreViolations | Record<string, string[]> | undefined | Peta kategori pelanggaran ke pola untuk diabaikan (misalnya, { file: ['/tmp/*'], network: ['localhost'] }) |
enableWeakerNestedSandbox | boolean | false | Aktifkan sandbox bersarang yang lebih lemah untuk kompatibilitas |
ripgrep | { command: string; args?: string[] } | undefined | Konfigurasi biner ripgrep kustom untuk lingkungan sandbox |
Contoh penggunaan
SandboxNetworkConfig
Konfigurasi spesifik jaringan untuk mode sandbox.
| Properti | Tipe | Default | Deskripsi |
|---|---|---|---|
allowedDomains | string[] | [] | Nama domain yang dapat diakses proses sandboxed |
deniedDomains | string[] | [] | Nama domain yang tidak dapat diakses proses sandboxed. Mengambil prioritas atas allowedDomains |
allowManagedDomainsOnly | boolean | false | Batasi akses jaringan hanya ke domain dalam allowedDomains |
allowLocalBinding | boolean | false | Izinkan proses untuk mengikat ke port lokal (misalnya, untuk dev server) |
allowUnixSockets | string[] | [] | Jalur Unix socket yang dapat diakses proses (misalnya, Docker socket) |
allowAllUnixSockets | boolean | false | Izinkan akses ke semua Unix socket |
httpProxyPort | number | undefined | Port proxy HTTP untuk permintaan jaringan |
socksProxyPort | number | undefined | Port proxy SOCKS untuk permintaan jaringan |
SandboxFilesystemConfig
Konfigurasi spesifik filesystem untuk mode sandbox.
| Properti | Tipe | Default | Deskripsi |
|---|---|---|---|
allowWrite | string[] | [] | Pola jalur file untuk mengizinkan akses tulis ke |
denyWrite | string[] | [] | Pola jalur file untuk menolak akses tulis ke |
denyRead | string[] | [] | Pola jalur file untuk menolak akses baca ke |
Fallback Izin untuk Perintah Unsandboxed
KetikaallowUnsandboxedCommands diaktifkan, model dapat meminta untuk menjalankan perintah di luar sandbox dengan mengatur dangerouslyDisableSandbox: true dalam input tool. Permintaan ini jatuh kembali ke sistem izin yang ada, berarti handler canUseTool Anda dipanggil, memungkinkan Anda untuk mengimplementasikan logika otorisasi kustom.
excludedCommands vs allowUnsandboxedCommands:excludedCommands: Daftar statis perintah yang selalu bypass sandbox secara otomatis (misalnya,['docker']). Model tidak memiliki kontrol atas ini.allowUnsandboxedCommands: Biarkan model memutuskan pada runtime apakah akan meminta eksekusi unsandboxed dengan mengaturdangerouslyDisableSandbox: truedalam input tool.
- Audit permintaan model: Catat ketika model meminta eksekusi unsandboxed
- Implementasikan allowlist: Hanya izinkan perintah tertentu untuk berjalan unsandboxed
- Tambahkan alur persetujuan: Memerlukan otorisasi eksplisit untuk operasi istimewa
Lihat juga
- Gambaran umum SDK - Konsep SDK umum
- Referensi SDK Python - Dokumentasi SDK Python
- Referensi CLI - Antarmuka baris perintah
- Alur kerja umum - Panduan langkah demi langkah