@omni-api/cli
v0.0.2
Published
OmniAPI: 开发时 CLI(list / doctor / openapi)
Downloads
261
Readme
@omni/cli
OmniAPI 开发期 CLI:让你一眼看懂业务暴露面 + 自动发现配置漏洞 + 一键导出文档。
安装
pnpm add -D @omni/cli业务方接入
在 package.json:
{
"scripts": {
"omni": "omni --app ./dist/app.js"
}
}./dist/app.js 是构建产物,需要 export { registry } 或 export default registry。
命令
omni list
列出所有 procedure 的暴露状态:
Procedures (6):
NAME HTTP MCP DANGER SUMMARY
──────────────────────────────────────────────────────────────────────────────────────────
user.get yes yes read 按 ID 查询用户
user.profile yes yes read 当前用户信息
order.create yes yes write 创建订单
order.get yes yes read 查询订单
order.list yes yes read 我的订单列表
order.cancel yes yes destructive 取消订单
Summary: 6 via HTTP, 6 via MCP (stdio).
Destructive procedures hidden from MCP HTTP transport: 1 (set meta.mcp.allowRemote=true).omni doctor
静态检查,发现常见漏洞:
omni doctor: 1 error(s), 2 warning(s).
[ERROR] admin.delete_user: description is empty (required for OpenAPI / MCP)
[warn] order.cancel: destructive tool will be HIDDEN from MCP HTTP transport by default…
[warn] admin.delete_user: name suggests a mutation but meta.mcp.dangerLevel is unset退出码:error 数 > 0 → 1,否则 0(可作 CI gate)。
omni openapi
pnpm omni openapi # 打到 stdout
pnpm omni openapi --out openapi.json # 写文件
pnpm omni openapi --title "My API" # 自定义元信息设计原则
- 零大依赖:手写 50 行 argv parser,不引入 commander / yargs
- 可作库使用:所有命令都导出函数(
renderList/runDoctor/runCli),方便嵌入业务自有运维工具 - CI 友好:退出码语义清晰,doctor 有 error 时返回 1
