API 参考
用于编程访问 Pi Session Manager 的 HTTP 和 WebSocket API。
Pi Session Manager 通过 HTTP 和 WebSocket API 暴露全部功能。两种协议共享同一个命令路由(dispatch()),因此每个命令在两种协议上的行为完全一致。
POST http://127.0.0.1:52131/api
Content-Type: application/json
{
"command": "command_name",
"payload": { }
}
{
"success": true,
"data": { },
"error": null
}
从非 localhost 地址访问时,请求必须包含 Bearer Token:
curl -X POST http://your-server:52131/api \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{"command":"scan_sessions","payload":{}}'
Token 也可以通过查询参数传递:?token=YOUR_API_TOKEN
通过 API 本身或设置 → 高级 → API 密钥来管理 Token。
以相同的 { command, payload } 格式发送 JSON 消息。响应通过同一连接推送回来。
连接后,如需认证则发送 auth 消息:
{"command": "auth", "payload": {"token": "YOUR_API_TOKEN"}}
WebSocket 连接还会接收推送事件:
session-changed — 会话文件被修改时触发(包含 changed_paths 用于增量重扫)
sessions-diff — 增量会话列表更新
对于仅支持 HTTP 但需要实时更新的客户端:
GET http://127.0.0.1:52131/api/events
以 SSE 格式推送与 WebSocket 相同的事件。移动端 Web 前端将其作为 WebSocket 的替代方案。
| 命令 | 载荷 | 说明 |
|---|
scan_sessions | {} | 扫描并返回所有会话 |
read_session_file | { "path": "..." } | 读取会话的 JSONL 内容 |
rename_session | { "path": "...", "name": "..." } | 重命名会话 |
delete_session | { "path": "..." } | 优先将会话文件移动到回收站(Trash/Recycle Bin),仅在不可恢复删除不可用时才永久删除,并清理缓存记录 |
export_session | { "path": "...", "format": "html|markdown|json" } | 导出会话 |
| 命令 | 载荷 | 说明 |
|---|
search | { "query": "...", "role": "all|user|assistant|tool" } | 全文搜索 |
| 命令 | 载荷 | 说明 |
|---|
list_tags | {} | 列出所有标签 |
create_tag | { "name": "...", "color": "...", "parent_id": null } | 创建标签 |
update_tag | { "id": ..., "name": "...", "color": "..." } | 更新标签 |
delete_tag | { "id": ... } | 删除标签 |
assign_tag | { "session_path": "...", "tag_id": ... } | 为会话分配标签 |
remove_tag | { "session_path": "...", "tag_id": ... } | 移除会话标签 |
| 命令 | 载荷 | 说明 |
|---|
list_favorites | {} | 列出已收藏的会话路径 |
toggle_favorite | { "path": "..." } | 切换收藏状态 |
| 命令 | 载荷 | 说明 |
|---|
get_session_paths | {} | 获取已配置的会话目录 |
save_session_paths | { "paths": ["..."] } | 更新会话目录 |
get_all_session_dirs | {} | 获取所有已解析的扫描目录 |
get_config_bundle | {} | 获取完整配置包 |
save_config_bundle | { ... } | 保存配置包 |
list_config_versions | {} | 列出配置版本历史 |
| 命令 | 载荷 | 说明 |
|---|
list_tokens | {} | 列出 API Token |
create_token | { "name": "..." } | 创建新的 API Token |
revoke_token | { "id": ... } | 撤销 API Token |
| 命令 | 载荷 | 说明 |
|---|
get_session_stats | {} | 获取聚合的会话统计数据 |
| 命令 | 载荷 | 说明 |
|---|
load_model_config | {} | 加载当前模型配置 |
save_model_config | { ... } | 保存模型配置 |
import_model_config_from_path | { "path": "..." } | 从文件导入模型配置 |
export_model_config_to_path | { "path": "..." } | 导出模型配置到文件 |
list_model_config_backups | {} | 列出模型配置备份 |
restore_model_config_backup | { "backup_name": "..." } | 恢复备份 |
| 命令 | 载荷 | 说明 |
|---|
list_skills | {} | 列出 Pi 技能 |
list_prompts | {} | 列出 Pi 提示词 |
list_themes | {} | 列出 Pi 主题 |
| 命令 | 载荷 | 说明 |
|---|
get_pi_live_sessions | {} | 列出活跃的 Pi CLI 会话 |
get_pi_agent_entries | { "session_id": "..." } | 获取实时会话的缓存历史 |
send_pi_agent_rpc | { "session_id": "...", "prompt": "..." } | 向 Pi CLI 发送提示 |
| 命令 | 载荷 | 说明 |
|---|
create_terminal | { "cwd": "..." } | 创建新 PTY 会话 |
terminal_write | { "id": "...", "data": "..." } | 写入 PTY |
terminal_resize | { "id": "...", "cols": N, "rows": N } | 调整终端大小 |
terminal_close | { "id": "..." } | 关闭 PTY 会话 |
| 命令 | 载荷 | 说明 |
|---|
ping | {} | 健康检查(返回 { "pong": true }) |
curl -s -X POST http://127.0.0.1:52131/api \
-H "Content-Type: application/json" \
-d '{"command":"scan_sessions","payload":{}}' | jq '.data | length'
curl -s -X POST http://127.0.0.1:52131/api \
-H "Content-Type: application/json" \
-d '{"command":"search","payload":{"query":"authentication bug","role":"all"}}' | jq
wscat -c ws://127.0.0.1:52131/ws
> {"command":"scan_sessions","payload":{}}
< {"success":true,"data":[...]}
HTTP 端点还支持 GET /health,返回 200 OK——适用于负载均衡器的健康检查和监控。