원클릭으로
aohp-uda
Generate personalized HTML apps via UDAGen on AOHP — idea-only or with structured input (requirements, OpenAPI, schemas).
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Generate personalized HTML apps via UDAGen on AOHP — idea-only or with structured input (requirements, OpenAPI, schemas).
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
List installed packages and start, stop, or inspect apps on a logical display via the aohp CLI.
List, create, destroy, and focus AOHP virtual displays via the aohp CLI (no MediaProjection).
Register, drain, and stop AOHP Toast/notification event streams via the aohp CLI.
Locate recent files, show paths in the AOHP File Bridge UI, and open Android sharing via the aohp CLI.
Screenshots and UI hierarchy (windows/nodes) on a logical display via the aohp CLI.
Create, run commands in, reset, or manage services inside AOHP Linux chroot sandboxes via the aohp CLI.
SOC 직업 분류 기준
| name | aohp-uda |
| description | Generate personalized HTML apps via UDAGen on AOHP — idea-only or with structured input (requirements, OpenAPI, schemas). |
| metadata | {"openclaw":{"emoji":"✨","requires":{"bins":["aohp"]},"os":["linux"]}} |
Use this skill when the user wants a personalized mini-app (UDA / PUI) generated on the AOHP device.
Pair with uda-app after generation completes (hasApp: true) to install, pin, and launch.
aohp uda config-set \
--api-key "$UDA_API_KEY" \
--model "doubao-seed-2-0-pro-260215" \
--base-url "https://ark.cn-beijing.volces.com/api/v3" \
--provider openai
uda Alpine container is created automatically on first run.No custom input files. UDAGen auto-drafts mock API docs from --idea.
aohp uda generate \
--app-name "Google Search" \
--idea "Google Search mini-app: search arbitrary keywords on a single mobile page; show Google results after submit"
Note the returned jobId, then poll aohp uda status -j <jobId> until status: completed and hasApp: true.
Stage per-job input before uda.generate. When /opt/udagen/workspace/<jobId>/input/ contains supported files, generation uses that tree instead of the empty template.
1. Allocate input scaffold
aohp uda input init
# → { "jobId": "job-1710000000000", "containerInputDir": "...", "hostInputDir": "..." }
2. Write input files (repeat as needed)
JOB=job-1710000000000
aohp uda input write -j "$JOB" --path requirements/idea.md --content "$(cat <<'EOF'
# Google Search App
Single search field; submit runs a Google search for arbitrary keywords.
Mobile-first; pin-friendly launcher name: Google Search.
EOF
)"
aohp uda input write -j "$JOB" --path app/manifest.json --content '{
"name": "Google Search",
"short_name": "Search",
"theme_color": "#4285F4",
"background_color": "#FFFFFF",
"description": "Search Google with any keyword"
}'
aohp uda input write -j "$JOB" --path mock_docs/openapi.yaml --content "$(cat <<'EOF'
openapi: 3.0.3
info:
title: Google Search Proxy
version: 1.0.0
paths:
/search:
get:
summary: Search by keyword
parameters:
- name: q
in: query
required: true
schema: { type: string }
responses:
"200":
description: Redirect or embed URL for Google results
EOF
)"
3. Generate with the same job id
aohp uda generate -j "$JOB" \
--app-name "Google Search" \
--idea "Google Search: arbitrary keywords"
Alternative: edit files via sandbox:
aohp sandbox exec uda -- ls /opt/udagen/workspace/$JOB/input/
Host bind path: /data/aohp/shared/uda/<jobId>/input/
aohp uda status -j <jobId> # poll until hasApp
aohp uda install -j <jobId> --pin
aohp uda launch -j <jobId>
See skill uda-app for install/launch details.
Supported extensions: .md, .txt, .json, .yaml, .yml, .csv, .tsv
| Path | Role |
|---|---|
requirements/*.md | Product brief / user stories |
app/manifest.json | Launcher name, theme, icon hint |
mock_docs/openapi.yaml | API contract for mock backend |
mock_docs/assumptions.json | Personas, layout, action mapping |
mock_docs/schemas/*.json | Entity JSON Schemas |
Baked template (device): /opt/udagen/template-input/
Per-job input: /opt/udagen/workspace/<jobId>/input/
| CLI | JSON-RPC |
|---|---|
aohp uda config-get | uda.config.get |
aohp uda config-set | uda.config.set |
aohp uda input init | uda.input.init |
aohp uda input write | uda.input.write |
aohp uda generate | uda.generate |
aohp uda status | uda.status |
aohp uda list | uda.list |
aohp uda delete | uda.delete |
aohp uda preview | uda.preview |
uda.generate optional params: jobId, appName, idea, inputDir (container path override).
/data/aohp/shared/uda/<jobId>/ (container: /opt/udagen/workspace/<jobId>/):
app/index.html — WebView appmock/server.py — local API on 127.0.0.1:8787prd.json, design_spec.json, udagen.log — pipeline artifactsuda; poll uda.status (minutes).uda config-set.