Skip to content

API 总览

Dinotty 的对外接口按用途分为四层。本文档帮助你快速找到需要的 API。

接口分层

通道适合场景文档
Tabs & Panes APIHTTP REST创建 / 关闭 / 重命名 Tab,分屏,跨 Tab 移动 Panetabs-panes-api.md
Open APIHTTP + WebSocket读写已有终端:字节流(screen/scrollback/input/resize)+ 命令级语义(run/send/read)+ 事件订阅open-api.md
Mission Control APIWebSocket (/ws/sync)程序化打开 / 导航 / 关闭 MC 概览mission-control-api.md

此外还有两个独立子系统的 API 文档:

按场景找接口

我想...

认证体系

Dinotty 的鉴权分两层,Open API 的 run/send/read/WS /ws/events 同时接受两种凭据(双轨鉴权):

┌─────────────────────────────────────────────────────────────────┐
│  全局 Token / Session Cookie                                     │
│  - 启动时配置的 master token,或 POST /api/auth 登录后的 cookie   │
│  - 覆盖:Tabs API、Open API(全部端点)、Clipboard、Settings、    │
│    Plugins 等所有 /api/* 端点                                    │
└─────────────────────────────────────────────────────────────────┘

         │  /api/sessions/{run,send,read} + /ws/events 也接受

┌─────────────────────────────────────────────────────────────────┐
│  Agent Token (dnt_*)                                             │
│  - 通过 /api/tokens 创建的细粒度 token                            │
│  - 携带 capability: terminal:read / terminal:write 等             │
│  - 覆盖:/api/sessions/{run,send,read}、/ws/events、              │
│    /api/tokens/*、/mcp/*                                         │
└─────────────────────────────────────────────────────────────────┘

Mission Control 走 /ws/sync,使用全局 token(query string ?token=<token>)或 session cookie。

启用条件速查

API启用条件
Tabs & Panes API始终启用(仅需认证)
Open API需在 settings 中开启 open_api.enabled = truerun/send/read 额外接受 Agent Token(capability 校验)
Mission Control API始终启用(通过 /ws/sync
Clipboard始终启用,但需要 token 或 session + 同源校验
MCP Server需要 open_api.enabled = true 并使用 Agent Token

内部机制

如果想了解事件系统、权限模型、审计日志等"非接口"层面的设计:

Released under the MIT license