Sem descrição

moki 7586574208 修复mqtt bug há 3 semanas atrás
.idea 230ce76a1e windows监控不到的bug há 3 semanas atrás
cmd 7586574208 修复mqtt bug há 3 semanas atrás
docs 7586574208 修复mqtt bug há 3 semanas atrás
internal 7586574208 修复mqtt bug há 3 semanas atrás
scripts c0a30d6e30 项目架构搭建 há 3 semanas atrás
.gitignore f3b97901c1 多平台支持 há 3 semanas atrás
Makefile f3b97901c1 多平台支持 há 3 semanas atrás
README.md 7586574208 修复mqtt bug há 3 semanas atrás
go.mod f3b97901c1 多平台支持 há 3 semanas atrás
go.sum f3b97901c1 多平台支持 há 3 semanas atrás

README.md

OpenCode Monitor

OpenCode 状态监控工具,支持实时监控多个 OpenCode 实例的状态,并通过 MQTT 推送状态信息。

功能特性

  • 🔍 自动发现 - 自动扫描并发现运行中的 OpenCode 实例
  • 📊 实时监控 - 通过 SSE 事件流实时获取状态变化
  • 📡 MQTT 推送 - 支持将状态信息推送到 MQTT Broker
  • 💾 配置管理 - 使用 SQLite 存储 MQTT 配置
  • 🌐 HTTP API - 提供 RESTful API 接口管理配置
  • 🖥️ 跨平台 - 支持 Linux、macOS、Windows

安装

下载预编译版本

dist/ 目录下载对应平台的可执行文件:

  • opencode-monitor-linux-amd64 - Linux x86_64
  • opencode-monitor-windows-amd64.exe - Windows x86_64

从源码编译

# 克隆项目
git clone <repository-url>
cd AI-Status-Light

# 编译当前平台
go build -o bin/opencode-monitor ./cmd/monitor

# 编译所有平台
make build-all

使用方法

启动监控

# 自动发现并监控所有 OpenCode 实例
./opencode-monitor monitor

# 监控指定端口
./opencode-monitor monitor --ports 4096,4097

# 启动监控 + API 服务
./opencode-monitor monitor --api-addr :8080

API 服务

# 启动独立的 API 服务
./opencode-monitor serve --addr :8080

配置管理

# 查看 MQTT 配置
./opencode-monitor config list

# 设置 MQTT 配置
./opencode-monitor config set --broker tcp://127.0.0.1:1883 --topic opencode/status

# 删除配置
./opencode-monitor config delete 1

API 接口

方法 路径 说明
GET /api/health 健康检查
GET /api/mqtt 获取所有配置
POST /api/mqtt 创建配置
GET /api/mqtt/:id 获取单个配置
PUT /api/mqtt/:id 更新配置
DELETE /api/mqtt/:id 删除配置

请求示例

# 创建 MQTT 配置
curl -X POST http://localhost:8080/api/mqtt \
  -H "Content-Type: application/json" \
  -d '{"broker":"tcp://127.0.0.1:1883","topic":"opencode/status"}'

# 获取所有配置
curl http://localhost:8080/api/mqtt

MQTT 消息格式

{
  "port": 4096,
  "type": "session.status",
  "status": "忙碌",
  "tool": "bash",
  "state": "运行中: ls -la",
  "title": "",
  "timestamp": "2026-06-03T10:30:00Z"
}

消息类型

类型 说明
session.status 会话状态变化
session.idle 会话空闲
message.part.updated 消息部分更新
permission.updated 权限请求
session.error 会话错误

命令行参数

monitor 命令

./opencode-monitor monitor [选项]

选项:
  --host string        主机地址 (默认 "127.0.0.1")
  --ports string       端口列表,逗号分隔 (如: 4096,4097,4098)
  --scan string        扫描端口范围 (如: 4096-4100)
  --pid                通过进程号查找端口
  --interval int       动态扫描间隔(秒) (默认 5)
  --db string          数据库路径 (默认 "./data/config.db")
  --api-addr string    API 服务地址 (如: :8080)

serve 命令

./opencode-monitor serve [选项]

选项:
  --addr string    监听地址 (默认 ":8080")
  --db string      数据库路径 (默认 "./data/config.db")

项目结构

AI-Status-Light/
├── cmd/monitor/          # 程序入口
├── internal/
│   ├── api/              # HTTP API 模块
│   ├── database/         # SQLite 数据库模块
│   ├── discovery/        # 端口发现模块
│   ├── event/            # 事件处理模块
│   ├── monitor/          # 监控器核心模块
│   └── mqtt/             # MQTT 客户端模块
├── docs/                 # 文档
├── dist/                 # 编译产物
└── Makefile              # 构建脚本

开发

# 安装依赖
go mod tidy

# 运行测试
go test ./...

# 构建
make build

# 构建所有平台
make build-all

许可证

MIT License