Files
openworker/surfaces/gui/README.md
T
coderdailyoneandClaude Fable 5 6356aa6cd0 docs: fix stale platform/ paths in the GUI README
The GUI README still described the pre-split monorepo layout: every command
cd'd into a platform/ directory that does not exist in this repository, so a
fresh contributor following it verbatim fails at the first step. The venv,
packaging scripts, and surfaces/gui all live at the repo root now — align the
commands and the server_bin() dev-fallback comment with the layout the root
README already documents.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-31 10:17:19 +01:00

53 lines
1.8 KiB
Markdown

# coworker GUI (React + Tauri)
A thin client of the coworker server (OpenAI-compatible API + WS event/approval stream).
Same codebase runs in a browser (dev) and as the OpenWorker desktop app.
## First time: bootstrap the Python backend
A fresh checkout has no server to run — create the venv both flows below expect
(from the repo root):
```bash
bash packaging/setup_dev_env.sh # → .venv (server + aisuite)
```
## Run it (browser, two terminals)
1. **Start the server** (needs a model key, e.g. `OPENAI_API_KEY`, in the environment —
or add one later in the app's Settings), from the repo root:
```bash
./.venv/bin/openworker-server --cwd /path/to/your/project --port 8765
```
2. **Start the UI:**
```bash
cd surfaces/gui
npm install # first time
npm run dev # → http://localhost:5173
```
Open http://localhost:5173. The UI talks to `http://127.0.0.1:8765` (override with
`VITE_COWORKER_HTTP` / `VITE_COWORKER_WS`). Start the server before Vite so the
UI can read its per-launch token from `<state-dir>/sidecar-8765.token`; restart
Vite if the server is restarted.
## Run the desktop app from source
The Tauri shell wraps the same UI and supervises the Python server itself — no separate
terminal. It needs the Rust toolchain (`rustup`) plus the venv from the bootstrap step;
in dev it finds the server at `.venv/bin/openworker-server` automatically (a
packaged sidecar binary is only produced by the release scripts in `packaging/`).
```bash
cd surfaces/gui
npm install # first time
npm run tauri dev # builds the shell, launches the window, starts the server
```
## Tests
```bash
npx tsc --noEmit && npx vitest run # typecheck + unit
npx playwright test # hermetic e2e (mocked /v1 + WS, no Python needed)
```