Loading...
    • Panduan Pengembang
    • Referensi API
    • MCP
    • Sumber daya
    • Catatan Rilis
    Search...
    ⌘K
    Langkah pertama
    Pengenalan ClaudeMulai cepat
    Model & harga
    Ikhtisar modelMemilih modelApa yang baru di Claude 4.5Migrasi ke Claude 4.5Penghentian modelHarga
    Bangun dengan Claude
    Ikhtisar fiturMenggunakan Messages APIJendela konteksPraktik terbaik prompting
    Kemampuan
    Prompt cachingPengeditan konteksExtended thinkingUsahaStreaming MessagesPemrosesan batchKutipanDukungan multibahasaPenghitungan tokenEmbeddingsVisiDukungan PDFFiles APIHasil pencarianOutput terstruktur
    Alat
    IkhtisarCara mengimplementasikan penggunaan alatPenggunaan alat yang efisien tokenStreaming alat berbutir halusAlat BashAlat eksekusi kodePemanggilan alat terprogramAlat penggunaan komputerAlat editor teksAlat pengambilan webAlat pencarian webAlat memoriAlat pencarian alat
    Keterampilan Agen
    IkhtisarMulai cepatPraktik terbaikMenggunakan Keterampilan dengan API
    Agent SDK
    IkhtisarTypeScript SDKPython SDKPanduan Migrasi
    MCP di API
    Konektor MCPServer MCP jarak jauh
    Claude di platform pihak ketiga
    Amazon BedrockMicrosoft FoundryVertex AI
    Rekayasa prompt
    IkhtisarGenerator promptGunakan template promptPenyempurna promptJadilah jelas dan langsungGunakan contoh (prompting multishot)Biarkan Claude berpikir (CoT)Gunakan tag XMLBerikan Claude peran (prompt sistem)Isi sebelumnya respons ClaudeRantai prompt kompleksTips konteks panjangTips extended thinking
    Uji & evaluasi
    Tentukan kriteria kesuksesanKembangkan kasus ujiMenggunakan Alat EvaluasiMengurangi latensi
    Perkuat penjaga
    Kurangi halusinasiTingkatkan konsistensi outputMitigasi jailbreakStreaming penolakanKurangi kebocoran promptJaga Claude tetap dalam karakter
    Administrasi dan pemantauan
    Ikhtisar Admin APIAPI Penggunaan dan BiayaClaude Code Analytics API
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    Agent SDK

    Referensi Agent SDK - TypeScript

    Referensi API lengkap untuk Agent SDK TypeScript, termasuk semua fungsi, tipe, dan antarmuka.
    • Instalasi
    • Fungsi
    • query()
    • tool()
    • createSdkMcpServer()
    • Tipe
    • Options
    • Query
    • AgentDefinition
    • SettingSource
    • PermissionMode
    • CanUseTool
    • PermissionResult
    • McpServerConfig
    • SdkPluginConfig
    • Tipe Pesan
    • SDKMessage
    • SDKAssistantMessage
    • SDKUserMessage
    • SDKUserMessageReplay
    • SDKResultMessage
    • SDKSystemMessage
    • SDKPartialAssistantMessage
    • SDKCompactBoundaryMessage
    • SDKPermissionDenial
    • Tipe Hook
    • HookEvent
    • HookCallback
    • HookCallbackMatcher
    • HookInput
    • BaseHookInput
    • HookJSONOutput
    • Tipe Input Tool
    • ToolInput
    • Task
    • Bash
    • BashOutput
    • Edit
    • Read
    • Write
    • Glob
    • Grep
    • KillBash
    • NotebookEdit
    • WebFetch
    • WebSearch
    • TodoWrite
    • ExitPlanMode
    • ListMcpResources
    • ReadMcpResource
    • Tipe Output Tool
    • ToolOutput
    • Task
    • Bash
    • BashOutput
    • Edit
    • Read
    • Write
    • Glob
    • Grep
    • KillBash
    • NotebookEdit
    • WebFetch
    • WebSearch
    • TodoWrite
    • ExitPlanMode
    • ListMcpResources
    • ReadMcpResource
    • Jenis Izin
    • PermissionUpdate
    • PermissionBehavior
    • PermissionUpdateDestination
    • PermissionRuleValue
    • Jenis Lainnya
    • ApiKeySource
    • ConfigScope
    • NonNullableUsage
    • Usage
    • CallToolResult
    • AbortError
    • Lihat juga

    Instalasi

    npm install @anthropic-ai/claude-agent-sdk

    Fungsi

    query()

    Fungsi utama untuk berinteraksi dengan Claude Code. Membuat generator asinkron yang melakukan streaming pesan saat tiba.

    function query({
      prompt,
      options
    }: {
      prompt: string | AsyncIterable<SDKUserMessage>;
      options?: Options;
    }): Query

    Parameter

    ParameterTipeDeskripsi
    promptstring | AsyncIterable<SDKUserMessage>Prompt input sebagai string atau async iterable untuk mode streaming
    optionsOptionsObjek konfigurasi opsional (lihat tipe Options di bawah)

    Pengembalian

    Mengembalikan objek Query yang memperluas AsyncGenerator<SDKMessage, void> dengan metode tambahan.

    tool()

    Membuat definisi tool MCP yang aman tipe untuk digunakan dengan server MCP SDK.

    function tool<Schema extends ZodRawShape>(
      name: string,
      description: string,
      inputSchema: Schema,
      handler: (args: z.infer<ZodObject<Schema>>, extra: unknown) => Promise<CallToolResult>
    ): SdkMcpToolDefinition<Schema>

    Parameter

    ParameterTipeDeskripsi
    namestringNama tool
    descriptionstringDeskripsi tentang apa yang dilakukan tool
    inputSchemaSchema extends ZodRawShapeSkema Zod yang mendefinisikan parameter input tool
    handler(args, extra) => Promise<CallToolResult>Fungsi asinkron yang mengeksekusi logika tool

    createSdkMcpServer()

    Membuat instance server MCP yang berjalan dalam proses yang sama dengan aplikasi Anda.

    function createSdkMcpServer(options: {
      name: string;
      version?: string;
      tools?: Array<SdkMcpToolDefinition<any>>;
    }): McpSdkServerConfigWithInstance

    Parameter

    ParameterTipeDeskripsi
    options.namestringNama server MCP
    options.versionstringString versi opsional
    options.toolsArray<SdkMcpToolDefinition>Array definisi tool yang dibuat dengan tool()

    Tipe

    Options

    Objek konfigurasi untuk fungsi query().

    PropertiTipeDefaultDeskripsi
    abortControllerAbortControllernew AbortController()Pengontrol untuk membatalkan operasi
    additionalDirectoriesstring[][]Direktori tambahan yang dapat diakses Claude
    agentsRecord<string, [AgentDefinition](#agentdefinition)>undefinedTentukan subagent secara terprogram

    Query

    Antarmuka yang dikembalikan oleh fungsi query().

    interface Query extends AsyncGenerator<SDKMessage, void> {
      interrupt(): Promise<void>;
      setPermissionMode(mode: PermissionMode): Promise<void>;
    }

    Metode

    MetodeDeskripsi
    interrupt()Mengganggu query (hanya tersedia dalam mode input streaming)
    setPermissionMode()Mengubah mode izin (hanya tersedia dalam mode input streaming)

    AgentDefinition

    Konfigurasi untuk subagent yang didefinisikan secara terprogram.

    type AgentDefinition = {
      description: string;
      tools?: string[];
      prompt: string;
      model?: 'sonnet' | 'opus' | 'haiku' | 'inherit';
    }
    FieldDiperlukanDeskripsi
    descriptionYaDeskripsi bahasa alami tentang kapan menggunakan agent ini
    toolsTidakArray nama tool yang diizinkan. Jika dihilangkan, mewarisi semua tool
    promptYaSystem prompt agent
    modelTidakOverride model untuk agent ini. Jika dihilangkan, menggunakan model utama

    SettingSource

    Mengontrol sumber konfigurasi berbasis filesystem mana yang dimuat pengaturan SDK.

    type SettingSource = 'user' | 'project' | 'local';
    NilaiDeskripsiLokasi
    '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

    Saat settingSources dihilangkan atau undefined, SDK tidak memuat pengaturan filesystem apa pun. Ini memberikan isolasi untuk aplikasi SDK.

    Mengapa menggunakan settingSources?

    Muat semua pengaturan filesystem (perilaku legacy):

    // Muat semua pengaturan seperti SDK v0.0.x
    const result = query({
      prompt: "Analyze this code",
      options: {
        settingSources: ['user', 'project', 'local']  // Muat semua pengaturan
      }
    });

    Muat hanya sumber pengaturan tertentu:

    // Muat hanya pengaturan proyek, abaikan user dan local
    const result = query({
      prompt: "Run CI checks",
      options: {
        settingSources: ['project']  // Hanya .claude/settings.json
      }
    });

    Lingkungan testing dan CI:

    // Pastikan perilaku konsisten di CI dengan mengecualikan pengaturan lokal
    const result = query({
      prompt: "Run tests",
      options: {
        settingSources: ['project'],  // Hanya pengaturan bersama tim
        permissionMode: 'bypassPermissions'
      }
    });

    Aplikasi SDK-only:

    // Tentukan semuanya secara terprogram (perilaku default)
    // Tidak ada dependensi filesystem - settingSources default ke []
    const result = query({
      prompt: "Review this PR",
      options: {
        // settingSources: [] adalah default, tidak perlu ditentukan
        agents: { /* ... */ },
        mcpServers: { /* ... */ },
        allowedTools: ['Read', 'Grep', 'Glob']
      }
    });

    Memuat instruksi proyek CLAUDE.md:

    // Muat pengaturan proyek untuk menyertakan file CLAUDE.md
    const result = query({
      prompt: "Add a new feature following project conventions",
      options: {
        systemPrompt: {
          type: 'preset',
          preset: 'claude_code'  // Diperlukan untuk menggunakan CLAUDE.md
        },
        settingSources: ['project'],  // Memuat CLAUDE.md dari direktori proyek
        allowedTools: ['Read', 'Write', 'Edit']
      }
    });

    Preseden pengaturan

    Saat beberapa sumber dimuat, pengaturan digabungkan dengan preseden ini (tertinggi ke terendah):

    1. Pengaturan lokal (.claude/settings.local.json)
    2. Pengaturan proyek (.claude/settings.json)
    3. Pengaturan pengguna (~/.claude/settings.json)

    Opsi terprogram (seperti agents, allowedTools) selalu menimpa pengaturan filesystem.

    PermissionMode

    type PermissionMode =
      | 'default'           // Perilaku izin standar
      | 'acceptEdits'       // Auto-accept file edits
      | 'bypassPermissions' // Bypass semua pemeriksaan izin
      | 'plan'              // Mode perencanaan - tidak ada eksekusi

    CanUseTool

    Tipe fungsi izin khusus untuk mengontrol penggunaan tool.

    type CanUseTool = (
      toolName: string,
      input: ToolInput,
      options: {
        signal: AbortSignal;
        suggestions?: PermissionUpdate[];
      }
    ) => Promise<PermissionResult>;

    PermissionResult

    Hasil pemeriksaan izin.

    type PermissionResult = 
      | {
          behavior: 'allow';
          updatedInput: ToolInput;
          updatedPermissions?: PermissionUpdate[];
        }
      | {
          behavior: 'deny';
          message: string;
          interrupt?: boolean;
        }

    McpServerConfig

    Konfigurasi untuk server MCP.

    type McpServerConfig = 
      | McpStdioServerConfig
      | McpSSEServerConfig
      | McpHttpServerConfig
      | McpSdkServerConfigWithInstance;

    McpStdioServerConfig

    type McpStdioServerConfig = {
      type?: 'stdio';
      command: string;
      args?: string[];
      env?: Record<string, string>;
    }

    McpSSEServerConfig

    type McpSSEServerConfig = {
      type: 'sse';
      url: string;
      headers?: Record<string, string>;
    }

    McpHttpServerConfig

    type McpHttpServerConfig = {
      type: 'http';
      url: string;
      headers?: Record<string, string>;
    }

    McpSdkServerConfigWithInstance

    type McpSdkServerConfigWithInstance = {
      type: 'sdk';
      name: string;
      instance: McpServer;
    }

    SdkPluginConfig

    Konfigurasi untuk memuat plugin di SDK.

    type SdkPluginConfig = {
      type: 'local';
      path: string;
    }
    FieldTipeDeskripsi
    type'local'Harus 'local' (hanya plugin lokal yang didukung saat ini)
    pathstringPath absolut atau relatif ke direktori plugin

    Contoh:

    plugins: [
      { type: 'local', path: './my-plugin' },
      { type: 'local', path: '/absolute/path/to/plugin' }
    ]

    Untuk informasi lengkap tentang membuat dan menggunakan plugin, lihat Plugins.

    Tipe Pesan

    SDKMessage

    Tipe union dari semua pesan yang mungkin dikembalikan oleh query.

    type SDKMessage = 
      | SDKAssistantMessage
      | SDKUserMessage
      | SDKUserMessageReplay
      | SDKResultMessage
      | SDKSystemMessage
      | SDKPartialAssistantMessage
      | SDKCompactBoundaryMessage;

    SDKAssistantMessage

    Pesan respons assistant.

    type SDKAssistantMessage = {
      type: 'assistant';
      uuid: UUID;
      session_id: string;
      message: APIAssistantMessage; // Dari Anthropic SDK
      parent_tool_use_id: string | null;
    }

    SDKUserMessage

    Pesan input pengguna.

    type SDKUserMessage = {
      type: 'user';
      uuid?: UUID;
      session_id: string;
      message: APIUserMessage; // Dari Anthropic SDK
      parent_tool_use_id: string | null;
    }

    SDKUserMessageReplay

    Pesan pengguna yang diputar ulang dengan UUID yang diperlukan.

    type SDKUserMessageReplay = {
      type: 'user';
      uuid: UUID;
      session_id: string;
      message: APIUserMessage;
      parent_tool_use_id: string | null;
    }

    SDKResultMessage

    Pesan hasil akhir.

    type SDKResultMessage = 
      | {
          type: 'result';
          subtype: 'success';
          uuid: UUID;
          session_id: string;
          duration_ms: number;
          duration_api_ms: number;
          is_error: boolean;
          num_turns: number;
          result: string;
          total_cost_usd: number;
          usage: NonNullableUsage;
          permission_denials: SDKPermissionDenial[];
        }
      | {
          type: 'result';
          subtype: 'error_max_turns' | 'error_during_execution';
          uuid: UUID;
          session_id: string;
          duration_ms: number;
          duration_api_ms: number;
          is_error: boolean;
          num_turns: number;
          total_cost_usd: number;
          usage: NonNullableUsage;
          permission_denials: SDKPermissionDenial[];
        }

    SDKSystemMessage

    Pesan inisialisasi sistem.

    type SDKSystemMessage = {
      type: 'system';
      subtype: 'init';
      uuid: UUID;
      session_id: string;
      apiKeySource: ApiKeySource;
      cwd: string;
      tools: string[];
      mcp_servers: {
        name: string;
        status: string;
      }[];
      model: string;
      permissionMode: PermissionMode;
      slash_commands: string[];
      output_style: string;
    }

    SDKPartialAssistantMessage

    Pesan parsial streaming (hanya saat includePartialMessages adalah true).

    type SDKPartialAssistantMessage = {
      type: 'stream_event';
      event: RawMessageStreamEvent; // Dari Anthropic SDK
      parent_tool_use_id: string | null;
      uuid: UUID;
      session_id: string;
    }

    SDKCompactBoundaryMessage

    Pesan yang menunjukkan batas pemadatan percakapan.

    type SDKCompactBoundaryMessage = {
      type: 'system';
      subtype: 'compact_boundary';
      uuid: UUID;
      session_id: string;
      compact_metadata: {
        trigger: 'manual' | 'auto';
        pre_tokens: number;
      };
    }

    SDKPermissionDenial

    Informasi tentang penggunaan tool yang ditolak.

    type SDKPermissionDenial = {
      tool_name: string;
      tool_use_id: string;
      tool_input: ToolInput;
    }

    Tipe Hook

    HookEvent

    Event hook yang tersedia.

    type HookEvent = 
      | 'PreToolUse'
      | 'PostToolUse'
      | 'Notification'
      | 'UserPromptSubmit'
      | 'SessionStart'
      | 'SessionEnd'
      | 'Stop'
      | 'SubagentStop'
      | 'PreCompact';

    HookCallback

    Tipe fungsi callback hook.

    type HookCallback = (
      input: HookInput, // Union dari semua tipe input hook
      toolUseID: string | undefined,
      options: { signal: AbortSignal }
    ) => Promise<HookJSONOutput>;

    HookCallbackMatcher

    Konfigurasi hook dengan matcher opsional.

    interface HookCallbackMatcher {
      matcher?: string;
      hooks: HookCallback[];
    }

    HookInput

    Tipe union dari semua tipe input hook.

    type HookInput = 
      | PreToolUseHookInput
      | PostToolUseHookInput
      | NotificationHookInput
      | UserPromptSubmitHookInput
      | SessionStartHookInput
      | SessionEndHookInput
      | StopHookInput
      | SubagentStopHookInput
      | PreCompactHookInput;

    BaseHookInput

    Antarmuka dasar yang diperluas oleh semua tipe input hook.

    type BaseHookInput = {
      session_id: string;
      transcript_path: string;
      cwd: string;
      permission_mode?: string;
    }

    PreToolUseHookInput

    type PreToolUseHookInput = BaseHookInput & {
      hook_event_name: 'PreToolUse';
      tool_name: string;
      tool_input: ToolInput;
    }

    PostToolUseHookInput

    type PostToolUseHookInput = BaseHookInput & {
      hook_event_name: 'PostToolUse';
      tool_name: string;
      tool_input: ToolInput;
      tool_response: ToolOutput;
    }

    NotificationHookInput

    type NotificationHookInput = BaseHookInput & {
      hook_event_name: 'Notification';
      message: string;
      title?: string;
    }

    UserPromptSubmitHookInput

    type UserPromptSubmitHookInput = BaseHookInput & {
      hook_event_name: 'UserPromptSubmit';
      prompt: string;
    }

    SessionStartHookInput

    type SessionStartHookInput = BaseHookInput & {
      hook_event_name: 'SessionStart';
      source: 'startup' | 'resume' | 'clear' | 'compact';
    }

    SessionEndHookInput

    type SessionEndHookInput = BaseHookInput & {
      hook_event_name: 'SessionEnd';
      reason: 'clear' | 'logout' | 'prompt_input_exit' | 'other';
    }

    StopHookInput

    type StopHookInput = BaseHookInput & {
      hook_event_name: 'Stop';
      stop_hook_active: boolean;
    }

    SubagentStopHookInput

    type SubagentStopHookInput = BaseHookInput & {
      hook_event_name: 'SubagentStop';
      stop_hook_active: boolean;
    }

    PreCompactHookInput

    type PreCompactHookInput = BaseHookInput & {
      hook_event_name: 'PreCompact';
      trigger: 'manual' | 'auto';
      custom_instructions: string | null;
    }

    HookJSONOutput

    Nilai pengembalian hook.

    type HookJSONOutput = AsyncHookJSONOutput | SyncHookJSONOutput;

    AsyncHookJSONOutput

    type AsyncHookJSONOutput = {
      async: true;
      asyncTimeout?: number;
    }

    SyncHookJSONOutput

    type SyncHookJSONOutput = {
      continue?: boolean;
      suppressOutput?: boolean;
      stopReason?: string;
      decision?: 'approve' | 'block';
      systemMessage?: string;
      reason?: string;
      hookSpecificOutput?:
        | {
            hookEventName: 'PreToolUse';
            permissionDecision?: 'allow' | 'deny' | 'ask';
            permissionDecisionReason?: string;
          }
        | {
            hookEventName: 'UserPromptSubmit';
            additionalContext?: string;
          }
        | {
            hookEventName: 'SessionStart';
            additionalContext?: string;
          }
        | {
            hookEventName: 'PostToolUse';
            additionalContext?: string;
          };
    }

    Tipe Input Tool

    Dokumentasi skema input untuk semua tool Claude Code bawaan. Tipe-tipe ini diekspor dari @anthropic-ai/claude-agent-sdk dan dapat digunakan untuk interaksi tool yang aman tipe.

    ToolInput

    Catatan: Ini adalah tipe dokumentasi saja untuk kejelasan. Ini mewakili union dari semua tipe input tool.

    type ToolInput = 
      | AgentInput
      | BashInput
      | BashOutputInput
      | FileEditInput
      | FileReadInput
      | FileWriteInput
      | GlobInput
      | GrepInput
      | KillShellInput
      | NotebookEditInput
      | WebFetchInput
      | WebSearchInput
      | TodoWriteInput
      | ExitPlanModeInput
      | ListMcpResourcesInput
      | ReadMcpResourceInput;

    Task

    Nama tool: Task

    interface AgentInput {
      /**
       * Deskripsi singkat (3-5 kata) dari tugas
       */
      description: string;
      /**
       * Tugas untuk dijalankan agent
       */
      prompt: string;
      /**
       * Tipe agent khusus yang digunakan untuk tugas ini
       */
      subagent_type: string;
    }

    Meluncurkan agent baru untuk menangani tugas kompleks multi-langkah secara otonom.

    Bash

    Nama tool: Bash

    interface BashInput {
      /**
       * Perintah yang akan dieksekusi
       */
      command: string;
      /**
       * Timeout opsional dalam milidetik (maks 600000)
       */
      timeout?: number;
      /**
       * Deskripsi jelas dan ringkas tentang apa yang dilakukan perintah ini dalam 5-10 kata
       */
      description?: string;
      /**
       * Atur ke true untuk menjalankan perintah ini di background
       */
      run_in_background?: boolean;
    }

    Mengeksekusi perintah bash dalam sesi shell persisten dengan timeout opsional dan eksekusi background.

    BashOutput

    Nama tool: BashOutput

    interface BashOutputInput {
      /**
       * ID shell background untuk mengambil output dari
       */
      bash_id: string;
      /**
       * Regex opsional untuk memfilter baris output
       */
      filter?: string;
    }

    Mengambil output dari shell bash background yang sedang berjalan atau selesai.

    Edit

    Nama tool: Edit

    interface FileEditInput {
      /**
       * Path absolut ke file yang akan dimodifikasi
       */
      file_path: string;
      /**
       * Teks yang akan diganti
       */
      old_string: string;
      /**
       * Teks untuk menggantinya (harus berbeda dari old_string)
       */
      new_string: string;
      /**
       * Ganti semua kemunculan old_string (default false)
       */
      replace_all?: boolean;
    }

    Melakukan penggantian string yang tepat dalam file.

    Read

    Nama tool: Read

    interface FileReadInput {
      /**
       * Path absolut ke file yang akan dibaca
       */
      file_path: string;
      /**
       * Nomor baris untuk mulai membaca dari
       */
      offset?: number;
      /**
       * Jumlah baris yang akan dibaca
       */
      limit?: number;
    }

    Membaca file dari filesystem lokal, termasuk teks, gambar, PDF, dan notebook Jupyter.

    Write

    Nama tool: Write

    interface FileWriteInput {
      /**
       * Path absolut ke file yang akan ditulis
       */
      file_path: string;
      /**
       * Konten yang akan ditulis ke file
       */
      content: string;
    }

    Menulis file ke filesystem lokal, menimpa jika ada.

    Glob

    Nama tool: Glob

    interface GlobInput {
      /**
       * Pola glob untuk mencocokkan file
       */
      pattern: string;
      /**
       * Direktori untuk dicari (default ke cwd)
       */
      path?: string;
    }

    Pencocokan pola file cepat yang bekerja dengan ukuran codebase apa pun.

    Grep

    Nama tool: Grep

    interface GrepInput {
      /**
       * Pola ekspresi reguler untuk dicari
       */
      pattern: string;
      /**
       * File atau direktori untuk dicari (default ke cwd)
       */
      path?: string;
      /**
       * Pola glob untuk memfilter file (misalnya "*.js")
       */
      glob?: string;
      /**
       * Tipe file untuk dicari (misalnya "js", "py", "rust")
       */
      type?: string;
      /**
       * Mode output: "content", "files_with_matches", atau "count"
       */
      output_mode?: 'content' | 'files_with_matches' | 'count';
      /**
       * Pencarian case insensitive
       */
      '-i'?: boolean;
      /**
       * Tampilkan nomor baris (untuk mode content)
       */
      '-n'?: boolean;
      /**
       * Baris untuk ditampilkan sebelum setiap kecocokan
       */
      '-B'?: number;
      /**
       * Baris untuk ditampilkan setelah setiap kecocokan
       */
      '-A'?: number;
      /**
       * Baris untuk ditampilkan sebelum dan sesudah setiap kecocokan
       */
      '-C'?: number;
      /**
       * Batasi output ke N baris/entri pertama
       */
      head_limit?: number;
      /**
       * Aktifkan mode multiline
       */
      multiline?: boolean;
    }

    Tool pencarian yang kuat dibangun di atas ripgrep dengan dukungan regex.

    KillBash

    Nama tool: KillBash

    interface KillShellInput {
      /**
       * ID shell background yang akan dibunuh
       */
      shell_id: string;
    }

    Membunuh shell bash background yang sedang berjalan berdasarkan ID-nya.

    NotebookEdit

    Nama tool: NotebookEdit

    interface NotebookEditInput {
      /**
       * Path absolut ke file notebook Jupyter
       */
      notebook_path: string;
      /**
       * ID sel yang akan diedit
       */
      cell_id?: string;
      /**
       * Source baru untuk sel
       */
      new_source: string;
      /**
       * Tipe sel (code atau markdown)
       */
      cell_type?: 'code' | 'markdown';
      /**
       * Tipe edit (replace, insert, delete)
       */
      edit_mode?: 'replace' | 'insert' | 'delete';
    }

    Mengedit sel dalam file notebook Jupyter.

    WebFetch

    Nama tool: WebFetch

    interface WebFetchInput {
      /**
       * URL untuk mengambil konten dari
       */
      url: string;
      /**
       * Prompt untuk dijalankan pada konten yang diambil
       */
      prompt: string;
    }

    Mengambil konten dari URL dan memprosesnya dengan model AI.

    WebSearch

    Nama tool: WebSearch

    interface WebSearchInput {
      /**
       * Query pencarian yang digunakan
       */
      query: string;
      /**
       * Hanya sertakan hasil dari domain ini
       */
      allowed_domains?: string[];
      /**
       * Jangan pernah sertakan hasil dari domain ini
       */
      blocked_domains?: string[];
    }

    Mencari web dan mengembalikan hasil yang diformat.

    TodoWrite

    Nama tool: TodoWrite

    interface TodoWriteInput {
      /**
       * Daftar todo yang diperbarui
       */
      todos: Array<{
        /**
         * Deskripsi tugas
         */
        content: string;
        /**
         * Status tugas
         */
        status: 'pending' | 'in_progress' | 'completed';
        /**
         * Bentuk aktif dari deskripsi tugas
         */
        activeForm: string;
      }>;
    }

    Membuat dan mengelola daftar tugas terstruktur untuk melacak kemajuan.

    ExitPlanMode

    Nama tool: ExitPlanMode

    interface ExitPlanModeInput {
      /**
       * Rencana yang akan dijalankan oleh pengguna untuk persetujuan
       */
      plan: string;
    }

    Keluar dari mode perencanaan dan meminta pengguna untuk menyetujui rencana.

    ListMcpResources

    Nama tool: ListMcpResources

    interface ListMcpResourcesInput {
      /**
       * Nama server opsional untuk memfilter resource
       */
      server?: string;
    }

    Mencantumkan resource MCP yang tersedia dari server yang terhubung.

    ReadMcpResource

    Nama tool: ReadMcpResource

    interface ReadMcpResourceInput {
      /**
       * Nama server MCP
       */
      server: string;
      /**
       * URI resource yang akan dibaca
       */
      uri: string;
    }

    Membaca resource MCP tertentu dari server.

    Tipe Output Tool

    Dokumentasi skema output untuk semua tool Claude Code bawaan. Tipe-tipe ini mewakili data respons aktual yang dikembalikan oleh setiap tool.

    ToolOutput

    Catatan: Ini adalah tipe dokumentasi saja untuk kejelasan. Ini mewakili union dari semua tipe output tool.

    type ToolOutput = 
      | TaskOutput
      | BashOutput
      | BashOutputToolOutput
      | EditOutput
      | ReadOutput
      | WriteOutput
      | GlobOutput
      | GrepOutput
      | KillBashOutput
      | NotebookEditOutput
      | WebFetchOutput
      | WebSearchOutput
      | TodoWriteOutput
      | ExitPlanModeOutput
      | ListMcpResourcesOutput
      | ReadMcpResourceOutput;

    Task

    Nama tool: Task

    interface TaskOutput {
      /**
       * Pesan hasil akhir dari subagent
       */
      result: string;
      /**
       * Statistik penggunaan token
       */
      usage?: {
        input_tokens: number;
        output_tokens: number;
        cache_creation_input_tokens?: number;
        cache_read_input_tokens?: number;
      };
      /**
       * Total biaya dalam USD
       */
      total_cost_usd?: number;
      /**
       * Durasi eksekusi dalam milidetik
       */
      duration_ms?: number;
    }

    Mengembalikan hasil akhir dari subagent setelah menyelesaikan tugas yang didelegasikan.

    Bash

    Nama tool: Bash

    interface BashOutput {
      /**
       * Output stdout dan stderr gabungan
       */
      output: string;
      /**
       * Exit code dari perintah
       */
      exitCode: number;
      /**
       * Apakah perintah dibunuh karena timeout
       */
      killed?: boolean;
      /**
       * Shell ID untuk proses background
       */
      shellId?: string;
    }

    Mengembalikan output perintah dengan status exit. Perintah background kembali segera dengan shellId.

    BashOutput

    Nama tool: BashOutput

    interface BashOutputToolOutput {
      /**
       * Output baru sejak pemeriksaan terakhir
       */
      output: string;
      /**
       * Status shell saat ini
       */
      status: 'running' | 'completed' | 'failed';
      /**
       * Exit code (saat selesai)
       */
      exitCode?: number;
    }

    Mengembalikan output inkremental dari shell background.

    Edit

    Nama tool: Edit

    interface EditOutput {
      /**
       * Pesan konfirmasi
       */
      message: string;
      /**
       * Jumlah penggantian yang dilakukan
       */
      replacements: number;
      /**
       * Path file yang diedit
       */
      file_path: string;
    }

    Mengembalikan konfirmasi edit yang berhasil dengan jumlah penggantian.

    Read

    Nama tool: Read

    type ReadOutput = 
      | TextFileOutput
      | ImageFileOutput
      | PDFFileOutput
      | NotebookFileOutput;
    
    interface TextFileOutput {
      /**
       * Konten file dengan nomor baris
       */
      content: string;
      /**
       * Total jumlah baris dalam file
       */
      total_lines: number;
      /**
       * Baris yang benar-benar dikembalikan
       */
      lines_returned: number;
    }
    
    interface ImageFileOutput {
      /**
       * Data gambar yang dikodekan Base64
       */
      image: string;
      /**
       * Tipe MIME gambar
       */
      mime_type: string;
      /**
       * Ukuran file dalam byte
       */
      file_size: number;
    }
    
    interface PDFFileOutput {
      /**
       * Array konten halaman
       */
      pages: Array<{
        page_number: number;
        text?: string;
        images?: Array<{
          image: string;
          mime_type: string;
        }>;
      }>;
      /**
       * Total jumlah halaman
       */
      total_pages: number;
    }
    
    interface NotebookFileOutput {
      /**
       * Sel notebook Jupyter
       */
      cells: Array<{
        cell_type: 'code' | 'markdown';
        source: string;
        outputs?: any[];
        execution_count?: number;
      }>;
      /**
       * Metadata notebook
       */
      metadata?: Record<string, any>;
    }

    Mengembalikan konten file dalam format yang sesuai dengan tipe file.

    Write

    Nama tool: Write

    interface WriteOutput {
      /**
       * Pesan sukses
       */
      message: string;
      /**
       * Jumlah byte yang ditulis
       */
      bytes_written: number;
      /**
       * Path file yang ditulis
       */
      file_path: string;
    }

    Mengembalikan konfirmasi setelah berhasil menulis file.

    Glob

    Nama tool: Glob

    interface GlobOutput {
      /**
       * Array path file yang cocok
       */
      matches: string[];
      /**
       * Jumlah kecocokan yang ditemukan
       */
      count: number;
      /**
       * Direktori pencarian yang digunakan
       */
      search_path: string;
    }

    Mengembalikan path file yang cocok dengan pola glob, diurutkan berdasarkan waktu modifikasi.

    Grep

    Nama tool: Grep

    type GrepOutput = 
      | GrepContentOutput
      | GrepFilesOutput
      | GrepCountOutput;
    
    interface GrepContentOutput {
      /**
       * Baris yang cocok dengan konteks
       */
      matches: Array<{
        file: string;
        line_number?: number;
        line: string;
        before_context?: string[];
        after_context?: string[];
      }>;
      /**
       * Total jumlah kecocokan
       */
      total_matches: number;
    }
    
    interface GrepFilesOutput {
      /**
       * File yang berisi kecocokan
       */
      files: string[];
      /**
       * Jumlah file dengan kecocokan
       */
      count: number;
    }
    
    interface GrepCountOutput {
      /**
       * Jumlah kecocokan per file
       */
      counts: Array<{
        file: string;
        count: number;
      }>;
      /**
       * Total kecocokan di semua file
       */
      total: number;
    }

    Mengembalikan hasil pencarian dalam format yang ditentukan oleh output_mode.

    KillBash

    Nama tool: KillBash

    interface KillBashOutput {
      /**
       * Pesan sukses
       */
      message: string;
      /**
       * ID shell yang dibunuh
       */
      shell_id: string;
    }

    Mengembalikan konfirmasi setelah menghentikan shell background.

    NotebookEdit

    Nama tool: NotebookEdit

    interface NotebookEditOutput {
      /**
       * Pesan sukses
       */
      message: string;
      /**
       * Tipe edit yang dilakukan
       */
      edit_type: 'replaced' | 'inserted' | 'deleted';
      /**
       * ID sel yang terpengaruh
       */
      cell_id?: string;
      /**
       * Total sel dalam notebook setelah edit
       */
      total_cells: number;
    }

    Mengembalikan konfirmasi setelah memodifikasi notebook Jupyter.

    WebFetch

    Nama tool: WebFetch

    interface WebFetchOutput {
      /**
       * Respons model AI terhadap prompt
       */
      response: string;
      /**
       * URL yang diambil
       */
      url: string;
      /**
       * URL akhir setelah redirect
       */
      final_url?: string;
      /**
       * Kode status HTTP
       */
      status_code?: number;
    }

    Mengembalikan analisis AI dari konten web yang diambil.

    WebSearch

    Nama tool: WebSearch

    interface WebSearchOutput {
      /**
       * Hasil pencarian
       */
      results: Array<{
        title: string;
        url: string;
        snippet: string;
        /**
         * Metadata tambahan jika tersedia
         */
        metadata?: Record<string, any>;
      }>;
      /**
       * Total jumlah hasil
       */
      total_results: number;
      /**
       * Query yang dicari
       */
      query: string;
    }

    Mengembalikan hasil pencarian yang diformat dari web.

    TodoWrite

    Nama tool: TodoWrite

    interface TodoWriteOutput {
      /**
       * Pesan sukses
       */
      message: string;
      /**
       * Statistik todo saat ini
       */
      stats: {
        total: number;
        pending: number;
        in_progress: number;
        completed: number;
      };
    }

    Mengembalikan konfirmasi dengan statistik tugas saat ini.

    ExitPlanMode

    Nama tool: ExitPlanMode

    interface ExitPlanModeOutput {
      /**
       * Pesan konfirmasi
       */
      message: string;
      /**
       * Apakah pengguna menyetujui rencana
       */
      approved?: boolean;
    }

    Mengembalikan konfirmasi setelah keluar dari mode perencanaan.

    ListMcpResources

    Nama tool: ListMcpResources

    interface ListMcpResourcesOutput {
      /**
       * Resource yang tersedia
       */
      resources: Array<{
        uri: string;
        name: string;
        description?: string;
        mimeType?: string;
        server: string;
      }>;
      /**
       * Total jumlah resource
       */
      total: number;
    }

    Mengembalikan daftar resource MCP yang tersedia.

    ReadMcpResource

    Nama alat: ReadMcpResource

    interface ReadMcpResourceOutput {
      /**
       * Konten sumber daya
       */
      contents: Array<{
        uri: string;
        mimeType?: string;
        text?: string;
        blob?: string;
      }>;
      /**
       * Server yang menyediakan sumber daya
       */
      server: string;
    }

    Mengembalikan konten sumber daya MCP yang diminta.

    Jenis Izin

    PermissionUpdate

    Operasi untuk memperbarui izin.

    type PermissionUpdate = 
      | {
          type: 'addRules';
          rules: PermissionRuleValue[];
          behavior: PermissionBehavior;
          destination: PermissionUpdateDestination;
        }
      | {
          type: 'replaceRules';
          rules: PermissionRuleValue[];
          behavior: PermissionBehavior;
          destination: PermissionUpdateDestination;
        }
      | {
          type: 'removeRules';
          rules: PermissionRuleValue[];
          behavior: PermissionBehavior;
          destination: PermissionUpdateDestination;
        }
      | {
          type: 'setMode';
          mode: PermissionMode;
          destination: PermissionUpdateDestination;
        }
      | {
          type: 'addDirectories';
          directories: string[];
          destination: PermissionUpdateDestination;
        }
      | {
          type: 'removeDirectories';
          directories: string[];
          destination: PermissionUpdateDestination;
        }

    PermissionBehavior

    type PermissionBehavior = 'allow' | 'deny' | 'ask';

    PermissionUpdateDestination

    type PermissionUpdateDestination = 
      | 'userSettings'     // Pengaturan pengguna global
      | 'projectSettings'  // Pengaturan proyek per-direktori
      | 'localSettings'    // Pengaturan lokal yang diabaikan git
      | 'session'          // Sesi saat ini saja

    PermissionRuleValue

    type PermissionRuleValue = {
      toolName: string;
      ruleContent?: string;
    }

    Jenis Lainnya

    ApiKeySource

    type ApiKeySource = 'user' | 'project' | 'org' | 'temporary';

    ConfigScope

    type ConfigScope = 'local' | 'user' | 'project';

    NonNullableUsage

    Versi dari Usage dengan semua bidang yang dapat bernilai null dibuat tidak dapat bernilai null.

    type NonNullableUsage = {
      [K in keyof Usage]: NonNullable<Usage[K]>;
    }

    Usage

    Statistik penggunaan token (dari @anthropic-ai/sdk).

    type Usage = {
      input_tokens: number | null;
      output_tokens: number | null;
      cache_creation_input_tokens?: number | null;
      cache_read_input_tokens?: number | null;
    }

    CallToolResult

    Jenis hasil alat MCP (dari @modelcontextprotocol/sdk/types.js).

    type CallToolResult = {
      content: Array<{
        type: 'text' | 'image' | 'resource';
        // Bidang tambahan bervariasi menurut jenis
      }>;
      isError?: boolean;
    }

    AbortError

    Kelas kesalahan khusus untuk operasi pembatalan.

    class AbortError extends Error {}

    Lihat juga

    • Ringkasan SDK - Konsep SDK umum
    • Referensi SDK Python - Dokumentasi SDK Python
    • Referensi CLI - Antarmuka baris perintah
    • Alur kerja umum - Panduan langkah demi langkah
    allowedTools
    string[]
    Semua tool
    Daftar nama tool yang diizinkan
    canUseToolCanUseToolundefinedFungsi izin khusus untuk penggunaan tool
    continuebooleanfalseLanjutkan percakapan terbaru
    cwdstringprocess.cwd()Direktori kerja saat ini
    disallowedToolsstring[][]Daftar nama tool yang tidak diizinkan
    envDict<string>process.envVariabel lingkungan
    executable'bun' | 'deno' | 'node'Terdeteksi otomatisRuntime JavaScript yang digunakan
    executableArgsstring[][]Argumen yang diteruskan ke executable
    extraArgsRecord<string, string | null>{}Argumen tambahan
    fallbackModelstringundefinedModel yang digunakan jika model utama gagal
    forkSessionbooleanfalseSaat melanjutkan dengan resume, fork ke ID sesi baru alih-alih melanjutkan sesi asli
    hooksPartial<Record<HookEvent, HookCallbackMatcher[]>>{}Callback hook untuk event
    includePartialMessagesbooleanfalseSertakan event pesan parsial
    maxThinkingTokensnumberundefinedToken maksimal untuk proses pemikiran
    maxTurnsnumberundefinedPutaran percakapan maksimal
    mcpServersRecord<string, [McpServerConfig](#mcpserverconfig)>{}Konfigurasi server MCP
    modelstringDefault dari CLIModel Claude yang digunakan
    outputFormat{ type: 'json_schema', schema: JSONSchema }undefinedTentukan format output untuk hasil agent. Lihat Structured outputs untuk detail
    pathToClaudeCodeExecutablestringMenggunakan executable bawaanPath ke executable Claude Code
    permissionModePermissionMode'default'Mode izin untuk sesi
    permissionPromptToolNamestringundefinedNama tool MCP untuk prompt izin
    pluginsSdkPluginConfig[][]Muat plugin khusus dari path lokal. Lihat Plugins untuk detail
    resumestringundefinedID sesi untuk dilanjutkan
    settingSourcesSettingSource[][] (tidak ada pengaturan)Kontrol sumber pengaturan filesystem mana yang akan dimuat. Saat dihilangkan, tidak ada pengaturan yang dimuat. Catatan: Harus menyertakan 'project' untuk memuat file CLAUDE.md
    stderr(data: string) => voidundefinedCallback untuk output stderr
    strictMcpConfigbooleanfalseTerapkan validasi MCP ketat
    systemPromptstring | { type: 'preset'; preset: 'claude_code'; append?: string }undefined (prompt kosong)Konfigurasi system prompt. Teruskan string untuk prompt khusus, atau { type: 'preset', preset: 'claude_code' } untuk menggunakan system prompt Claude Code. Saat menggunakan bentuk objek preset, tambahkan append untuk memperluas system prompt dengan instruksi tambahan