# OpenGUI Getting Started This repository already contains the runnable backend and Android client. ## Option 1: Bootstrap with Claude or Codex Start with the bootstrap skill: - [`skills/open-gui-bootstrap/SKILL.md`](../skills/open-gui-bootstrap/SKILL.md) Recommended prompt: ```text Read ./skills/open-gui-bootstrap/SKILL.md and help me run OpenGUI. Only ask me for phone-side actions. ``` The skill should use the repository scripts directly: - `server/start.sh` - `client/start.sh` ## Option 2: Manual setup ### 1. Start the backend ```bash cd server ./start.sh ``` What `server/start.sh` does: - checks Node.js 22+, pnpm, and Docker - starts PostgreSQL and Redis in Docker - creates `server/apps/backend/.env` from `.env.example` on first run - installs dependencies - generates Prisma client - pushes schema and seeds default backend data - starts the backend on port `7777` Required keys for a practical first run: - `VLM_API_KEY` - `VLM_BASE_URL` - `VLM_MODEL` The backend currently uses the `VLM_*` variables as the shared OpenAI-compatible model configuration for graph agents. They are used by planning, supervision, summarization, and the executor vision path. Example: ```env VLM_API_KEY=your_api_key VLM_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 VLM_MODEL=qwen3.6-plus ``` The backend can start without these values, but real task execution will fail when the graph needs to call the model. Useful endpoints after startup: - API: `http://localhost:7777/api` - Docs: `http://localhost:7777/docs` ### 2. Connect a device and install the Android client ```bash cd client ./start.sh ``` What `client/start.sh` does: - checks `adb` and Java - requires a connected Android device - runs `adb reverse tcp:7777 tcp:7777` - builds the debug APK - installs the APK - launches `com.coremate.opengui/.login.SplashActivity` ### 3. Complete phone-side permissions Open the app and enable: - USB debugging approval - Accessibility Service - overlay permission - battery optimization exemption if needed ## Current Source-Available Build Behavior The Android app currently skips the old login gate in the source-available build and goes straight to `HomeActivity`. For local runs, the backend task controllers also default to `userId = 1`, so first-run setup no longer depends on the older OTP flow. ## More detail - Backend details: [`server/apps/backend/README.md`](../server/apps/backend/README.md) - Discord remote control: [`docs/DISCORD.md`](./DISCORD.md) - Android client details: [`client/README.md`](../client/README.md)