用途:该技能用于设计和构建“智能体优先、人类次之”的命令行工具。核心是让每个命令返回结构化 JSON,便于智能体解析、执行并据此决定下一步,人类也可通过 jq 管道处理。
主要能力:1)JSON 唯一输出:无纯文本、无表格、无颜色,也不提供 --json 或 --human 开关。2)HATEOAS:每个响应包含 next_actions 数组,用 POSIX/docopt 占位符语法(<必填>、[--flag <value>])描述可执行命令模板,并可通过 params 提供 value、default、enum、required 等元信息。3)自文档化命令树:根命令无参数时返回完整命令树 JSON,--help 由 Effect CLI 依据 Command.withDescription() 自动生成,每个子命令都需带描述。4)上下文保护输出:默认精简,大输出自动截断并给出完整输出文件路径,避免撑爆智能体上下文。5)错误建议修复:失败响应含 fix 字段,用自然语言说明如何处理。
响应信封:成功为 { ok: true, command, result, next_actions };错误为 { ok: false, command, error: { message, code }, fix, next_actions }。
流式协议(NDJSON,ADR-0058):适用于 watch、follow、tail 等时间性操作,由命令语义触发而非全局 --stream。每行是带 type 判别符的 JSON,类型包括 start、step、progress、log、event、result、error,最后一行始终是标准 HATEOAS 信封。可用 emit()、emitResult()、emitError() 输出,通过 Redis 订阅(streamFromRedis)接入网关事件,并需处理 SIGINT/SIGTERM、设置连接与命令超时、结束时清理订阅。
实现与用法:框架为 Effect CLI(@effect/cli),参考实现位于 joelclaw 的 packages/cli/。构建命令:bun build src/cli.ts --compile --outfile joelclaw,然后 cp joelclaw ~/.bun/bin/。新增命令需返回标准信封、设置描述、加入根命令子命令与命令树、重建安装。
适用场景:需要被智能体调用和编排的运维、流水线、事件发送、日志查看等 CLI 工具。
限制:资料未提供具体收费、价格、平台支持范围与效果数据;OAuth 设备流认证模式在 TODO 中,尚未提供实现细节。