> CRITICAL —— 跑命令前 MUST 先用 Read tool 读取 ../wangxiaobao-shared/SKILL.md(一份共享文档讲清安装 / 登录 / 选项目 / 错误码 / 输出协议等所有 xiaobao-cli 命令通用的前置约定)。
把当前账号下的「租户 + 项目」枚举出来让用户挑一个,确认后调
xiaobao-cli project use 写入 CLI 全局状态文件,供后续 命令 读取。
auth login --no-wait split-flow 完成 OAuth 登录(见 wangxiaobao-shared);token 没拿到时本 skill 不能继续.env 或任何文件——状态落地走 xiaobao-cli project use,由 CLI 统一管理权限和路径
跑命令 xiaobao-cli project list,可选 --keyword 对租户名/项目名做
包含模糊过滤(大小写不敏感):
--keyword:```bash
xiaobao-cli project list --keyword 盛世禧悦
```
收敛后通常只剩 1-2 条,省去让用户从一长串里挑
--keyword,拉全量--keyword 重查返回结构:
{
"projects": [
{ "tenantId": "1234", "tenantName": "示例租户A", "projectId": "9001", "projectName": "示例项目甲" },
{ "tenantId": "1234", "tenantName": "示例租户A", "projectId": "9002", "projectName": "示例项目乙" },
{ "tenantId": "5678", "tenantName": "示例租户B", "projectId": "9101", "projectName": "示例项目丙" }
],
"count": 3
}
如果 count == 0:
--keyword → 是关键字没命中,不是没权限。提示用户换更短的关键字、或不带 keyword 看全量;不要直接说"没有项目"
--keyword → 账号确实没有可访问的项目,结束如果 命令 报错(401 / token 过期等),先走 auth login --no-wait --force split-flow 重新登录,再重试一次。
按"租户 → 项目"分组渲染,编号从 1 开始:
[示例租户A]
1. 示例项目甲 (projectId=9001)
2. 示例项目乙 (projectId=9002)
[示例租户B]
3. 示例项目丙 (projectId=9101)
租户/项目信息」并请用户确认 y/n**,确认后才跑 xiaobao-cli project use
xiaobao-cli project use 落地xiaobao-cli project use \
--tenant-id "<选中条目的 tenantId>" \
--tenant-name "<选中条目的 tenantName>" \
--project-id "<选中条目的 projectId>" \
--project-name "<选中条目的 projectName>"
4 个 flag 都是必填。成功 stdout 返回:
{
"success": true,
"activeProject": {
"tenantId": "1234",
"tenantName": "示例租户A",
"projectId": "9001",
"projectName": "示例项目甲",
"updatedAt": "2026-05-13T..."
},
"message": "已切换到「示例租户A / 示例项目甲」"
}
状态写到 ~/.xiaobao/active-project.json,权限 0600。
成功后回复用户(中文):
✅ 已切换到「示例租户A / 示例项目甲」
租户 ID: 1234
项目 ID: 9001
状态保存在 ~/.xiaobao/active-project.json
下一步可以:
- 查录音:让我帮你跑 wangxiaobao-audio-query / wangxiaobao-audio-wiki skill
- 快问 AI:让我帮你跑 wangxiaobao-quick-qa skill
| 场景 | 命令 |
|---|---|
| --- | --- |
| 看自己有哪些项目可选 | xiaobao-cli project list (必要时带 --keyword 收敛) |
| 查当前激活的是哪个项目 | xiaobao-cli project current |
| 切到新项目 | 走「流程」三步 |
project current 直接读 ~/.xiaobao/active-project.json(fallback
~/.openclaw/state/wangxiaobao/active-project.json),返回当前激活的
tenant/project + updatedAt。如果用户问"现在是哪个项目""当前激活的是啥",
优先用 project current,不要全量 project list 再让用户辨认。
没激活过时 project current 返 NO_ACTIVE_PROJECT 错(同时 stdout 含
hint 字段告诉怎么激活)。
| 错误现象 | 根本原因 | 解决方案 |
|---|---|---|
| --- | --- | --- |
xiaobao-cli project list 返回 401 / token 过期 | 没登录或 refresh 失败 | 走 auth login --no-wait --force split-flow 重登 |
count == 0(没带 keyword) | 账号无任何租户/项目权限 | 让用户找管理员加权限,本 skill 不继续 |
count == 0(带了 keyword) | 关键字没匹配到任何项目 | 换更短关键字 / 不带 keyword 看全量,别直接说"没项目" |
| 用户输入的编号超出范围 | 选错了 | 重新提示当前可选编号区间 |
其他 命令 仍返回 NO_ACTIVE_PROJECT | 没跑 wangxiaobao-switch-project skill 落地 | 检查 ~/.xiaobao/active-project.json 是否存在,重新走本 skill |
共 3 个版本