@yoooclaw/cli
v0.0.3
Published
yoooclaw 独立 CLI:本地守护进程接收手机通知、Relay 隧道、灯效规则评估,Agent-Native
Readme
@yoooclaw/cli
yoooclaw 独立 CLI 工具 —— 自带后台守护进程(daemon),不依赖 openclaw 客户端在线。
设计对齐飞书 lark-cli:Service-oriented 命令树、三层命令体系(Shortcuts / Service Commands / Raw API)、统一 --format、Agent-Native。
需求详见 docs/features/prd-yoooclaw-standalone-cli.md。
状态:脚手架阶段。 命令树、全局 flags、统一输出 / 错误层、profile 解析、目录布局已贯通; 各 service 的真实逻辑按后续 imp 文档逐个落地,当前 action 返回
YOOOCLAW_NOT_IMPLEMENTED占位。
安装与命令
免安装(npx,每次拉取最新版):
npx @yoooclaw/cli --help # 主命令
npx @yoooclaw/cli notification +today全局安装(提供 yoooclaw / yc 两个命令):
npm i -g @yoooclaw/cli
yoooclaw --help # 主命令
yc --help # 等价短 alias
npx @yoooclaw/cli始终调用yoooclaw入口(yoooclaw与yc指向同一可执行文件,npx 不会歧义)。 需要 Node>=22.12.0。
命令体系
- Shortcuts(
+前缀):yoooclaw notification +today、yoooclaw light +blink… - Service commands:
yoooclaw <service> <subcommand>,service 见yoooclaw --help。 - Raw API:
yoooclaw api <METHOD> <PATH> [--data ...]直达 daemon HTTP 端点。
全局 flags
| flag | 说明 |
| ------------------ | ------------------------------------------------- |
| --profile <name> | 切换 profile(默认 default) |
| --format <fmt> | json\|pretty\|table\|ndjson(TTY 默认 pretty,管道默认 json) |
| --quiet | 抑制进度日志,只输出最终结果 |
| --no-color | 关闭终端颜色 |
输出契约
成功与失败共用同一通道(stdout)与可预测结构;失败额外以非零退出码表达:
{ "ok": false, "error": { "code": "YOOOCLAW_NOT_IMPLEMENTED", "message": "...", "hint": "..." } }错误码统一前缀 YOOOCLAW_*(见 src/errors.ts)。
Agent Skill
随包发布 skills/ 下的 SKILL.md(流式查通知、从 stdin 建灯效规则、隧道排查),教 Agent 直接调 yoooclaw 命令。在 openclaw 插件里这些 Skill 由 openclaw.plugin.json 自动注册;独立 CLI 形态下需手动安装到 Agent 的 skills 发现目录:
yoooclaw skills list # 列出随包发布的内置 Skill
yoooclaw skills install # 软链到 ~/.claude/skills(升级后随包自动更新)
yoooclaw skills install --copy # 复制而非软链(Windows 无管理员权限时用)
yoooclaw skills install --target <dir> --force默认软链而非复制:yoooclaw update self 升级 CLI 后,Skill 内容自动跟随新版本。安装后重启 Agent 会话即可被发现。
数据目录
~/.yoooclaw/(可用 YOOOCLAW_HOME 覆盖,便于测试 / 多实例)。布局见 src/paths.ts 与 PRD「数据模型」。
开发
bun run build # bun 打包 dist/bin.cjs + dist/index.cjs,tsc 出类型
bun run typecheck
bun run test
node dist/bin.cjs --help源码结构
| 文件 | 职责 |
| ---------------------------------------- | ------------------------------------------ |
| src/bin.ts | 可执行入口(package.json#bin) |
| src/index.ts | 程序化入口 run(argv) + 核心模块导出 |
| src/command-tree.ts | 命令树声明(单一事实来源) |
| src/program.ts | 据命令树构建 commander 程序 + action 包装 |
| src/context.ts | 全局 flags → CliContext,profile 解析 |
| src/output/format.ts | --format 统一序列化 + 错误 schema |
| src/errors.ts | YOOOCLAW_* 错误码 + YoooclawError |
| src/paths.ts | ~/.yoooclaw/ 目录布局解析 |
| src/commands/skills.ts | 内置 Skill 列举 / 安装到 Agent skills 目录 |
