/install uandai-ai
\r \r
Uandai (packaging + programmatic API)\r
\r Bundled docs version: 2026.06.14\r \r Use this skill for all Uandai automation: first-time setup, workspace packaging, upload, subscriptions, and invocation.\r \r
First-time setup (chat → persist)\r
\r When the user sends a configure Uandai message with settings, or env vars are missing:\r \r
- Parse from the user message (setup-only; do not repeat key in later work prompts):\r
\r
UANDAI_API_ORIGIN— API host without/api(e.g.https://api.uandai.aiorhttp://127.0.0.1:8000)\r \rAPP_SITE_URL— uandai.ai web app origin (no trailing slash; e.g.https://app.uandai.aiorhttp://127.0.0.1:8080)\r \rUANDAI_API_KEY— fulluand_live_…from uandai.ai app → Settings → API Keys\r \r API base URL (derived — do not store separately):{UANDAI_API_ORIGIN}/api(e.g.https://api.uandai.ai/api). Use this prefix for all programmatic paths (/v1/…).\r \r
- Install the full skill folder (
SKILL.md+references/) under~/.openclaw/skills/uandai-ai/(preferred) or\x3Cworkspace>/skills/uandai-ai/for local dev.\r \r - Merge into
~/.openclaw/openclaw.jsonunderskills.entries.uandai-ai:\r \r
{\r
skills: {\r
entries: {\r
"uandai-ai": {\r
enabled: true,\r
apiKey: "uand_live_…",\r
env: {\r
UANDAI_API_KEY: "uand_live_…",\r
UANDAI_API_ORIGIN: "https://api.uandai.ai",\r
APP_SITE_URL: "https://app.uandai.ai",\r
},\r
},\r
},\r
},\r
}\r
```\r
\r
4. Do **not** echo the full API key back. Tell the user to run `/new` or restart the gateway.\r
\r
5. Optional smoke test: exchange → `GET /v1/auth/me`.\r
\r
**Security:** Prefer a private OpenClaw session for setup messages that contain the key. After setup, operational prompts need no key and no doc URLs.\r
\r
## Before any Uandai action\r
\r
**Read bundled reference files in this skill directory first.** Do not rely on `web_fetch` unless the user explicitly pastes a Uandai doc URL in the current message.\r
\r
| Task | Read |\r
|------|------|\r
| Package workspace zip | `references/agent-packaging.md` |\r
| Exchange, upload, invoke | `references/programmatic-api.md` |\r
\r
Optional live refresh: if the user pastes `{UANDAI_API_ORIGIN}/docs/agent-packaging` or `/docs/programmatic-api` in chat, you may `web_fetch` that URL and prefer it for that session.\r
\r
Default prod origins: API `https://api.uandai.ai` (base `{ORIGIN}/api`); app `https://app.uandai.ai`\r
\r
## Required inputs before API calls\r
\r
Do **not** call Uandai business endpoints until all required inputs for that endpoint are known.\r
\r
| Source | Examples |\r
|--------|----------|\r
| Env / config (setup once) | `UANDAI_API_ORIGIN`, `APP_SITE_URL`, `UANDAI_API_KEY`, exchanged `access_token`; API base = `{UANDAI_API_ORIGIN}/api` |\r
| User message (minimal ZIP upload) | **`agent_name`**, **`description`**, packaged zip |\r
| User message (full ZIP upload) | `agent_name`, `description`, `subscription_price`, `default_model_identifier`, provider test values |\r
| User message (invoke) | `configs`, confirm `agent_id` / `revision_no` |\r
| Prior API response | `agent.id`, `revision_no` from upload `201` body (`{ "agent": { "id", "revision_no", … } }`); activations list for invoke |\r
\r
If any **user-sourced** field is missing or ambiguous:\r
\r
1. Ask the user in one concise message listing only missing fields.\r
2. **Do not** call the endpoint with placeholders, defaults, or guesses.\r
3. Confirm values briefly (never echo secrets).\r
\r
Per-endpoint prerequisite tables and checklists: `references/programmatic-api.md`.\r
\r
## Packaging (OpenClaw workspace → zip)\r
\r
Stable rules (full steps in `references/agent-packaging.md`):\r
\r
1. **Never** zip the live workspace root directly\r
2. **Staging:** copy to `output/\x3Cagent>-workspace/` with exclusions → validate → zip **staging contents only**\r
3. **Output:** `output/\x3Cagent-name>-workspace.zip`\r
4. **Uandai zip layout:**\r
\r
- Personality files (`SOUL.md`, `IDENTITY.md`, …) at **zip root**\r
- No extra parent wrapper folder in the archive\r
- `SKILL.md` only at `skills/\x3Cid>/SKILL.md`, `workspace/skills/\x3Cid>/SKILL.md`, or zip root\r
- Exclude `node_modules/`, `.env`, `logs/`, `memory/`, `.openclaw/`, `output/`, **`uandai-ai/`** — max **50MB**\r
\r
5. **Do not include this skill in the upload zip.** Install on the trainer machine at `~/.openclaw/skills/uandai-ai/` (full folder with `references/`). A copy under `\x3Cworkspace>/skills/uandai-ai/` is for local dev only — exclude it when packaging.\r
\r
6. Report: `📍 Path: MEDIA:\x3Cpath-to-zip>`\r
\r
Common failures: personality only under `workspace/`; nested wrapper folder; misplaced `skill/SKILL.md`; **`uandai-ai/` in zip** (`openclaw_bundle_platform_skill`).\r
\r
## API authentication (exchange required)\r
\r
Raw API keys work **only** on exchange:\r
\r
```http\r
POST /v1/auth/token\r
Authorization: Bearer $UANDAI_API_KEY\r
```\r
\r
Alternative on exchange only: send the raw key in header `X-Uandai-Api-Key` or JSON `{ "api_key": "…" }`.\r
\r
Response: `{ "access_token", "refresh_token", "user" }` — cache in session memory.\r
\r
**All other calls:** `Authorization: Bearer \x3Caccess_token>`\r
\r
On access expiry: `POST /v1/auth/refresh`. On refresh `401`: re-exchange if key still active; else user creates a new key in Settings.\r
\r
Do **not** send `$UANDAI_API_KEY` on upload, invoke, or list endpoints.\r
\r
## After upload (trainer)\r
\r
Upload `201` response shape: `{ "agent": { "id", "revision_no", "name", … } }`.\r
\r
Always return to the user:\r
\r
1. **`agent.id`** — numeric agent id from the response\r
2. **`revision_no`** — current revision from the same response (needed for proposal updates and invoke)\r
3. **Manage link** — `{APP_SITE_URL}/training-center/agents/manage/{agent.id}` where they set subscription price, invokable duration, provider LLM credentials, default model, and remaining marketplace fields\r
\r
Use `APP_SITE_URL` from skill env (setup above). Do not guess the app origin.\r
\r
## Workflows\r
\r
**Trainer — publish end-to-end (minimal ZIP):** setup → read `references/agent-packaging.md` → package zip → collect **`agent_name`** + **`description`** from user → exchange → `POST {UANDAI_API_ORIGIN}/api/v1/agents/upload` with `bundle` → return **`agent.id`** and **`revision_no`** from the upload response → share manage link `{APP_SITE_URL}/training-center/agents/manage/{agent.id}` (pricing, duration, provider LLM, model, invocation settings) → user completes there or via `POST /agents/{id}/proposals` → `PATCH …/proposals/{id}` `status=submitted` when ready\r
\r
**Trainer — full ZIP upload:** collect all ZIP prerequisites from user → exchange → `POST /v1/agents/upload` with `bundle` + `agent_name` + `description` + `subscription_price` + `default_model_identifier` + provider `config_data_type_json` / `test_values_json` (Ollama: `OLLAMA_KEY` + `OLLAMA_URL`) → return **`agent.id`**, **`revision_no`**, and the same manage link\r
\r
**Trainer — minimal ZIP only:** collect **`agent_name`** + **`description`** + packaged zip → exchange → `POST /v1/agents/upload` with `bundle` — do **not** block on price/model at upload time; do **not** use multipart `files` for the minimal path\r
\r
**Subscriber — discover:** exchange → `GET /v1/me/subscriptions` → `GET /v1/me/activations?invokable_only=true`\r
\r
**Subscriber — invoke:** exchange → `GET /v1/me/activations?invokable_only=true` → **collect `configs` from user** (and confirm `agent_id` / `revision_no`) → `POST /v1/executions` → poll `GET /v1/executions/{run_id}` until terminal\r
\r
## Safety\r
\r
- Never log or echo the full API key\r
- On `401`: refresh → re-exchange → key may be revoked\r
- On `402`: user needs credits\r
- API keys cannot create/revoke other keys (Settings / password JWT only)\r
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install uandai-ai - After installation, invoke the skill by name or use
/uandai-ai - Provide required inputs per the skill's parameter spec and get structured output
What is Uandai Ai?
Uandai platform — configure API access, package OpenClaw workspace zip, upload agents, list subscriptions, invoke runs. It is an AI Agent Skill for Claude Code / OpenClaw, with 54 downloads so far.
How do I install Uandai Ai?
Run "/install uandai-ai" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Uandai Ai free?
Yes, Uandai Ai is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Uandai Ai support?
Uandai Ai is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Uandai Ai?
It is built and maintained by Uandai (@uandai); the current version is v1.0.3.