デーモン REST API リファレンス
これは qwen serve --no-web を実行して独自の UI を提供するインテグレーション向けの公開 REST/SSE インターフェースです。まず インテグレーションガイド を確認し、その後このページでエンドポイントを調べ、HTTP プロトコルリファレンス で詳細なライフサイクルセマンティクスを参照してください。
OpenAPI
25 操作の厳選されたコントラクトは OpenAPI 3.1 JSON として利用可能です。この URL を OpenAPI 互換のレンダラー、クライアントジェネレーター、または検証ツールにインポートしてください。チェックインされた JSON は以下でインデックス化された操作のポータブルなインターフェースコントラクトであり、CI でガイド、プロトコル見出し、および登録済みルートに対して検証されています。
このインデックスはデーモンの REST サーフェスの厳選されたコアサブセットをカバーしており、すべてではありません。その外にはファーストパーティの Web Shell ルート、条件付きの内部サーフェス、およびその他の公開されているが非コアのルート——ファイル変更、ワークスペース登録、セッション整理と生成、ワークスペース MCP、スキル、プロバイダーなど——があります。これらのサーフェスは独自のケーパビリティタグで宣伝されており、HTTP プロトコルリファレンス にセッション、ワークスペースステータス、ファイルサーフェスがドキュメント化され、MCP サーバー管理、認証プロバイダー、デバイスフローサインインは デーモン認証とセキュリティノート でカバーされています。これらはこの契約の範囲外ですが、非推奨ではありません。
インデックスの読み方
- ケーパビリティ は
GET /capabilitiesで確認する機能タグです。ダッシュは操作に専用の機能タグがないことを意味します。古いデーモンビルドをサポートする必要があるクライアントは404を処理してください。 - スコープ はどのランタイムが操作を所有するかを示します。
process-globalはデーモン全体の状態を読み取り、selected-runtimeはリクエストのワークスペース選択を使用し、persisted-workspaceは永続化されたセッションストレージを解決し、live-session-ownerはライブセッションでルーティングし、legacy-primaryは常にデーモンのプライマリワークスペースをターゲットにします。GET /session/:id/exportはプライマリ固定です。管理された内部ランタイムのみを解決し、その後プライマリワークスペースにフォールバックします。 - このインデックスのすべての操作は v1 REST コントラクトで 安定 です。非推奨の
unstable_session_resumeケーパビリティ名は単なるエイリアスです。安定した resume ルートにはsession_resumeを使用してください。
検出
| Operation | Capability | Scope | TypeScript SDK |
|---|---|---|---|
GET /health | health | process-global | DaemonClient.health |
GET /capabilities | capabilities | process-global | DaemonClient.capabilities |
セッションライフサイクル
| Operation | Capability | Scope | TypeScript SDK |
|---|---|---|---|
POST /session | session_create | selected-runtime | DaemonClient.createOrAttachSession |
POST /session/:id/load | session_load | selected-runtime | DaemonClient.loadSession |
POST /session/:id/resume | session_resume | selected-runtime | DaemonClient.resumeSession |
POST /session/:id/heartbeat | client_heartbeat | live-session-owner | DaemonClient.heartbeat |
PATCH /session/:id/metadata | session_metadata | live-session-owner | DaemonClient.updateSessionMetadata |
POST /session/:id/model | session_set_model | live-session-owner | DaemonClient.setSessionModel |
DELETE /session/:id | session_close | live-session-owner | DaemonClient.closeSession |
プロンプトとイベント
| Operation | Capability | Scope | TypeScript SDK |
|---|---|---|---|
GET /session/:id/status | session_status | live-session-owner | DaemonClient.sessionStatus |
POST /session/:id/prompt | session_prompt | live-session-owner | DaemonClient.promptNonBlocking |
POST /session/:id/cancel | session_cancel | live-session-owner | DaemonClient.cancel |
GET /session/:id/events | session_events | live-session-owner | DaemonClient.subscribeEvents |
GET /session/:id/transcript | session_transcript | persisted-workspace | DaemonClient.getSessionTranscriptPage |
GET /session/:id/context | session_context | live-session-owner | DaemonClient.sessionContext |
GET /session/:id/export | session_export | legacy-primary | DaemonClient.exportSession |
GET /session/:id/pending-prompts | — | live-session-owner | DaemonClient.getPendingPrompts |
POST /session/:id/prompt はプロンプトがキューに入ると 202 を返します。エージェントが完了した時点ではありません。まずサブスクライブし、promptId で turn_complete または turn_error を関連付けます。
権限
| Operation | Capability | Scope | TypeScript SDK |
|---|---|---|---|
POST /session/:id/permission/:requestId | session_permission_vote | live-session-owner | DaemonClient.respondToSessionPermission |
POST /permission/:requestId | permission_vote | legacy-primary | DaemonClient.respondToPermission |
新しいマルチワークスペースインテグレーションは常にセッションスコープのルートを使用してください。レガシールートは別のランタイムが所有するリクエストに対して、すでに解決済みの投票と同じ 404 を返す可能性があります。
読み取り専用ワークスペースコンテキスト
| Operation | Capability | Scope | TypeScript SDK |
|---|---|---|---|
GET /workspace/tools | — | legacy-primary | DaemonClient.workspaceTools |
GET /file | workspace_file_read | legacy-primary | DaemonClient.readWorkspaceFile |
GET /file/bytes | workspace_file_bytes | legacy-primary | DaemonClient.readWorkspaceFileBytes |
GET /stat | workspace_file_read | legacy-primary | DaemonClient.fileStat |
GET /list | workspace_file_read | legacy-primary | DaemonClient.dirList |
GET /glob | workspace_file_read | legacy-primary | DaemonClient.glob |
これらの単一ルートはプライマリワークスペースをターゲットにします。複数の登録済みワークスペースを公開するインテグレーションは完全なプロトコルでドキュメント化されているワークスペース修飾の対照ルートを使用し、workspace_qualified_rest_core をプリフライトしてください。
追加のドキュメント化された API
上記の 25 操作は安定した OpenAPI インテグレーション契約です。以下の操作は専用プロトコルセクションを持つ HTTP ルートのインデックスを完成させます。これらはドキュメント化された v1 サーフェスですが、条件付き、管理用、または主にファーストパーティクライアントをサポートするため、そのコンパクトな OpenAPI 契約の範囲外です。リストされたすべてのケーパビリティをプリフライトし、欠落しているケーパビリティは利用不可のルートとして扱ってください。グループ化された行は、所有権と SDK ファミリーを共有する場合に複数の操作を含むことがあります。
| 領域 | 操作 | ケーパビリティとスコープ | TypeScript SDK |
|---|---|---|---|
| オペレーター状態 | GET /daemon/status · GET /brand | daemon_status、web_shell_brand;process-global | DaemonClient.daemonStatus、DaemonClient.brand |
| ワークスペース登録 | POST /workspaces · PATCH /workspaces/:workspace · DELETE /workspaces/:workspace · GET /workspace-registrations · DELETE /workspace-registrations/:id | dynamic_workspace_registration、persistent_workspace_registration、workspace_display_name、workspace_runtime_removal;process-global または selected-runtime | DaemonClient.addWorkspace、DaemonClient.updateWorkspace、WorkspaceDaemonClient.remove;registration-store ルートは生 REST を使用 |
| ワークスペースランタイムステータス | GET /workspace/mcp · GET /workspace/skills · GET /workspace/providers · GET /workspace/env · GET /workspace/preflight | workspace_mcp、workspace_skills、workspace_providers、workspace_env、workspace_preflight;legacy-primary | DaemonClient.workspaceMcp、workspaceSkills、workspaceProviders、workspaceEnv、workspacePreflight |
| ファイル変更 | POST /file/write · POST /file/edit | workspace_file_write;legacy-primary | DaemonClient.writeWorkspaceFile、DaemonClient.editWorkspaceFile |
| セッション検査とタスク | GET /session/:id/supported-commands · GET /session/:id/tasks · POST /session/:id/tasks/:taskId/workflow-action · GET /session/:id/lsp · GET /session/:id/resources | session_supported_commands、session_tasks、session_lsp、session_resources;live-session-owner | DaemonClient.sessionSupportedCommands、sessionTasks、sessionWorkflowTaskAction、sessionLspStatus、sessionResources |
| ワークスペース修飾の履歴 | GET /workspaces/:workspace/session/:id/transcript · GET /workspaces/:workspace/session/:id/export · GET /workspaces/:workspace/session/:id/archive/export | workspace_persisted_transcript、workspace_session_export、workspace_archived_session_export;persisted-workspace | WorkspaceDaemonClient.getSessionTranscriptPage、exportSession、exportArchivedSession |
| ワークツリーリカバリー | POST /session/:id/worktree-reset | session_worktree_reset_v1;live-session-owner | DaemonClient.resetWorktreeSession |
| 永続化セッションカタログ | POST /sessions/catalog · GET /workspace/:id/session-info · GET /workspaces/:workspace/session-info · GET /workspace/:id/sessions · GET /workspaces/:workspace/sessions · GET /workspaces/:workspace/sessions/live-state | session_info、session_list、workspace_session_live_state;persisted-workspace;session_catalog_batch;メンバーごとに persisted-workspace | DaemonClient.getStandaloneSession、listWorkspaceSessions、listSessionsCatalog、getWorkspaceSessionLiveState |
| セッション整理 | GET /workspace/:id/session-groups · POST /workspace/:id/session-groups · PATCH /workspace/:id/session-groups/:groupId · DELETE /workspace/:id/session-groups/:groupId · PATCH /session/:id/organization · PATCH /workspaces/:workspace/session/:id/organization | session_organization;legacy-primary または persisted-workspace | DaemonClient.listSessionGroups、createSessionGroup、updateSessionGroup、deleteSessionGroup、updateSessionOrganization;WorkspaceDaemonClient.updateSessionOrganization |
| 永続化セッションの一括変更 | POST /sessions/delete · POST /sessions/archive · POST /sessions/unarchive | session_archive;legacy-primary | DaemonClient.deleteSessionsData、archiveSessionsData、unarchiveSessionsData |
| オプションのセッションコントロール | POST /session/:id/recap · POST /session/:id/generate · POST /session/:id/approval-mode | session_recap、session_generation、session_approval_mode_control;live-session-owner | DaemonClient.recapSession、generation は生 REST、DaemonClient.setSessionApprovalMode |
| ワークスペース設定 | POST /workspace/tools/:name/enable · POST /workspace/skills/:name/enable · POST /workspace/skills/enable · POST /workspace/init · POST /workspace/mcp/reload · POST /workspace/mcp/:server/restart · POST /language | workspace_tool_toggle、workspace_skill_settings_toggle、workspace_skill_settings_batch_toggle、workspace_init、workspace_mcp_manage、workspace_mcp_restart、user_language_sync;legacy-primary または process-global | DaemonClient.setWorkspaceToolEnabled、setWorkspaceSkillEnabled、setWorkspaceSkillsEnabled、initWorkspace、reloadWorkspaceMcp、restartMcpServer、setUserLanguage |
| デバイスフロー認証 | POST /workspace/auth/device-flow · GET /workspace/auth/device-flow/:id · DELETE /workspace/auth/device-flow/:id · GET /workspace/auth/status | auth_device_flow;legacy-primary | DaemonClient.startDeviceFlow、getDeviceFlow、cancelDeviceFlow、getAuthStatus |
専用のプロトコルセクションがないルートは意図的にこのインデックスから除外されています。これらはファーストパーティの Web Shell の配管や条件付き実装サーフェスである可能性があり、省略によってインテグレーション契約に昇格されることはありません。
共通プロトコルルール
- 通常のルートは
Authorization: Bearer <token>で認証します。デフォルトのループバック/healthプローブは免除される場合があります。非ループバックバインドは免除されません。 - 作成・ロードレスポンスで
X-Qwen-Client-Idが提供された場合は送信してください。これは添付・属性識別子であり、エンドユーザーのセキュリティプリンシパルではありません。 - エラーボディは追加的なものとして扱います。主に HTTP ステータスと、存在する場合は安定した
codeまたはerrorKindで分岐してください。 - SSE レスポンスヘッダーを保持し、プロキシバッファリングを無効にしてください。デーモンがエポックを提供した場合は
Last-Event-IDとX-Qwen-Event-Epochの両方で再開します。 - ワークスペースの信頼境界はテナント分離ではありません。セキュリティプリンシパルまたはプロセスレベルの障害境界を独立させる必要がある場合は別のデーモンを実行してください。