Medo App Builder
Create, modify, generate, and deploy websites, web apps, dashboards, SaaS products, internal tools, interactive web pages, Weixin mini program , games on the Baidu Medo platform using natural-language instructions.
安装 / 下载方式
TotalClaw CLI推荐
totalclaw install clawskills:seiriosplus~medo-app-buildercURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/clawskills%3Aseiriosplus~medo-app-builder/file -o medo-app-builder.mdGit 仓库获取源码
git clone https://github.com/openclaw/skills/commit/95794e0687d96091b8aef5981b20a0f4e5b4efeb# Medo App Builder
Medo is a **chat-driven full-stack application builder**.
Official website: https://www.medo.dev
Users describe what they want in natural language and Medo generates a **production-ready web product**, including:
- frontend UI
- backend services
- database schema
- integrations
- deployable hosting
Typical outputs include:
- websites
- web applications
- dashboards
- SaaS products
- admin panels
- internal tools
- landing pages
- interactive web pages
- browser games and mini games
This skill enables AI agents to interact with the **Medo platform** to create, iterate, generate, and deploy applications.
All platform operations must be executed through the packaged CLI script:
```bash
python scripts/medo_api.py <command> [options]
```
Do **not** call platform APIs directly. Always use the CLI commands provided by this skill.
---
# When to Use This Skill
Use this skill whenever the user wants to:
* create a **website**
* create a **webpage**
* build a **web application**
* build a **dashboard**
* create a **SaaS product**
* build an **admin panel**
* build an **internal tool**
* create a **landing page**
* build an **interactive web page**
* create a **browser game**
* create a **mini game**
* generate an **MVP web product**
* modify an existing **Medo project**
* publish or deploy a **Medo application**
Do **not** use this skill for unrelated programming tasks.
---
# Routing Keywords
Trigger this skill if the request includes concepts such as:
* build a website
* create a webpage
* build a web app
* create a SaaS
* build a dashboard
* create an admin panel
* build an internal tool
* create a landing page
* build a browser game
* create a mini game
* generate a web product
* make a snake game webpage
* build a todo web app
* create a blog site
---
# Example Requests
Examples that should route to this skill:
* "Create a todo list web app"
* "Build a personal blog website"
* "Make a dashboard for sales analytics"
* "Create a SaaS landing page"
* "Build an admin panel"
* "Write a snake game webpage"
* "Create a browser game"
* "Build a mini web game"
* "Modify my Medo project"
* "Publish this Medo app"
---
# Stateless Execution Model
The CLI script is **stateless**.
It does not store workflow state between calls.
Application workflow state is maintained by the Medo platform and must be inferred from:
* `appId`
* `conversationId`
* application detail
* conversation trajectory events
Agents must pass the appropriate identifiers when continuing conversations or modifying applications.
---
# Application Lifecycle Rules
Medo applications follow a strict lifecycle.
Agents must follow these rules.
---
## Initial Creation
For a new application:
1. Start with a `chat` request describing the product.
2. The application enters the **PRD refinement stage**.
3. Continue chatting to refine the specification.
4. When the trajectory contains a **Generate App** button (`type":"button"` and `event":{"name":"generateApp"}` in `result.artifact.parts[].data.actions[]`), trigger application generation using `generate-app`.
Generation is required **only once** during the initial creation.
---
## Multi-Round Modification
After an application has already been generated:
* **Do not call `generate-app` again.**
* Continue using `chat` with the same `appId` and `conversationId`.
Normal chat messages modify the existing application.
---
## Publishing
Publishing is allowed **after the application has been generated at least once**.
Rules:
* Publishing does **not require another generation step**
* Publishing may happen anytime after the first generation
* Publishing must be followed by **status polling** (or use `--wait` flag)
Typical deployment flow:
```
publish → publish-status polling
```
Or use the `--wait` flag to auto-poll:
```
publish --wait
```
Stop polling when the status becomes:
* `SUCCESS`
* `FAILED`
---
# Application URLs
Medo provides two types of URLs during the lifecycle.
---
## Project Preview (Editor / Development)
After the application is created, the project can be accessed at:
```
https://www.medo.dev/projects/<app_id>
```
This URL can be shared with the user for:
* viewing the project
* editing the application
* previewing the generated result
The preview URL becomes available once an `appId` is created.
---
## Production Deployment URL
After publishing succeeds, the application is accessible at:
```
https://<app_id>.appmedo.com
```
This is the **public production URL** of the deployed application.
Only return this URL after publishing completes successfully.
---
# Standard Workflow
## Create New Application
```
chat → PRD refinement → generate-app → publish
```
---
## Modify Existing Generated Application
```
chat → chat → chat
```
(no additional generation step required)
---
## Deploy Application
```
publish → publish-status polling
```
Or:
```
publish --wait
```
---
# Available Commands
All commands are executed via the CLI script.
**Important**: Always set the `MEDO_API_KEY` environment variable before running commands.
```bash
export MEDO_API_KEY="your_api_key_here"
```
---
## list-apps
List all applications belonging to the authenticated user.
**Usage:**
```bash
python scripts/medo_api.py list-apps [--brief]
```
**Optional Parameters:**
- `--brief`: Output only key fields: `appId`, `name`, `type`, `appFocus`, `host`, `updatedAt`. Recommended for agents to reduce token usage.
- `--name NAME`: Filter by app name (substring)
- `--page PAGE`: Page number (default: 1)
- `--size SIZE`: Page size (default: 12)
**Example:**
```bash
export MEDO_API_KEY="sk_xxxxx"
# Brief mode (recommended for agents)
python scripts/medo_api.py list-apps --brief
# Full mode
python scripts/medo_api.py list-apps
```
**Returns:** JSON array of applications with `appId`, `name`, `type`, etc.
---
## app-detail
Get detailed information about a specific application. **Automatically injects `conversationId`** into the response by default — no need to call `get-context-id` separately.
**Usage:**
```bash
python scripts/medo_api.py app-detail --app-id <app_id> [--no-context]
```
**Required Parameters:**
- `--app-id APP_ID`: Application ID
**Optional Parameters:**
- `--no-context`: Skip auto-fetching `conversationId` from trajectory (faster, but response will not contain `conversationId`)
**Example:**
```bash
export MEDO_API_KEY="sk_xxxxx"
python scripts/medo_api.py app-detail --app-id app-abc123xyz
```
**Returns:** JSON object with application details, configuration, and status. `data.conversationId` is automatically populated.
---
## get-context-id
Recover the `conversationId` for an existing app by reading its trajectory. Useful when the `conversationId` has been lost after a session reset.
**Usage:**
```bash
python scripts/medo_api.py get-context-id --app-id <app_id>
```
**Required Parameters:**
- `--app-id APP_ID`: Application ID
**Optional Parameters:**
- `--fetch-timeout SECONDS`: Request timeout in seconds (default: 10)
**Example:**
```bash
export MEDO_API_KEY="sk_xxxxx"
python scripts/medo_api.py get-context-id --app-id app-abc123xyz
```
**Returns:** `{"appId": "app-abc123xyz", "conversationId": "conv-def456uvw"}`
**Use Cases:**
- Need to modify a previously created app in a new session but `conversationId` is lost
- Use the returned `conversationId` with `chat --app-id --context-id` to resume modification
---
## conversation-history
Show a human/agent-readable summary of past interactions for an app. More convenient than `trajectory` or `fetch-trajectory` for quickly understanding what happened in previous sessions.
**Usage:**
```bash
python scripts/medo_api.py conversation-history --app-id <app_id> [options]
```
**Required Parameters:**
- `--app-id APP_ID`: Application ID
**Optional Parameters:**
- `--full`: Show full content instead of truncated summaries (default: truncate at 200 chars)
- `--limit N`: Only show the last N conversation tur