Back to skills
SKILL.md
miaoda
ASecurity秒哒(Miaoda)应用搭建平台交互命令,支持通过自然语言对话创建、生成、修改、发布网页/Web应用/小程序/移动App等。
- 279 stars
- 0 votes
- 0 copies
- 7 views
- Added September 8, 2026
Works with
Security analysis
100/100npx -y skills add infometa/workbuddyskills --skill skills --agent claude-codeAre you the author of miaoda?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/infometa-miaoda)---
name: miaoda
description: 秒哒(Miaoda)应用搭建平台交互命令,支持通过自然语言对话创建、生成、修改、发布网页/Web应用/小程序/移动App等。
version: 1.0.0
author: miaoda
---
# miaoda-cli
操作秒哒(Miaoda)平台资源的 CLI 工具。秒哒是**对话式全栈应用搭建平台**,通过自然语言描述即可生成包含前端界面、后端服务、数据库结构在内的可部署产品。
## 登录认证
```bash
miaoda login # 设备授权登录流程;--no-browser 跳过自动打开浏览器
miaoda status # 查看登录状态,token 过期时自动刷新
miaoda logout # 删除本地登录凭证
```
## 快捷命令
应用管理:
- `miaoda list-apps --brief` — 列出当前用户的所有应用(精简字段,推荐)
- `miaoda app-detail --app-id <id>` — 获取应用详情,自动附带 `conversationId`
- `miaoda get-context-id --app-id <id>` — 找回丢失的 `conversationId`
- `miaoda conversation-history --app-id <id> --limit 3` — 查看最近的对话历史摘要
创建与修改:
- `miaoda chat --text '创建一个待办事项管理应用'` — 新建应用,进入 PRD 澄清阶段
- `miaoda chat --text '把按钮颜色改成蓝色' --app-id <id> --context-id <id>` — 修改已生成的应用
- `miaoda generate-app --app-id <id> --context-id <id> --watch` — 确认生成应用(仅首次创建时调用一次)
- `miaoda trajectory --app-id <id>` — 轮询对话/生成进度事件
发布部署:
- `miaoda publish --app-id <id> --wait` — 发布到生产环境并等待结果
- `miaoda publish-status --release-id <id>` — 查询指定发布任务的状态
## 输出与解析
除持续事件流命令外,成功结果输出为单个 JSON 对象到标准输出(stdout)。`trajectory`、`chat`(默认流式)与 `generate-app --watch` 则按事件逐行输出 JSON(JSON Lines);应逐行解析,不能假定整个 stdout 是一个 JSON 对象。诊断与错误信息写入标准错误(stderr),不得用 stderr 中的文本作为成功数据解析。
### `list-apps --brief`
返回平台响应对象,应用数组位于 `data.items`(部分平台响应兼容为 `data.list`)。`--brief` 会将每个应用裁剪为以下字段:
```json
{
"status": 0,
"data": {
"items": [
{
"appId": "app_123",
"name": "待办事项管理",
"type": "WEB",
"appFocus": "DESIGNING",
"host": "https://app_123.appmiaoda.com",
"updatedAt": "2026-08-07T09:30:00Z"
}
]
}
}
```
- `appId`:后续命令的应用标识。
- `name`、`type`:应用名称与类型;可为空或随平台扩展。
- `appFocus`:应用生命周期状态,发布前必须使用它做预检。
- `host`:已发布时的生产地址;为空时表示尚无可分享的生产地址。
- `updatedAt`:平台返回的最后更新时间。
### `app-detail`
成功时返回 `{ "status": 0, "data": { ... } }`。CLI 会清理部分内部字段,并默认尽力从 trajectory 补充 `data.conversationId`;补充失败不影响详情查询,因此调用方应接受该字段缺失,并可改用 `get-context-id` 重试。
```json
{
"status": 0,
"data": {
"appId": "app_123",
"name": "待办事项管理",
"appFocus": "DESIGNING",
"conversationId": "conv_456",
"host": "https://app_123.appmiaoda.com"
}
}
```
- `data.appId`:应用标识,应与请求的 `--app-id` 一致。
- `data.conversationId`:修改既有应用时与 `appId` 配对传给 `chat` 或 `generate-app`。
- `data.appFocus`:发布资格依据。仅 `DESIGNING`、`RELEASED`、`RELEASE_FAILED` 可继续发布;`NOT_GENERATE`、`WAITING`、`UNDER_CREATING`、`CREATE_FAILED` 应停止发布并根据状态继续生成、等待或处理失败。
- `data.host`:生产地址,仅在已发布且地址可用时对外分享。
### `trajectory`
每个事件单独占一行 JSON。事件 ID 位于 `result.metadata.eventId`,可作为下一次查询的 `--last-event-id`;终止状态为 `result.status.state` 为 `completed`、`input-required`、`failed`,或 `result.final` 为 `true`。PRD 就绪事件中的生成按钮结构如下:
```json
{
"result": {
"metadata": { "eventId": 42 },
"status": { "state": "input-required" },
"artifact": {
"parts": [
{
"data": {
"type": "prdAgentAction",
"is_generated": false,
"appInfo": { "requirementType": "WEB" },
"actions": [{ "event": { "name": "generateApp" } }]
}
}
]
}
}
}
```
仅当任意 `result.artifact.parts[].data.actions[]` 中存在 `event.name = "generateApp"`,且 `is_generated` 不为 `true` 时,才调用一次 `generate-app`。普通任务可能不会产生该事件。
### `publish-status`
成功时返回 `{ "status": 0, "data": { "status": "..." } }`,其中 `data.status` 的终态为 `SUCCESS` 或 `FAILED`,进行中为 `PROCESSING`;字段缺失或未知值应按 `UNKNOWN` 处理并继续谨慎轮询或人工确认。
```json
{
"status": 0,
"data": {
"releaseId": "release_789",
"status": "SUCCESS"
}
}
```
`publish --wait` 会先输出 `{ "releaseId": "...", "status": "PROCESSING" }`,随后持续输出状态行;遇到 `SUCCESS` 成功结束,遇到 `FAILED` 以错误退出。
## 错误处理与降级
数据命令成功时退出码为 `0`;认证失败、参数校验失败、HTTP/API 错误、请求超时和发布失败均为退出码 `1`。错误信息以 `Error: ...` 或认证提示写入 stderr。`miaoda status` 仅用于交互式检查,未登录或待授权过期时会提示但仍可能以退出码 `0` 结束,自动化流程应在执行数据命令时再以退出码判断认证是否可用。
- **`--app-id` 不存在或无访问权限**:命令以 `1` 退出,stderr 通常包含 `HTTP 404`、`HTTP 403` 或平台 API 错误。不要继续执行 `trajectory`、`chat` 或 `publish`;先执行 `list-apps --brief` 确认可访问的 `appId`。
- **发布前置条件不满足**:先读取 `app-detail` 的 `data.appFocus`。若不在 `DESIGNING`、`RELEASED`、`RELEASE_FAILED`,不要调用 `publish`;对 `NOT_GENERATE`/`WAITING`/`UNDER_CREATING` 等状态,继续等待 trajectory 或按生成流程处理;`CREATE_FAILED` 时先定位生成失败原因。平台拒绝发布时同样以 `1` 退出。
- **token 已过期或刷新失败**:数据命令以 `1` 退出,stderr 会包含 `Token 已过期,刷新失败`、`Token 已过期且无 refresh_token` 或 `未找到有效的登录凭证`,并提示执行 `miaoda login`。重新授权后,从失败步骤重新查询状态;不要假定未完成的发布或生成已经成功。
- **请求超时或网络/API 异常**:以 `1` 退出,可能显示 `Error: request timed out`、`HTTP <status>` 或 `API error (status=<n>)`。保留已知的 `appId`、`conversationId`、`releaseId` 或最后 `eventId`,再用 `app-detail`、`publish-status` 或 `trajectory --last-event-id <n>` 查询,避免重复触发生成或发布。
- **`--app-id` 未配对 `--context-id`**:修改类 `chat`/`generate-app` 命令以 `1` 退出,并明确提示平台会创建新应用。使用 `miaoda get-context-id --app-id <id>` 恢复会话 ID 后重试。
注意事项:
- **`--app-id` 与 `--context-id` 必须成对使用**:仅传 `--app-id` 不传 `--context-id` 不会修改已有应用,平台会静默创建新应用;CLI 会在此情况下报错以防误建。
- **generate-app 仅调用一次**:只在 trajectory 中出现 `event.name = "generateApp"` 按钮(PRD 就绪信号)时调用,且只在首次创建时调用一次。后续修改统一用 `chat`。
- **发布前置条件**:需先检查 `app-detail` 返回的 `data.appFocus`,仅当其为 `DESIGNING`、`RELEASED`、`RELEASE_FAILED` 时才能发布。
- **通用任务无需生成/发布**:报告、PPT、分析文档等任务在 `chat` 阶段直接完成(`needGenerateApp: false`),不涉及 `generate-app` 与 `publish`。
- **URL 使用规范**:编辑器地址 `https://www.miaoda.cn/projects/<app_id>` 仅供本人预览编辑,禁止对外分享;对外分享必须使用发布后的生产地址 `https://<app_id>.appmiaoda.com`。
- **单引号传参**:传递多行文本参数时,使用单引号可防止命令注入攻击,并减少不必要的转义。
## 更多 API
1. `miaoda --help` 查看所有命令
2. `miaoda <command> --help` 查看命令参数详情
Attribution
Comments
Loading comments…