背景
我在维护一个非官方的 macOS 菜单栏客户端:CCH Bar,用于轻量查看 Claude Code Hub 的运行中请求、最近请求、排行和渠道状态。
项目地址:
https://github.com/xt1990xt1990/Claude-Code-Hub-Bar
目前 CCH Bar 只能通过轮询 /api/v1/usage-logs 来同步“请求中 / 已完成”的状态。实际体验中,CCH Web 页面已经显示请求中后,CCH Bar 由于轮询间隔通常会有约 1-3 秒延迟;如果把轮询间隔压到 1 秒,又会增加不必要的请求量。
需求
希望 Claude Code Hub 提供一个轻量的实时事件接口,供第三方客户端订阅使用日志/运行中请求变化,实现接近无延迟同步。
建议支持 WebSocket 或 SSE 均可,例如:
GET /api/v1/events,SSE
GET /api/v1/ws,WebSocket
- 或专门的
GET /api/v1/usage-logs/events
期望事件
至少希望包含这些事件类型:
usage_log.created:新请求创建,通常对应 statusCode == null
usage_log.updated:请求状态更新,例如 statusCode 从 null 变成 200/499/5xx
usage_log.completed:请求完成,可选,如果 updated 已能表达则不必单独提供
usage_log.deleted 或 usage_log.hidden:可选,用于日志清理或权限变化
建议 payload
payload 可以复用 /api/v1/usage-logs 的单条 log 结构,至少包含:
{
"type": "usage_log.updated",
"data": {
"id": 123,
"createdAt": "2026-06-09T03:45:24.511Z",
"sessionId": "...",
"providerName": "...",
"model": "...",
"statusCode": null,
"costMultiplier": "0.0050",
"specialSettings": []
}
}
权限和兼容性
- 复用现有 API token 鉴权即可。
- 事件可按当前 token 的可见权限过滤,和
/api/v1/usage-logs 一致。
- 建议支持断线重连:SSE 可使用
Last-Event-ID,WebSocket 可支持客户端传 cursor 或最近 log id。
- 如果实时接口不可用,第三方客户端仍可 fallback 到现有
/api/v1/usage-logs 轮询。
价值
- 第三方轻量客户端可以做到与 CCH Web 页面接近同步。
- 避免为了低延迟而高频轮询
/api/v1/usage-logs。
- 对菜单栏、移动端、小组件、通知类客户端都比较有用。
谢谢。
背景
我在维护一个非官方的 macOS 菜单栏客户端:CCH Bar,用于轻量查看 Claude Code Hub 的运行中请求、最近请求、排行和渠道状态。
项目地址:
https://github.com/xt1990xt1990/Claude-Code-Hub-Bar
目前 CCH Bar 只能通过轮询
/api/v1/usage-logs来同步“请求中 / 已完成”的状态。实际体验中,CCH Web 页面已经显示请求中后,CCH Bar 由于轮询间隔通常会有约 1-3 秒延迟;如果把轮询间隔压到 1 秒,又会增加不必要的请求量。需求
希望 Claude Code Hub 提供一个轻量的实时事件接口,供第三方客户端订阅使用日志/运行中请求变化,实现接近无延迟同步。
建议支持 WebSocket 或 SSE 均可,例如:
GET /api/v1/events,SSEGET /api/v1/ws,WebSocketGET /api/v1/usage-logs/events期望事件
至少希望包含这些事件类型:
usage_log.created:新请求创建,通常对应statusCode == nullusage_log.updated:请求状态更新,例如statusCode从null变成200/499/5xxusage_log.completed:请求完成,可选,如果 updated 已能表达则不必单独提供usage_log.deleted或usage_log.hidden:可选,用于日志清理或权限变化建议 payload
payload 可以复用
/api/v1/usage-logs的单条 log 结构,至少包含:{ "type": "usage_log.updated", "data": { "id": 123, "createdAt": "2026-06-09T03:45:24.511Z", "sessionId": "...", "providerName": "...", "model": "...", "statusCode": null, "costMultiplier": "0.0050", "specialSettings": [] } }权限和兼容性
/api/v1/usage-logs一致。Last-Event-ID,WebSocket 可支持客户端传cursor或最近 log id。/api/v1/usage-logs轮询。价值
/api/v1/usage-logs。谢谢。