aohp-os/aohp/aohp-uda

Claude Code and agent skill by aohp-os/aohp

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Generate personalized HTML apps via UDAGen on AOHP — idea-only or with structured input (requirements, OpenAPI, schemas).

Install

npx vskill@latest install aohp-os/aohp/aohp-uda

SKILL.md

AOHP User Defined App (UDAGen)

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.

Prerequisites

  1. LLM credentials on device (not baked into the image):

``bash 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 ``

  1. The uda Alpine container is created automatically on first run.

Choose a workflow

A. Idea-only (fastest)

No custom input files. UDAGen auto-drafts mock API docs from --idea.

bash
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.

B. Structured input (richer apps)

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

bash
aohp uda input init
# → { "jobId": "job-1710000000000", "containerInputDir": "...", "hostInputDir": "..." }

2. Write input files (repeat as needed)

bash
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

bash
aohp uda generate -j "$JOB" \
--app-name "Google Search" \
--idea "Google Search: arbitrary keywords"

Alternative: edit files via sandbox:

bash
aohp sandbox exec uda -- ls /opt/udagen/workspace/$JOB/input/

Host bind path: /data/aohp/shared/uda/<jobId>/input/

After generation

bash
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.

Input bundle reference

Supported extensions: .md, .txt, .json, .yaml, .yml, .csv, .tsv

PathRole
requirements/*.mdProduct brief / user stories
app/manifest.jsonLauncher name, theme, icon hint
mock_docs/openapi.yamlAPI contract for mock backend
mock_docs/assumptions.jsonPersonas, layout, action mapping
mock_docs/schemas/*.jsonEntity JSON Schemas

Baked template (device): /opt/udagen/template-input/ Per-job input: /opt/udagen/workspace/<jobId>/input/

RPC mapping

CLIJSON-RPC
aohp uda config-getuda.config.get
aohp uda config-setuda.config.set
aohp uda input inituda.input.init
aohp uda input writeuda.input.write
aohp uda generateuda.generate
aohp uda statusuda.status
aohp uda listuda.list
aohp uda deleteuda.delete
aohp uda previewuda.preview

uda.generate optional params: jobId, appName, idea, inputDir (container path override).

Output layout

/data/aohp/shared/uda/<jobId>/ (container: /opt/udagen/workspace/<jobId>/):

  • app/index.html — WebView app
  • mock/server.py — local API on 127.0.0.1:8787
  • prd.json, design_spec.json, udagen.log — pipeline artifacts

Tips

  • Generation runs in the background inside uda; poll uda.status (minutes).
  • Do not commit API keys into the image; use uda config-set.
  • For idea-only tasks, workflow A is enough; use B when the user supplies API shapes, data samples, or detailed requirements files.

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/aohp-os/aohp/aohp-uda/badge)](https://verified-skill.com/skills/aohp-os/aohp/aohp-uda)

Something wrong with this skill or its page? Tell us.