{"id":49917185,"url":"https://github.com/is0383kk/claude-multi-agent-api-server","last_synced_at":"2026-05-16T17:28:57.756Z","repository":{"id":322129242,"uuid":"1088180078","full_name":"is0383kk/claude-multi-agent-api-server","owner":"is0383kk","description":"Production-ready FastAPI service for concurrent Claude Agent session management with real-time monitoring, cost tracking, and session resumption via HTTP API.","archived":false,"fork":false,"pushed_at":"2026-05-09T18:49:24.000Z","size":2333,"stargazers_count":13,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-09T20:38:48.271Z","etag":null,"topics":["agentic-ai","agents","ai-agents","anthropic","api","api-client","api-server","claude","claude-agent-sdk","claude-agents","claude-code","claude-code-sdk","fastapi","multi-agent","multi-agent-systems","multiagent","multiagent-systems","rest-api","session-management"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/is0383kk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-02T13:29:00.000Z","updated_at":"2026-05-09T18:49:29.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/is0383kk/claude-multi-agent-api-server","commit_stats":null,"previous_names":["is0383kk/claude-agent-api-server","is0383kk/claude-multi-agent-api-server"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/is0383kk/claude-multi-agent-api-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/is0383kk%2Fclaude-multi-agent-api-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/is0383kk%2Fclaude-multi-agent-api-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/is0383kk%2Fclaude-multi-agent-api-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/is0383kk%2Fclaude-multi-agent-api-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/is0383kk","download_url":"https://codeload.github.com/is0383kk/claude-multi-agent-api-server/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/is0383kk%2Fclaude-multi-agent-api-server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33111511,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T04:41:52.686Z","status":"ssl_error","status_checked_at":"2026-05-16T04:41:52.009Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agentic-ai","agents","ai-agents","anthropic","api","api-client","api-server","claude","claude-agent-sdk","claude-agents","claude-code","claude-code-sdk","fastapi","multi-agent","multi-agent-systems","multiagent","multiagent-systems","rest-api","session-management"],"created_at":"2026-05-16T17:28:56.874Z","updated_at":"2026-05-16T17:28:57.749Z","avatar_url":"https://github.com/is0383kk.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e [!WARNING]\n\u003e Development of this repository has ceased.  \n\u003e It is currently being redeveloped as a resident AI agent; [OpenClaude](https://github.com/is0383kk/openclaude).\n\n# Claude Multi-Agent API Server\n\nA production-ready FastAPI web service that enables concurrent execution and management of multiple Claude Agent sessions via HTTP API.  \nFeatures advanced multi-agent session management with independent lifecycle control, real-time monitoring of each agent's progress, cost tracking per session, session resumption capabilities, and comprehensive background task orchestration for scalable AI agent deployment.\n\n## ■ Available API Endpoints\n\n| Endpoint                  | Method | Description                                        |\n| ------------------------- | ------ | -------------------------------------------------- |\n| `/`                       | GET    | Basic API information and available endpoints list |\n| `/execute/`               | POST   | Start a new Claude agent session                   |\n| `/status/{session_id}`    | GET    | Get session status, message history, and results   |\n| `/cancel/{session_id}`    | POST   | Cancel a running session                           |\n| `/sessions/`              | GET    | Get detailed information of all active sessions    |\n| `/sessions/{session_id}`  | DELETE | Delete a specific session by ID                    |\n| `/sessions/cleanup`       | DELETE | Clean up old sessions                              |\n\n## ■ File Structure\n\n```\nClaude-Multi-Agent-API-Server/\n├── main.py                 # Main FastAPI application file\n├── models.py               # Pydantic model definitions and validation\n├── session_manager.py      # Session lifecycle management\n├── examples/                # Usage examples and test files\n│   ├── client_example.py   # Production-ready Python client implementation example\n│   └── index.html          # Interactive web test interface\n└── requirements.txt        # Python dependency definitions\n```\n\n# 1. API Endpoints\n\n## ■ Agent Execution (`POST /execute/`)\n\nExecute agents using Claude Agent SDK.\n\n**Request Body Example:**\n\n```json\n{\n  \"prompt\": \"Please explain Claude Agent SDK in detail\",\n  \"system_prompt\": \"You are an excellent system engineer\",\n  \"permission_mode\": \"acceptEdits\",\n  \"model\": \"sonnet\",\n  \"cwd\": \"/path/to/working/directory\",\n  \"allowed_tools\": [\"Read\", \"Write\", \"Bash\"]\n}\n```\n\n**Response Example:**\n\n```json\n{\n  \"session_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n  \"status\": \"pending\",\n  \"message\": \"Session 123e4567-e89b-12d3-a456-426614174000 started successfully\"\n}\n```\n\n## ■ Status Check (`GET /status/{session_id}`)\n\nGet the status of a running agent.\n\n**Response Example:**\n\n```json\n{\n  \"session_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n  \"status\": \"running\",\n  \"messages\": [\n    {\n      \"type\": \"UserMessage\",\n      \"content\": \"...\",\n      \"timestamp\": \"2024-01-01T12:00:00.000Z\"\n    },\n    {\n      \"type\": \"AssistantMessage\",\n      \"content\": \"...\",\n      \"timestamp\": \"2024-01-01T12:00:01.000Z\"\n    }\n  ],\n  \"result\": null,\n  \"error\": null,\n  \"duration_ms\": 1000,\n  \"total_cost_usd\": 0.01\n}\n```\n\n**Status Values:**\n\n- `pending`: Just after session creation\n- `running`: Agent is executing\n- `completed`: Successfully completed\n- `error`: An error occurred\n- `cancelled`: Cancelled\n\n## ■ Agent Execution Cancellation (`POST /cancel/{session_id}`)\n\nCancel a running agent.\n\n**Response Example:**\n\n```json\n{\n  \"session_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n  \"status\": \"cancelled\",\n  \"message\": \"Session 123e4567-e89b-12d3-a456-426614174000 cancelled successfully\"\n}\n```\n\n## ■ Session List Retrieval (`GET /sessions/`)\n\nGet detailed information of all active sessions.\n\n**Response Example:**\n\n```json\n[\n  {\n    \"session_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n    \"status\": \"running\",\n    \"prompt\": \"Create a Hello World program in Python\",\n    \"created_at\": \"2024-01-01T12:00:00.000Z\",\n    \"start_time\": \"2024-01-01T12:00:01.000Z\",\n    \"end_time\": null,\n    \"error\": null,\n    \"result\": null,\n    \"message_count\": 5\n  }\n]\n```\n\n## ■ Individual Session Deletion (`DELETE /sessions/{session_id}`)\n\nDelete a specific session by session ID.\n\n**Path Parameters:**\n\n- `session_id`: Session ID to delete\n\n**Response Example:**\n\n```json\n{\n  \"session_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n  \"status\": \"completed\",\n  \"message\": \"Session 123e4567-e89b-12d3-a456-426614174000 deleted successfully\"\n}\n```\n\n**Error Responses:**\n\n- `404 Not Found`: Session does not exist\n- `400 Bad Request`: Cannot delete running sessions (must be cancelled first)\n\n**Notes:**\n\n- Only sessions with status `completed`, `cancelled`, `error`, or `pending` can be deleted\n- Running sessions must be cancelled first using `/cancel/{session_id}`\n- Deleted sessions cannot be resumed\n\n## ■ Old Session Cleanup (`DELETE /sessions/cleanup`)\n\nDelete sessions older than the specified time.\n\n**Query Parameters:**\n\n- `max_age_hours`: Maximum retention time (default: 24 hours)\n\n**Response Example:**\n\n```json\n{\n  \"removed\": 5,\n  \"message\": \"Cleaned up 5 old sessions\"\n}\n```\n\n# 2. Setup and Execution\n\n## ■ Prerequisites\n\n- Python 3.8 or higher\n- Claude Code CLI (`npm install -g @anthropic-ai/claude-code`)\n\n## ■ Library Installation\n\n```bash\npip install -r requirements.txt\n```\n\n## ■ Server Startup\n\n```bash\npython main.py\n```\n\nor\n\n```bash\nuvicorn main:app --reload --host 0.0.0.0 --port 8000\n```\n\n# 3. Quick Start\n\n## ■ Pattern 1: Test with Web Interface\n\nAfter starting the server, open `examples/index.html` in a browser for GUI operation.\n\n![Web Interface Screenshot](img/001.png)\n\nThe web interface provides:\n\n- **Agent Execution**: Execute agents with configurable options (prompt, model, permission mode, etc.)\n- **Session Status Check**: Monitor session status and view message history\n- **Active Sessions List**: View all active sessions with resume and cancel capabilities\n\n## ■ Pattern 2: Test with Python Client\n\nRunning `examples/client_example.py` executes batch processing for all API endpoints.\n\n```python\npython examples/client_example.py\n```\n\n# 4. Important Notes and Best Practices\n\n## ■ Memory Management\n\n- Sessions are stored in memory and are not automatically deleted\n- Regularly clean up with `/sessions/cleanup` or restart the server\n\n## ■ Performance\n\n- Long-running agents continue to consume server resources\n- Be mindful of the number of concurrent sessions\n- Actively cancel unnecessary sessions\n\n## ■ Security\n\n- Configure CORS settings appropriately for production environments\n\n## ■ License\n\nMIT License\n\n---\n\n# Claude Multi-Agent API Server\n\n複数の Claude Agent セッションの同時実行と管理を可能にした FastAPI Web サービスです。  \n高度なマルチエージェントセッション管理機能により、各エージェントの独立したライフサイクル制御、セッション毎のリアルタイム進捗監視、コスト追跡、セッション再開機能、およびスケーラブルな AI エージェント展開のための包括的なバックグラウンドタスク オーケストレーションを提供します。\n\n## ■ 提供している API エンドポイント一覧\n\n| エンドポイント            | メソッド | 説明                                         |\n| ------------------------- | -------- | -------------------------------------------- |\n| `/`                       | GET      | API の基本情報と利用可能エンドポイント一覧   |\n| `/execute/`               | POST     | 新しい Claude エージェントセッションを開始   |\n| `/status/{session_id}`    | GET      | セッションの状態、メッセージ履歴、結果を取得 |\n| `/cancel/{session_id}`    | POST     | 実行中のセッションをキャンセル               |\n| `/sessions/`              | GET      | すべてのアクティブセッションの詳細情報を取得 |\n| `/sessions/{session_id}`  | DELETE   | 指定したセッションIDで個別にセッションを削除 |\n| `/sessions/cleanup`       | DELETE   | 古いセッションをクリーンアップ               |\n\n## ■ ファイル構成\n\n```\nClaude-Multi-Agent-API-Server/\n├── main.py                 # FastAPIアプリケーションのメインファイル\n├── models.py               # Pydanticモデル定義とバリデーション\n├── session_manager.py      # セッションライフサイクル管理\n├── examples/                # 使用例とテスト用ファイル\n│   ├── client_example.py   # 本格的なPythonクライアント実装例\n│   └── index.html          # インタラクティブWebテストインターフェース\n└── requirements.txt        # Python依存パッケージ定義\n```\n\n# 1. API エンドポイントについて\n\n## ■ エージェント実行 (`POST /execute/`)\n\nClaude Agent SDK によるエージェントを実行します。\n\n**リクエストボディ例:**\n\n```json\n{\n  \"prompt\": \"Claude Agent SDKについて詳しく解説してください\",\n  \"system_prompt\": \"あなたは優秀なシステムエンジニアです\",\n  \"permission_mode\": \"acceptEdits\",\n  \"model\": \"sonnet\",\n  \"cwd\": \"/path/to/working/directory\",\n  \"allowed_tools\": [\"Read\", \"Write\", \"Bash\"]\n}\n```\n\n**レスポンス例:**\n\n```json\n{\n  \"session_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n  \"status\": \"pending\",\n  \"message\": \"Session 123e4567-e89b-12d3-a456-426614174000 started successfully\"\n}\n```\n\n## ■ ステータス確認 (`GET /status/{session_id}`)\n\n実行中のエージェントのステータスを取得します。\n\n**レスポンス例:**\n\n```json\n{\n  \"session_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n  \"status\": \"running\",\n  \"messages\": [\n    {\n      \"type\": \"UserMessage\",\n      \"content\": \"...\",\n      \"timestamp\": \"2024-01-01T12:00:00.000Z\"\n    },\n    {\n      \"type\": \"AssistantMessage\",\n      \"content\": \"...\",\n      \"timestamp\": \"2024-01-01T12:00:01.000Z\"\n    }\n  ],\n  \"result\": null,\n  \"error\": null,\n  \"duration_ms\": 1000,\n  \"total_cost_usd\": 0.01\n}\n```\n\n**ステータス値:**\n\n- `pending`: セッション作成直後\n- `running`: エージェント実行中\n- `completed`: 正常に完了\n- `error`: エラーが発生\n- `cancelled`: キャンセルされた\n\n## ■ エージェント実行中断 (`POST /cancel/{session_id}`)\n\n実行中のエージェントを中断します。\n\n**レスポンス例:**\n\n```json\n{\n  \"session_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n  \"status\": \"cancelled\",\n  \"message\": \"Session 123e4567-e89b-12d3-a456-426614174000 cancelled successfully\"\n}\n```\n\n## ■ セッション一覧取得 (`GET /sessions/`)\n\nすべてのアクティブセッションの詳細情報を取得します。\n\n**レスポンス例:**\n\n```json\n[\n  {\n    \"session_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n    \"status\": \"running\",\n    \"prompt\": \"PythonでHello Worldプログラムを作成してください\",\n    \"created_at\": \"2024-01-01T12:00:00.000Z\",\n    \"start_time\": \"2024-01-01T12:00:01.000Z\",\n    \"end_time\": null,\n    \"error\": null,\n    \"result\": null,\n    \"message_count\": 5\n  }\n]\n```\n\n## ■ 個別セッションの削除 (`DELETE /sessions/{session_id}`)\n\nセッションIDを指定して個別にセッションを削除します。\n\n**パスパラメータ:**\n\n- `session_id`: 削除するセッション ID\n\n**レスポンス例:**\n\n```json\n{\n  \"session_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n  \"status\": \"completed\",\n  \"message\": \"Session 123e4567-e89b-12d3-a456-426614174000 deleted successfully\"\n}\n```\n\n**エラーレスポンス:**\n\n- `404 Not Found`: セッションが存在しない\n- `400 Bad Request`: 実行中のセッションは削除できません（先にキャンセルが必要）\n\n**注意事項:**\n\n- `completed`、`cancelled`、`error`、`pending` 状態のセッションのみ削除可能\n- 実行中のセッションは先に `/cancel/{session_id}` でキャンセルする必要があります\n- 削除されたセッションは再開できません\n\n## ■ 古いセッションのクリーンアップ (`DELETE /sessions/cleanup`)\n\n指定した時間より古いセッションを削除します。\n\n**クエリパラメータ:**\n\n- `max_age_hours`: 保持する最大時間（デフォルト: 24 時間）\n\n**レスポンス例:**\n\n```json\n{\n  \"removed\": 5,\n  \"message\": \"Cleaned up 5 old sessions\"\n}\n```\n\n# 2. 実行方法\n\n## ■ 前提条件\n\n- Python 3.8 以上\n- Claude Code CLI (`npm install -g @anthropic-ai/claude-code`)\n\n## ■ ライブラリのインストール\n\n```bash\npip install -r requirements.txt\n```\n\n## ■ サーバーの起動\n\n```bash\npython main.py\n```\n\nまたは\n\n```bash\nuvicorn main:app --reload --host 0.0.0.0 --port 8000\n```\n\n# 3. クイックスタート\n\n## ■ パターン１：Web インターフェースでテスト\n\nサーバーを起動した後、`examples/index.html`をブラウザで開いて GUI で操作できます。\n\n![Web インターフェーススクリーンショット](img/001.png)\n\nWeb インターフェースでは以下の機能が利用できます：\n\n- **エージェント実行**: プロンプト、モデル、許可モードなどを設定してエージェントを実行\n- **セッション状態確認**: セッションのステータス監視とメッセージ履歴の表示\n- **アクティブセッション一覧**: すべてのアクティブセッションの表示、再開、キャンセル機能\n\n## ■ パターン２：Python クライアントでテスト\n\n`examples/client_example.py`を実行すると、API エンドポイントで定義されている処理を一括実行できます。\n\n```python\npython examples/client_example.py\n```\n\n# 4. 注意事項とベストプラクティス\n\n## ■ メモリ管理\n\n- セッションはメモリ内に保存され、自動削除されません\n- 定期的に `/sessions/cleanup` でクリーンアップかサーバの再起動をしてください\n\n## ■ パフォーマンス\n\n- 長時間実行エージェントはサーバーリソースを消費し続けます\n- 同時実行セッション数に注意してください\n- 不要なセッションは積極的にキャンセルしてください\n\n## ■ セキュリティ\n\n- 本番環境では CORS 設定を適切に配置してください\n\n## ■ ライセンス\n\nMIT License\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fis0383kk%2Fclaude-multi-agent-api-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fis0383kk%2Fclaude-multi-agent-api-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fis0383kk%2Fclaude-multi-agent-api-server/lists"}