
O Claude Code SDK transforma o Claude Code de um assistente de codificação interativo em um runtime de agente totalmente programável. Se você tem usado o Claude Code de forma interativa, o SDK abre um conjunto fundamentalmente diferente de possibilidades — pipelines automatizados, UIs personalizadas, orquestração multi-agente e integração com CI/CD.
O que é o Claude Code SDK?
O Claude Code SDK é uma interface programática que permite:
- Executar o Claude Code de forma não interativa a partir de scripts e pipelines
- Controlar quais arquivos, diretórios e ferramentas estão no contexto
- Analisar saídas estruturadas para processamento subsequente
- Encadear o Claude Code com outras ferramentas em fluxos de trabalho automatizados
- Construir UIs personalizadas sobre o raciocínio do Claude Code
Disponível como pacote Node.js:
npm install @anthropic-ai/claude-code
Ou invocar via CLI no modo não interativo:
claude -p "Seu prompt aqui" --output-format json
Conceitos Fundamentais do SDK
Modo Não Interativo
O caso de uso mais básico do SDK: execute o Claude Code com um prompt, obtenha a saída, pronto.
# CLI não interativo
claude -p "Revisar src/auth.ts em busca de vulnerabilidades de segurança" \
--output-format json \
--max-turns 5
// SDK
const { query } = require('@anthropic-ai/claude-code');
const result = await query({
prompt: "Revisar src/auth.ts em busca de vulnerabilidades de segurança",
options: {
maxTurns: 5,
outputFormat: 'json'
}
});
Configuração de Ferramentas
Controle quais ferramentas o Claude Code tem acesso na sua chamada SDK:
const result = await query({
prompt: "Gerar um conjunto de testes para src/utils.ts",
options: {
allowedTools: ['Read', 'Write', 'Bash'],
// Desabilitar ferramentas desnecessárias:
// disallowedTools: ['WebSearch', 'mcp__custom_tool']
}
});
System Prompts Personalizados
Substitua o system prompt padrão do Claude Code para comportamentos especializados:
const result = await query({
prompt: "Refatorar este módulo",
options: {
systemPrompt: `Você é um especialista em TypeScript focado em padrões de programação funcional.
Sempre prefira estruturas de dados imutáveis. Use tipos Result para tratamento de erros.
Nunca use os tipos any ou unknown.`,
}
});
Padrões Práticos com o SDK
1. Revisão de Código Automatizada no 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: `Revisar este diff de PR em busca de: problemas de segurança, problemas de desempenho e testes ausentes.
Saída como JSON com as chaves: security[], performance[], testing[].
Diff:
${diff}`,
options: {
outputFormat: 'json',
allowedTools: ['Read'], // Somente leitura no CI
maxTurns: 3
}
});
console.log(JSON.parse(review.result));
2. Geração Automatizada de Documentação
const fs = require('fs');
const { query } = require('@anthropic-ai/claude-code');
async function generateDocs(srcPath) {
const result = await query({
prompt: `Gerar documentação JSDoc abrangente para todas as funções exportadas em ${srcPath}.
Adicionar descrições de parâmetros, tipos de retorno e exemplos de uso.
Escrever o arquivo atualizado com a documentação adicionada.`,
options: {
allowedTools: ['Read', 'Write'],
cwd: process.cwd()
}
});
return result;
}
3. Pipeline Multi-Agente com Capacidades Externas
É aqui que a integração com o AnyCap se torna poderosa. Um pipeline em que o Claude Code cuida do raciocínio sobre o código e o AnyCap gerencia mídia e publicação:
const { query } = require('@anthropic-ai/claude-code');
const { execSync } = require('child_process');
async function buildAndPublishDocs(repoPath) {
// Passo 1: Claude Code gera a documentação
const docsResult = await query({
prompt: "Gerar um README abrangente para este projeto com instruções de configuração, referência de API e exemplos",
options: {
cwd: repoPath,
allowedTools: ['Read', 'Write', 'Bash']
}
});
// Passo 2: AnyCap gera o diagrama hero
execSync(`anycap image generate \
--prompt "Diagrama de arquitetura técnica para uma ferramenta de desenvolvedor, estilo limpo e minimalista" \
--model nano-banana-2 \
-o ${repoPath}/docs/architecture.png`);
// Passo 3: AnyCap publica como página web
const pageResult = execSync(`anycap page deploy ${repoPath}/docs/`).toString();
return { docs: docsResult, page: JSON.parse(pageResult) };
}
Autenticação do SDK
O SDK usa a mesma autenticação do Claude Code. Configure sua chave de API:
export ANTHROPIC_API_KEY=sua_chave_aqui
Ou para ambientes de equipe, use configuração específica do ambiente:
const { query } = require('@anthropic-ai/claude-code');
// O SDK lê ANTHROPIC_API_KEY automaticamente
// Ou passe explicitamente:
process.env.ANTHROPIC_API_KEY = await getSecretFromVault('anthropic-api-key');
Formatos de Saída
O SDK suporta três formatos de saída:
| Formato | Caso de Uso |
|---|---|
text |
Padrão, saída legível por humanos |
json |
Processamento programático — inclui resultado, custo, informações da sessão |
stream-json |
Saída em tempo real para UIs e dashboards |
// A saída JSON inclui metadados
{
"result": "A função tem uma potencial vulnerabilidade de SQL injection...",
"is_error": false,
"session_id": "sess_xxxx",
"cost_usd": 0.0043,
"num_turns": 2
}
Limites de Taxa e Gestão de Custos em Fluxos de Trabalho com SDK
A automação baseada em SDK pode consumir tokens mais rapidamente do que o uso interativo. Proteções integradas:
const result = await query({
prompt: "...",
options: {
maxTurns: 5, // Limitar iterações de raciocínio
timeoutMs: 30000, // Timeout para tarefas de longa duração
}
});
// Sempre verifique o custo em produção
if (result.cost_usd > 0.10) {
logger.warn(`Sessão de alto custo: $${result.cost_usd}`);
}
Para tarefas com uso intensivo de capacidades (geração de imagens, criação de vídeos, pesquisa na web), delegue ao AnyCap em vez de deixar o Claude Code lidar com elas no contexto. Isso mantém os custos do SDK previsíveis e evita atingir os limites de taxa do Claude em tarefas que não são de raciocínio.
Primeiros Passos
# Instalar o SDK
npm install @anthropic-ai/claude-code
# Instalar o AnyCap para extensão de capacidades
curl -fsSL https://anycap.ai/install.sh | sh
# Adicionar skill do AnyCap ao Claude Code
npx -y skills add anycap-ai/anycap -y
→ AnyCap para Claude Code → Guia para Adicionar Ferramentas ao Claude Code