
Claude Code SDK mengubah Claude Code dari asisten coding interaktif menjadi runtime agen yang sepenuhnya dapat diprogram. Jika selama ini kamu menggunakan Claude Code secara interaktif, SDK ini membuka serangkaian kemungkinan yang berbeda — pipeline otomatis, UI kustom, orkestrasi multi-agen, dan integrasi CI/CD.
Apa Itu Claude Code SDK?
Claude Code SDK adalah antarmuka programatik yang memungkinkan kamu:
- Menjalankan Claude Code secara non-interaktif dari skrip dan pipeline
- Mengontrol file, direktori, dan alat yang ada dalam konteks
- Mem-parse output terstruktur untuk pemrosesan lebih lanjut
- Menghubungkan Claude Code dengan alat lain dalam alur kerja otomatis
- Membangun UI kustom di atas kemampuan reasoning Claude Code
Tersedia sebagai paket Node.js:
npm install @anthropic-ai/claude-code
Atau panggil melalui CLI dalam mode non-interaktif:
claude -p "Prompt kamu di sini" --output-format json
Konsep Inti SDK
Mode Non-Interaktif
Kasus penggunaan SDK paling dasar: jalankan Claude Code dengan prompt, dapatkan output, selesai.
# CLI non-interaktif
claude -p "Tinjau src/auth.ts untuk kerentanan keamanan" \
--output-format json \
--max-turns 5
// SDK
const { query } = require('@anthropic-ai/claude-code');
const result = await query({
prompt: "Tinjau src/auth.ts untuk kerentanan keamanan",
options: {
maxTurns: 5,
outputFormat: 'json'
}
});
Konfigurasi Alat
Kontrol alat apa saja yang dapat diakses Claude Code dalam panggilan SDK-mu:
const result = await query({
prompt: "Buat test suite untuk src/utils.ts",
options: {
allowedTools: ['Read', 'Write', 'Bash'],
// Nonaktifkan alat yang tidak diperlukan:
// disallowedTools: ['WebSearch', 'mcp__custom_tool']
}
});
System Prompt Kustom
Timpa system prompt default Claude Code untuk perilaku khusus:
const result = await query({
prompt: "Refaktor modul ini",
options: {
systemPrompt: `Kamu adalah ahli TypeScript yang berspesialisasi dalam pola pemrograman fungsional.
Selalu utamakan struktur data yang tidak dapat diubah. Gunakan tipe Result untuk penanganan error.
Jangan pernah menggunakan tipe any atau unknown.`,
}
});
Pola SDK Praktis
1. Code Review Otomatis di CI
// .github/workflows/code-review.js
const { query } = require('@anthropic-ai/claude-code');
const { execSync } = require('child_process');
const diff = execSync('git diff main...HEAD').toString();
const review = await query({
prompt: `Tinjau diff PR ini untuk: masalah keamanan, masalah performa, dan tes yang hilang.
Output sebagai JSON dengan kunci: security[], performance[], testing[].
Diff:
${diff}`,
options: {
outputFormat: 'json',
allowedTools: ['Read'], // Hanya baca di CI
maxTurns: 3
}
});
console.log(JSON.parse(review.result));
2. Pembuatan Dokumentasi Otomatis
const fs = require('fs');
const { query } = require('@anthropic-ai/claude-code');
async function generateDocs(srcPath) {
const result = await query({
prompt: `Buat dokumentasi JSDoc yang komprehensif untuk semua fungsi yang diekspor di ${srcPath}.
Tambahkan deskripsi parameter, tipe kembalian, dan contoh penggunaan.
Tulis file yang diperbarui dengan dokumentasi yang ditambahkan.`,
options: {
allowedTools: ['Read', 'Write'],
cwd: process.cwd()
}
});
return result;
}
3. Pipeline Multi-Agen dengan Kemampuan Eksternal
Di sinilah integrasi AnyCap menjadi sangat powerful. Pipeline di mana Claude Code menangani reasoning kode, dan AnyCap menangani media dan penerbitan:
const { query } = require('@anthropic-ai/claude-code');
const { execSync } = require('child_process');
async function buildAndPublishDocs(repoPath) {
// Langkah 1: Claude Code menghasilkan dokumentasi
const docsResult = await query({
prompt: "Buat README komprehensif untuk proyek ini dengan instruksi setup, referensi API, dan contoh",
options: {
cwd: repoPath,
allowedTools: ['Read', 'Write', 'Bash']
}
});
// Langkah 2: AnyCap menghasilkan diagram hero
execSync(`anycap image generate \
--prompt "Diagram arsitektur teknis untuk alat developer, gaya bersih dan minimalis" \
--model nano-banana-2 \
-o ${repoPath}/docs/architecture.png`);
// Langkah 3: AnyCap menerbitkan sebagai halaman web
const pageResult = execSync(`anycap page deploy ${repoPath}/docs/`).toString();
return { docs: docsResult, page: JSON.parse(pageResult) };
}
Autentikasi SDK
SDK menggunakan autentikasi yang sama dengan Claude Code. Atur API key-mu:
export ANTHROPIC_API_KEY=your_key_here
Atau untuk lingkungan tim, gunakan konfigurasi khusus lingkungan:
const { query } = require('@anthropic-ai/claude-code');
// SDK secara otomatis membaca ANTHROPIC_API_KEY
// Atau berikan secara eksplisit:
process.env.ANTHROPIC_API_KEY = await getSecretFromVault('anthropic-api-key');
Format Output
SDK mendukung tiga format output:
| Format | Kasus Penggunaan |
|---|---|
text |
Default, output yang dapat dibaca manusia |
json |
Pemrosesan programatik — mencakup hasil, biaya, info sesi |
stream-json |
Output real-time untuk UI dan dashboard |
// Output JSON menyertakan metadata
{
"result": "Fungsi ini memiliki potensi kerentanan SQL injection...",
"is_error": false,
"session_id": "sess_xxxx",
"cost_usd": 0.0043,
"num_turns": 2
}
Batas Rate dan Manajemen Biaya dalam Alur Kerja SDK
Otomasi berbasis SDK dapat mengonsumsi token lebih cepat daripada penggunaan interaktif. Pagar pembatas bawaan:
const result = await query({
prompt: "...",
options: {
maxTurns: 5, // Batasi iterasi reasoning
timeoutMs: 30000, // Timeout untuk tugas yang berjalan lama
}
});
// Selalu periksa biaya di produksi
if (result.cost_usd > 0.10) {
logger.warn(`Sesi berbiaya tinggi: $${result.cost_usd}`);
}
Untuk tugas yang membutuhkan banyak kapabilitas (pembuatan gambar, pembuatan video, pencarian web), serahkan ke AnyCap daripada membiarkan Claude Code menanganinya dalam konteks. Ini menjaga biaya SDK tetap dapat diprediksi dan menghindari terkena rate limit Claude untuk tugas non-reasoning.
Memulai
# Instal SDK
npm install @anthropic-ai/claude-code
# Instal AnyCap untuk perluasan kemampuan
curl -fsSL https://anycap.ai/install.sh | sh
# Tambahkan skill AnyCap ke Claude Code
npx -y skills add anycap-ai/anycap -y
→ AnyCap untuk Claude Code → Panduan Menambahkan Alat ke Claude Code