Claude Code SDK
(docs.anthropic.com)- Claude Code SDK は、AIベースのコーディングツールをアプリケーションに統合できる機能を提供
- 開発者は サブプロセスとして Claude Code を実行でき、コマンドライン利用を優先サポート
- 対話コンテキスト管理、カスタムシステムプロンプト指定、外部ツール連携(MCP)機能を含む
- 出力フォーマットの多様性(テキスト、JSON、ストリーミングJSON)と詳細な CLI オプションを活用可能
- 実例として GitHub Actions と連携し、自動コードレビュー、PR 作成など 実際の開発ワークフロー統合 の可能性を提示
紹介
Claude Code SDK は、Claude Code の機能をアプリケーションに直接プログラム的に統合できるオープンソースの開発ツール。SDK は Claude Code を 別プロセスとして実行し、AI ベースのコードアシスタント、自動化ツール、コードレビューシステムなど、さまざまな開発ワークフローに組み込める拡張性を提供する。
現在はコマンドライン(CLI)ベースのインターフェースをサポートしており、TypeScript および Python 向け SDK は近日公開予定。
基本的な SDK の使い方
Claude Code SDK は 非対話型(非インタラクティブ)実行をサポートする。たとえば、プログラムコード内から Claude Code をコマンドライン引数付きで呼び出し、必要な出力を自動的に得ることができる。
高度な使い方
マルチターン会話セッションの継続
- 複数回のやり取りを行う際、以前のセッションや特定のセッション ID を利用して 会話コンテキストを維持しながら続けられる機能を提供
- 開発者は最新のセッションから会話を継続したり、特定のセッションを読み込んだりできる
カスタムシステムプロンプト
- Claude の基本動作を 開発者向けのカスタムシステムプロンプトで調整可能
- デフォルトのシステムプロンプトに追加指示を付けることで、assistant の業務指向性や動作範囲を変更できる
MCP(Model Context Protocol) 設定
- MCP は Claude Code の機能拡張のための外部サーバー連携プロトコル
--mcp-configフラグと JSON 設定ファイルを通じて、外部サーバーが提供する データベースアクセス、API 連携、カスタムツール などを追加できる- MCP ツール使用時は、明示的に許可したツールのみ使用可能でなければならず(
--allowedToolsフラグ)、名前パターンはmcp__<serverName>__<toolName>形式
利用可能な CLI オプション
Claude Code SDK では、さまざまなコマンドラインフラグを使って実行環境を設定できる。
--print,-p: 非インタラクティブモードで実行--output-format: 出力フォーマットを選択(テキスト、JSON、ストリーム JSON など)--resume,-r: 特定のセッション ID で会話を再開--continue,-c: 最新のセッションを継続--verbose: 詳細ログを出力--max-turns: 非インタラクティブモードで最大会話ラウンド数を制限--system-prompt: システムプロンプトを上書き--append-system-prompt: システムプロンプトに追加指示を付加--allowedTools: 許可するツール一覧を指定(MCP ツールも含む)--disallowedTools: 禁止ツール一覧を指定--mcp-config: MCP サーバー設定ファイルを読み込み--permission-prompt-tool: 権限プロンプト処理用の MCP ツールを指定
利用可能な全オプションと使用例については、公式の CLI ドキュメント を参照。
出力フォーマット
SDK はさまざまな 出力フォーマットをサポートする。
テキスト出力(デフォルト)
- 応答テキストのみを返す
JSON 出力
- メタデータと構造化データを返すため、プログラムによるパースに適している
- API 応答メッセージは厳密な型構造に従い、今後は JSON Schema フォーマットでの型定義も予定されている
ストリーミング JSON 出力
- 各メッセージを リアルタイムにストリーム送信
- 会話セッション進行時には、初期化メッセージ(
init)、ユーザー/assistant メッセージ、統計を含む最終resultメッセージの順で、個別の JSON オブジェクトとして送信される
メッセージスキーマ
- JSON API 応答メッセージは 正確なスキーマに従って構造化される
- 定期的なスキーマ更新とバージョン管理が予定されている
例
- シンプルなスクリプト統合
- Claude を活用したファイル処理
- セッション管理による複雑な会話フローのサポート
ベストプラクティス
- JSON 出力フォーマットを活用した応答パースを利用する
- エラー処理: 終了コードとエラーストリームを確認する
- セッション管理: マルチラウンド会話のコンテキストを維持する
- タイムアウトの考慮: 長時間処理の安全性を確保する
- リクエスト間隔の調整: 過剰な呼び出しを防ぎ、サービスの安定性を維持する
実際の適用事例
Claude Code SDK は実務開発環境で 強力な自動化と統合機能を提供する。
- 代表的な事例として、GitHub Actions と組み合わせることで 自動コードレビュー、PR 作成、イシュー分類など の開発ワークフローを完全自動化できる
1件のコメント
Hacker Newsのコメント
Claude Codeが目指している方向性こそ、私が求めていたエージェントベースのコーディングツールにおける「unix toolish」な哲学の形だと強調したい。初期の公開プレビュー時からClaude Codeを使ってきて、その発展の過程を見てきた経験がある。コーディングエージェントの「ゴールドスタンダード」は、機能要望(例: Jiraチケット)を入力するとPRが返ってきて、私がそれを直接レビューしてフィードバックできるレベルだと考えている。Cursor、windsurfなどはローカルエディタなのでCI環境に統合できず、そこに限界があると思う。コードベースをAI最適化(MCP、ルールなど)したいなら、ヘッドレスでも使える技術を目指すべきだと強調したい。Claude Codeは自動化ツールと一緒に簡単に使えるので、私がコーディングエージェントを考えるとき、今では基準になっている。Codex npmパッケージについても同様に考えている。ちなみに、私はこうした最適なツール設定を支援する役割をしているので、設定が簡単なツールに自然と有利な見方をしがちではある
私が望む「究極のエンドステート」は、コード作成、デザイン、テストを行うAIエージェントたちに囲まれた部屋の真ん中に私がいる状況だ。私はその中心でキーボードにほとんど触れず、方向性や美的基準、ガイドだけを会話で提示する。そんな未来を期待している
Anthropicが今日、これに近い機能をベータとして発表したことに触れておきたい。関連ドキュメントを共有したい。 https://docs.anthropic.com/en/docs/claude-code/github-actions
私が考えるコーディングエージェントの「究極のエンドステート」は、自分のコンピュータ、あるいは自分の望むどこででも自由に実行できる無料のオープンソースなコーディングエージェントを使う状況だ。ターミナルで
ls、ps、killのようなコマンドを実行するたびに料金が発生すると想像したらおかしいと感じるのと同じで、LLMについても同様だと思う。独占的なLLMを「禁止しよう」と言いたいわけではないが、この分野でハッカーと呼ばれる人たちには、オープンソースツールを主要な道具にしてほしいという願いがあるCursor、windsurfなどはローカルエディタだからCIで使いにくいという指摘だったが、私はCursorとMCPの組み合わせでこれを試してみた。一日中うまく使えたが、すぐにrate limitに引っかかって、いちばん遅くて賢くないモデルに切り替わる経験をした。Claudeでも試したが、ほどなくしてlimitを使い切ってしまった。しかもPRは25%程度しか「そのまま使える」レベルではなく、AIがどこでミスしたかを見つけるより、自分でやったほうが早いことが多い
すでにそういうCIベースの自動化はできるのでは、という考えだ。Aider CLIをGitHub Actionとして登録して、issueが作成されたら自動実行するようにすれば、そうした構成はすでに実現できる
Claude Codeは、私がLLMをコーディングに活用するときにいちばん好きなやり方だ。でも本当に必要なのは、Claude Codeのオープンソース版だと思う。好きなモデルを適用できて、異なるモデルの回答を自分で比較できる環境が必要だ。Aiderなどほかの代替案は、Claude Codeレベルの体験を与えてくれないと感じる。Anthropicがこういう方向を望まないのは想像できる(防御壁が弱くなるからだ)。だが消費者の立場としては最高のモデルを使いたいし、ひとつのエコシステムに縛られたくない。LLMプロバイダにとって、これが最大の恐れだろうと思う
OpenAI codexが、おっしゃるものに最も近いオープンソースだ。好きなプロバイダのモデルを使える。現時点ではClaude Codeに及ばないが、すぐに追いつくと思う。 https://github.com/openai/codex/tree/main
Claude CodeをMCPサーバーとして使えば、ある程度望む環境を実現できる
AiderはPythonとshellスクリプティングのサポートをかなり前から提供していた。最近では130の新しいプログラミング言語のサポートを追加する過程の一環として、ad-hoc bash scripting aideを含めたスクリーンキャストも作成していた。このスクリプティングスタイルのアプローチがどれほど強力か、実際に感じられるはずだ。 https://aider.chat/docs/scripting.html, https://aider.chat/docs/recordings/tree-sitter-language-pack.html
Aiderは本当に気に入っている。MCPsもまもなくサポート予定で、開発ブランチでテスト中だ。これが実現すれば、信頼できるモデルだけでPR、チケットなどend-to-end開発が本当に可能になる
AiderをClaude Codeと同じくらい好きになれるレベルまで持っていけるのか気になる。Claude CodeのUXは気に入っているが、Gemini 2.5 Proのほうが好みなのでClaude Codeは使っていない。コミットなどの機能よりも、UXが優れている点に魅力を感じる。これについてどう思うか聞きたい
AiderがGitHub Actions連携のワークフローをもっとpolishedにすれば、本当に大きく伸びると思う。repoにファイルをひとつ追加するだけで、issue経由で好きなモデルと対話できる
Claude Codeチーム自身が明かした追加の文脈を共有したい。 http://latent.space/p/claude-code 主なポイントとしては、Anthropicの社員は無制限Claudeで平均1日6ドル程度使っている。CI向けの「linux」ユーティリティのようなヘッドレスClaude Codeは非常に魅力的だ。拡張可能なユーザープラットフォームという志向もある。今後のロードマップはサンドボックス化、ブランチング、プランニング機能だ。sonnet 3.7という持続的なagenticモデルも予定されている
「Anthropicの社員は、無制限Claudeで平均$6/日使っている」とのことだが、記事にはあるエンジニアが1日1,000ドル使ったという話もある。平均よりもP50、P75、P95のような分布のほうが気になる
私はClaude Codeを2時間ほど使うだけで20ドルを軽く超えることが何度もあった。個人プロジェクトには高すぎて、結局使えない
最近latent spaceのポッドキャストを本当に面白く聴いた。高いSNRを維持しながら、これほど生産性の高い公開コンテンツを継続して出している人/ポッドキャストは本当に珍しい。複数のビジネスを並行しながら、これほどの公的なアウトプットを保っているのはすごい。こうした生産性のgradientをもっと多くの人が体験できればいいと思う。本人は秘訣を共有しているが、実際に真似するのは簡単ではない
もし私がAIコードアシスタントを作るなら、特定のfoundation modelプロバイダに絶対に依存させない。これが成功するには、モデルの効果がほぼ頭打ちになって性能がどれも似通い、慣れたSDKレベルの小さな違いしか残っていない状況である必要がある。そうでなければ妥当な戦略ではない
コマンドや引数が違うだけなので、実際にはそれほど強い依存(lock-in)ではないと思う。結局は入出力関数があるだけで、必要な部分だけ差し替えたりラップしたりすればいい。構造的に複雑なことはない
現時点ではClaude Codeはエージェントベースのコーディング市場で差別化要因になっていると思う。AI code assistantを自分で開発中だが、Claude Code連携を最初に試すことになった。初期段階でlock-inを気にする時期ではないと感じる。最高のものを選んで、それを軸に開発を始めるべきだと思う
Claude Codeはすでに非対話型(non-interactive)モードでも使えたので、UNIXコマンドラインユーティリティのように他のアプリに簡単に統合できるという点を強調したい。今回のSDKもコマンドライン利用しかサポートしていないが、本質的に既存のものと何が違うのかよく分からない。自分が見落としているポイントが何なのか気になる
「サービスを一般知能に競合する何らかの製品またはサービスの開発、訓練、あるいは再販に使用することを禁じる」というAnthropicの利用規約を引用する。実質的にあらゆるソフトウェアが一般知能に「競合する」範囲に入るのだとしたら、これを厳格に解釈すれば何の用途にも使えないことにならないか。こうした法的文言そのものが曖昧すぎて、適用不能だと思う。AIの成果物は所有できるのに一般知能に競合してはいけないというのは、なぜこんなに包括的に禁じるのか気になる。単に法的責任はユーザーが負え、という意味なのだろうか。いろいろ疑問がある
新しく追加されたGitHub Actionが、私が探していた機能とまさに一致していてとてもうれしい。 https://docs.anthropic.com/en/docs/claude-code/github-action... ただ、Claude CodeのMax planと連携して使う方法が今のところないようだ。API keyしか受け付けない構造なので、少し惜しい
特にGitHub Actionsとissue/PR連携の機能こそ、これまで私が求めていたものだと強調したい。 https://docs.anthropic.com/en/docs/claude-code/github-action...
copilot経由でClaude対応が始まったら、ぜひ使ってみるつもりだ。会社の方針上、まだそれ以外のツールは使えない状況だ