🎉 Python claude-agent-sdk v0.1.14 と 100% 機能同等を実現!
cc-sdk は Claude Code CLI の公式 Rust SDK です:
max_budget_usd と fallback_model サポートuse cc_sdk::{query, ClaudeCodeOptions};
use futures::StreamExt;
#[tokio::main]
async fn main() -> cc_sdk::Result<()> {
let options = ClaudeCodeOptions::builder()
.model("claude-opus-4-5-20251101") // 最新 Opus 4.5
.auto_download_cli(true) // CLI 自動ダウンロード
.max_budget_usd(10.0) // 予算制限
.build();
let mut stream = query("こんにちは、Claude!", Some(options)).await?;
while let Some(msg) = stream.next().await {
println!("{:?}", msg?);
}
Ok(())
}
Claude Code CLI 用の高性能な Rust 実装による OpenAI 互換 API ゲートウェイです。堅牢な cc-sdk をベースに構築されており、使い慣れた OpenAI API 形式で Claude Code と対話できる RESTful API インターフェースを提供します。
オプション 1: crates.io からインストール
cargo install claude-code-api
実行:
RUST_LOG=info claude-code-api
# または短いエイリアスを使用
RUST_LOG=info ccapi
オプション 2: ソースからビルド
git clone https://github.com/ZhangHanDong/claude-code-api-rs.git
cd claude-code-api-rs
ワークスペース全体(API サーバー + SDK)をビルド:
cargo build --release
サーバーを起動:
./target/release/claude-code-api
注意: API サーバーは Claude Code CLI とのすべてのやり取りに cc-sdk を自動的に含み、使用します。
API サーバーはデフォルトで http://localhost:8080 で起動します。
curl -X POST http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "claude-opus-4-5-20251101",
"messages": [
{"role": "user", "content": "こんにちは、Claude!"}
]
}'
API は最新の Claude モデルをサポートしています:
"opus"(最新版のエイリアス)"claude-opus-4-5-20251101""sonnet"(最新版のエイリアス)"claude-sonnet-4-5-20250929""claude-sonnet-4-20250514"claude-3-5-sonnet-20241022)claude-3-5-haiku-20241022) - 最速レスポンスimport openai
# Claude Code API を使用するようにクライアントを設定
client = openai.OpenAI(
base_url="http://localhost:8080/v1",
api_key="not-needed" # API キーは不要
)
response = client.chat.completions.create(
model="opus", # より高速なレスポンスには "sonnet"
messages=[
{"role": "user", "content": "Python で hello world を書いて"}
]
)
print(response.choices[0].message.content)
複数のリクエストにわたってコンテキストを維持:
# 最初のリクエスト - 新しい会話を作成
response = client.chat.completions.create(
model="sonnet",
messages=[
{"role": "user", "content": "私の名前はアリスです"}
]
)
conversation_id = response.conversation_id
# 次のリクエスト - 会話を続ける
response = client.chat.completions.create(
model="sonnet",
conversation_id=conversation_id,
messages=[
{"role": "user", "content": "私の名前は何ですか?"}
]
)
# Claude は覚えています: "あなたの名前はアリスです"
stream = client.chat.completions.create(
model="opus",
messages=[{"role": "user", "content": "長い物語を書いて"}],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
# サーバー設定
CLAUDE_CODE__SERVER__HOST=0.0.0.0
CLAUDE_CODE__SERVER__PORT=8080
# Claude CLI 設定
CLAUDE_CODE__CLAUDE__COMMAND=claude
CLAUDE_CODE__CLAUDE__TIMEOUT_SECONDS=300
CLAUDE_CODE__CLAUDE__MAX_CONCURRENT_SESSIONS=10
# キャッシュ設定
CLAUDE_CODE__CACHE__ENABLED=true
CLAUDE_CODE__CACHE__MAX_ENTRIES=1000
CLAUDE_CODE__CACHE__TTL_SECONDS=3600
POST /v1/chat/completions - チャット補完を作成GET /v1/models - 利用可能なモデルを一覧表示POST /v1/conversations - 新しい会話を作成GET /v1/conversations - アクティブな会話を一覧表示GET /v1/conversations/:id - 会話の詳細を取得GET /stats - API 使用統計を取得GET /health - サービスの健全性をチェックコントリビューションは歓迎します!お気軽に Pull Request を提出してください。
このプロジェクトは MIT ライセンスの下でライセンスされています - 詳細は LICENSE ファイルを参照してください。
Made with ❤️ by the Claude Code API team
$ claude mcp add claude-code-api-rs \
-- python -m otcore.mcp_server <graph>