
最終更新日: 2026年6月4日
Claude Code SDK は、まだ作業の大半がコードに関するものなら非常に優れています。たとえば CI のチェック、コードレビュー、構造化出力、MCP 対応の自動化などです。しかし、ワークフローに検索、メディア、公開、その他の非コード機能が必要になった瞬間、Claude Code SDK だけでは足りなくなります。
そこで AnyCap の出番です。AnyCap はエージェント CLI であり、コーディングエージェントをコード実行の外側まで拡張します。これにより、同じワークフローをコードの推論から、調査、アセット生成、成果物の配信へとつなげられます。
要点
- コード中心の自動化には Claude Code SDK を使う
- ワークフローに検索、メディア、公開、配信が必要なら AnyCap を追加する
- Claude Code SDK はコーディング用ランタイムとして扱う
- AnyCap はコードの外側にある機能レイヤーとして扱う
Claude Code SDK とは?
Claude Code SDK は、次のことを可能にするプログラマティックなインターフェースです。
- スクリプトやパイプラインから Claude Code を非対話的に実行する
- どのファイル、ディレクトリ、ツールをコンテキストに入れるか制御する
- 下流処理のために構造化出力を解析する
- 自動化ワークフローで Claude Code を他のツールと連結する
- Claude Code の推論の上に独自 UI を構築する
Node.js パッケージとして利用できます。
npm install @anthropic-ai/claude-code
または CLI から非対話モードで呼び出します。
claude -p "ここにプロンプトを入力" --output-format json
SDK の基本概念
非対話モード
最も基本的な SDK の使い方です。プロンプトを与えて Claude Code を実行し、出力を受け取れば完了です。
# CLI 非対話モード
claude -p "src/auth.ts をセキュリティ脆弱性の観点でレビューして" \
--output-format json \
--max-turns 5
// SDK
const { query } = require('@anthropic-ai/claude-code');
const result = await query({
prompt: "src/auth.ts をセキュリティ脆弱性の観点でレビューして",
options: {
maxTurns: 5,
outputFormat: 'json'
}
});
ツール設定
SDK 呼び出しで Claude Code に許可するツールを制御できます。
const result = await query({
prompt: "src/utils.ts のテストスイートを生成して",
options: {
allowedTools: ['Read', 'Write', 'Bash'],
// 不要なツールは無効化する:
// disallowedTools: ['WebSearch', 'mcp__custom_tool']
}
});
カスタム system prompt
特定の振る舞いをさせたい場合は、Claude Code のデフォルト system prompt を上書きできます。
const result = await query({
prompt: "このモジュールをリファクタリングして",
options: {
systemPrompt: `あなたは関数型プログラミングパターンを専門とする TypeScript のエキスパートです。
常にイミュータブルなデータ構造を優先してください。エラー処理には Result 型を使ってください。
any や unknown 型は決して使わないでください。`,
}
});
実践的な SDK パターン
1. 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: `この PR の diff を次の観点でレビューしてください: セキュリティ問題、パフォーマンス問題、テスト不足。
出力は JSON で、キーは security[], performance[], testing[] にしてください。
Diff:
${diff}`,
options: {
outputFormat: 'json',
allowedTools: ['Read'], // CI では読み取り専用
maxTurns: 3
}
});
console.log(JSON.parse(review.result));
2. 自動ドキュメント生成
const fs = require('fs');
const { query } = require('@anthropic-ai/claude-code');
async function generateDocs(srcPath) {
const result = await query({
prompt: `${srcPath} 内のエクスポート済み関数すべてに対して、包括的な JSDoc ドキュメントを生成してください。
パラメータ説明、戻り値の型、使用例を追加してください。
ドキュメントを追加した更新済みファイルを書き戻してください。`,
options: {
allowedTools: ['Read', 'Write'],
cwd: process.cwd()
}
});
return result;
}
3. 外部機能を使うマルチエージェントワークフロー
ここで AnyCap が役立ちます。Claude Code はコード推論を担当し、AnyCap はコーディング実行環境の外にあるタスクを担当します。
const { query } = require('@anthropic-ai/claude-code');
const { execSync } = require('child_process');
async function buildAndPublishDocs(repoPath) {
// ステップ 1: Claude Code がドキュメントを生成
const docsResult = await query({
prompt: "セットアップ手順、API リファレンス、サンプルを含む、このプロジェクトの包括的な README を生成して",
options: {
cwd: repoPath,
allowedTools: ['Read', 'Write', 'Bash']
}
});
// ステップ 2: AnyCap がヒーロー図を生成
execSync(`anycap image generate \
--prompt "開発者向けツールの技術アーキテクチャ図、クリーンでミニマルなスタイル" \
--model nano-banana-2 \
-o ${repoPath}/docs/architecture.png`);
// ステップ 3: AnyCap が Web ページとして公開
const pageResult = execSync(`anycap page deploy ${repoPath}/docs/`).toString();
return { docs: docsResult, page: JSON.parse(pageResult) };
}
SDK の認証
SDK は Claude Code と同じ認証を使います。API キーを設定してください。
export ANTHROPIC_API_KEY=your_key_here
チーム環境では、環境ごとの設定を使うこともできます。
const { query } = require('@anthropic-ai/claude-code');
// SDK は ANTHROPIC_API_KEY を自動で取得します
// あるいは明示的に設定:
process.env.ANTHROPIC_API_KEY = await getSecretFromVault('anthropic-api-key');
出力形式
SDK は 3 つの出力形式をサポートします。
| 形式 | 用途 |
|---|---|
text |
デフォルトの、人間が読みやすい出力 |
json |
プログラム処理用。結果、コスト、セッション情報を含む |
stream-json |
UI やダッシュボード向けのリアルタイム出力 |
// JSON 出力にはメタデータが含まれる
{
"result": "この関数には SQL インジェクションの脆弱性がある可能性があります...",
"is_error": false,
"session_id": "sess_xxxx",
"cost_usd": 0.0043,
"num_turns": 2
}
SDK ワークフローにおけるレート制限とコスト管理
SDK ベースの自動化は、対話利用よりもトークン消費が速くなることがあります。組み込みのガードレールは次のとおりです。
const result = await query({
prompt: "...",
options: {
maxTurns: 5, // 推論の反復回数を制限
timeoutMs: 30000, // 長時間タスクのタイムアウト
}
});
// 本番では必ずコストを確認する
if (result.cost_usd > 0.10) {
logger.warn(`高コストのセッション: $${result.cost_usd}`);
}
画像生成、動画作成、Web 検索のような機能重視のタスクは、Claude Code にコンテキスト内で処理させるのではなく AnyCap にオフロードしてください。これにより SDK コストを予測しやすく保ち、推論以外のタスクで Claude のレート制限に達するのを避けられます。
はじめに
# SDK をインストール
npm install @anthropic-ai/claude-code
# 機能拡張用に AnyCap をインストール
curl -fsSL https://anycap.ai/install.sh | sh
# AnyCap スキルを Claude Code に追加
npx -y skills add anycap-ai/anycap -y