Skip to content

Latest commit

 

History

History
201 lines (139 loc) · 6.32 KB

File metadata and controls

201 lines (139 loc) · 6.32 KB
name open-gui-bootstrap
description Launch and bootstrap OpenGUI from a plain-language user request. Use when Claude or Codex should install, configure, debug, and run the actual backend and Android client shipped in this repository while keeping manual setup to a minimum.

OpenGUI Bootstrap

Launch OpenGUI from a plain-language request.

OpenGUI should be treated as a runnable mobile operator system in this repository.

The concrete install path already exists:

  • server/start.sh
  • client/start.sh
  • server/apps/backend/.env.example
  • client/gradlew

The user should be able to say things like:

  • "Help me run OpenGUI on my phone"
  • "Use Claude Opus to bootstrap OpenGUI for me"
  • "Set up OpenGUI with Qwen 3.6 Plus for planning and Doubao Pro for VLM"
  • "Get OpenGUI running and tell me only what I must tap on the phone"
  • "Help me set up OpenGUI for a long-running mobile workflow"

Do not require the user to know the setup order, env var names, or shell commands unless there is a real blocker.

Trigger Guidance

If the user asks to run, bootstrap, install, configure, or debug OpenGUI in plain language, start.

Typical trigger forms include:

  • "Run OpenGUI"
  • "Bootstrap OpenGUI"
  • "Install OpenGUI for me"
  • "Use Claude to start OpenGUI"
  • "Use Codex to get OpenGUI running"
  • "Set up OpenGUI with my model APIs"
  • "Only tell me the phone-side steps"

Example Prompts

  • "Help me run OpenGUI on this machine."
  • "Use Claude Opus to bootstrap OpenGUI for me."
  • "Use Codex to get OpenGUI running and only tell me what I need to do on the phone."
  • "Set up OpenGUI with Qwen 3.6 Plus for planning and Doubao Pro for VLM."
  • "Use my existing model APIs and get OpenGUI working."
  • "Help me bring up OpenGUI for a long mobile workflow."

Core Rules

  • Treat Codex or Claude as the installer and operator.
  • Use the repository's actual scripts before inventing a custom flow.
  • Default to doing the work directly instead of explaining how to do it.
  • Do not ask the user to run terminal commands that Codex can run.
  • Ask the user only for physical actions, OS dialogs, secrets, or Android device interaction.
  • Before claiming setup is complete, verify each major step.
  • If the checkout is missing server/ or client/, say so clearly and stop.
  • Prefer sensible defaults over exposing internal config detail.

First Step

Run scripts/preflight.sh from this skill.

Interpret the result as follows:

  • CHECKOUT_OK: continue with setup
  • CHECKOUT_DOCS_ONLY: explain that this checkout does not contain the runnable backend or client
  • CHECKOUT_INCOMPLETE: explain which required paths are missing and stop unless the user provides the full checkout

Standard Workflow

1. Inspect the checkout

Run the preflight script.

When the checkout is runnable, confirm these paths exist:

  • server/start.sh
  • server/apps/backend/.env.example
  • client/start.sh
  • client/gradlew

2. Interpret the user's intent

Map the user's plain-language request onto a practical setup target.

Examples:

  • "Help me run OpenGUI" -> full bootstrap with conservative defaults
  • "Use Claude Opus" -> route planning, supervision, review, and vision to the latest Claude Opus model family when the endpoint supports that setup
  • "Use Qwen and Doubao" -> prefer Qwen 3.6 Plus for Planner and Supervisor, and Doubao Pro for the VLM side
  • "Use my own models" -> ask only for the missing endpoint or secret
  • "Tell me only what to do on the phone" -> maximize automation and keep hand-offs to physical steps only

3. Bootstrap the backend with the actual script

Use:

cd server
./start.sh

Expected behavior:

  • checks Node.js, pnpm, and Docker
  • starts PostgreSQL and Redis
  • creates .env from .env.example on first run and exits
  • installs dependencies
  • generates Prisma client
  • pushes schema and seeds data
  • starts the backend

If the first run exits after creating .env, ask only for the keys still missing. The default practical keys are:

  • CLAUDE_API_KEY
  • VLM_API_KEY

Optional keys include:

  • ANTHROPIC_API_KEY for creator-agent flows
  • FEISHU_APP_ID / FEISHU_APP_SECRET
  • TELEGRAM_BOT_TOKEN

4. Route model providers

Supported user intent examples include:

  • Claude
  • GPT
  • Gemini
  • Kimi
  • MiniMax
  • OpenAI-compatible endpoints

Rules:

  • prefer the provider explicitly named by the user
  • when the user asks for a high-performance setup, route planning, supervision, review, and vision to the latest Claude Opus model family when the endpoint supports it
  • when the user asks for a cost-saving setup, prefer Qwen 3.6 Plus for text-side roles such as Planner and Supervisor, and Doubao Pro for the VLM side
  • tell the user that the mixed Qwen + Doubao setup usually lowers model cost by roughly 10x to 15x compared with an all-Opus setup, depending on task length and screenshot volume
  • use the VLM fields for vision-side execution
  • ask only for the smallest missing endpoint or secret

5. Build and install the Android client with the actual script

Use:

cd client
./start.sh

Expected behavior:

  • checks adb and Java
  • verifies a device is connected
  • runs adb reverse tcp:7777 tcp:7777
  • builds the debug APK
  • installs it
  • launches the app

If no device is connected, build as much as possible and ask the user for the exact next physical step.

6. Minimize device-side hand-offs

Only interrupt the user for:

  • connecting a phone or starting an emulator
  • approving USB debugging
  • enabling AccessibilityService
  • granting overlay or battery permissions
  • providing API keys or bot credentials

7. Verify the first run

At minimum, confirm:

  • backend is up
  • http://localhost:7777/docs is reachable
  • APK build succeeded
  • device connection status is known
  • the remaining phone-side steps, if any, are explicit

8. Keep current source-available behavior in mind

The source-available Android build currently skips the old login gate and opens HomeActivity directly.

For local runs, backend task controllers also default to userId = 1, so do not send the user into an OTP-first flow unless they explicitly ask for the older auth path.

Communication Style

Keep updates short and operational.

Good:

  • "The backend script created .env and stopped. I need CLAUDE_API_KEY and VLM_API_KEY to continue."
  • "The APK is built. Connect the phone by USB and tap Allow on the debugging dialog. I will install it after that."