http://localhost:8080application/json{ "code": 0, "message": "ok", "data": {} }GET /api/health
响应示例:
{
"code": 0,
"message": "ok"
}
GET /api/mqtt
响应示例:
{
"code": 0,
"message": "ok",
"data": [
{
"id": 1,
"broker": "tcp://127.0.0.1:1883",
"client_id": "opencode-monitor",
"username": "user",
"password": "pass",
"topic": "opencode/status",
"enabled": true
}
]
}
POST /api/mqtt
请求体:
{
"broker": "tcp://127.0.0.1:1883",
"client_id": "opencode-monitor",
"username": "user",
"password": "pass",
"topic": "opencode/status",
"enabled": true
}
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| broker | string | 是 | - | MQTT Broker 地址 |
| client_id | string | 否 | opencode-monitor | 客户端 ID |
| username | string | 否 | - | MQTT 用户名 |
| password | string | 否 | - | MQTT 密码 |
| topic | string | 否 | opencode/status | 推送主题 |
| enabled | boolean | 否 | true | 是否启用 |
响应示例:
{
"code": 0,
"message": "创建成功",
"data": {
"id": 1,
"broker": "tcp://127.0.0.1:1883",
"client_id": "opencode-monitor",
"username": "user",
"password": "pass",
"topic": "opencode/status",
"enabled": true
}
}
GET /api/mqtt/:id
路径参数: | 参数 | 类型 | 说明 | |------|------|------| | id | integer | 配置 ID |
响应示例:
{
"code": 0,
"message": "ok",
"data": {
"id": 1,
"broker": "tcp://127.0.0.1:1883",
"client_id": "opencode-monitor",
"username": "user",
"password": "pass",
"topic": "opencode/status",
"enabled": true
}
}
PUT /api/mqtt/:id
路径参数: | 参数 | 类型 | 说明 | |------|------|------| | id | integer | 配置 ID |
请求体:
{
"broker": "tcp://192.168.1.100:1883",
"client_id": "my-monitor",
"username": "user",
"password": "pass",
"topic": "my/topic",
"enabled": false
}
响应示例:
{
"code": 0,
"message": "更新成功",
"data": {
"id": 1,
"broker": "tcp://192.168.1.100:1883",
"client_id": "my-monitor",
"username": "user",
"password": "pass",
"topic": "my/topic",
"enabled": false
}
}
DELETE /api/mqtt/:id
路径参数: | 参数 | 类型 | 说明 | |------|------|------| | id | integer | 配置 ID |
响应示例:
{
"code": 0,
"message": "删除成功"
}
所有错误响应格式:
{
"code": -1,
"message": "错误信息"
}
# 方式1: 独立启动 API 服务
./bin/opencode-monitor serve --addr :8080
# 方式2: 监控时同时启动 API 服务
./bin/opencode-monitor monitor --ports 4096 --api-addr :8080
API 已启用 CORS,支持跨域请求。
配置启用后,监控到状态变化时会自动推送到配置的 topic。消息格式为 JSON:
{
"port": 4096,
"status": "忙碌",
"code": "busy",
"timestamp": "2026-06-03T14:30:00Z"
}
| status | code | 说明 |
|---|---|---|
| 空闲 | idle | 会话空闲 |
| 忙碌 | busy | 会话忙碌 |
| 重试中 | retry | 会话重试中 |
| 修改中 | pending | 会话修改中 |
| 思考中 | reasoning | 模型推理中 |
| 使用工具中 | using_tool | AI 正在使用工具 |
| 等待中 | pending | 工具等待执行 |
| 运行中 | running | 工具执行中 |
| 工具执行完成 | completed | 工具执行完成 |
| 会话完成 | session_completed | 会话执行完成 |
| 等待权限 | permission | AI 向用户申请权限 |
| 错误 | error | 会话错误 |
启动监控服务后,可以通过浏览器访问 http://localhost:8080 查看实时状态页面。
ws://localhost:8080/ws
WebSocket 推送的消息格式为 JSON:
{
"port": 4096,
"status": "忙碌",
"code": "busy",
"timestamp": "2026-06-03T14:30:00Z"
}
const ws = new WebSocket('ws://localhost:8080/ws');
ws.onmessage = function(event) {
const data = JSON.parse(event.data);
console.log('状态更新:', data);
};