Quick Usage (Already Configured)
1) Start the dev stack (Docker)
Run from the OpenWork repo root:
bash
cd _repos/openwork packaging/docker/dev-up.sh
This prints:
- •Web UI URL (http://localhost:<WEB_PORT>)
- •OpenWork server URL (http://localhost:<OPENWORK_PORT>)
- •Token file path (
_repos/openwork/tmp/.dev-env-<id>) containingOPENWORK_TOKEN+OPENWORK_HOST_TOKEN - •A
docker compose ... downcommand that stops this stack
2) Verify a real UI flow (Chrome MCP)
Minimum gate:
- •Open the printed Web UI URL.
- •Navigate to the session/chat surface (typically
/session). - •Send a message (example:
smoke: hello from chrome mcp). - •Confirm a response renders in the UI.
Chrome MCP tool recipe (typical):
- •
chrome-devtools_list_pages(optional: see existing tabs) - •
chrome-devtools_new_pagewith the Web UI URL (orchrome-devtools_navigate_pageif a page is already open) - •
chrome-devtools_take_snapshotto locate the chat input + Send button uids - •
chrome-devtools_fillthe chat input uid with your message - •
chrome-devtools_clickthe Send button uid - •
chrome-devtools_wait_fora distinctive piece of response text (or re-snapshot until the response appears) - •
chrome-devtools_take_screenshot(save to/tmp/...pngwhen possible) - •If debugging:
chrome-devtools_list_console_messages
Evidence:
- •Take a Chrome MCP screenshot after the response appears.
- •If something fails, capture console logs and (optionally) Docker logs.
3) Stop the stack
Use the exact docker compose -p ... down command printed by dev-up.sh.
If you lost it, you can find the project name via:
bash
docker ps --format '{{.Names}}' | rg '^openwork-dev-'
Then stop it (replace <project>):
bash
cd _repos/openwork docker compose -p <project> -f packaging/docker/docker-compose.dev.yml down
Required Gate (Non-Negotiable)
- •Any user-facing change or change that touches remote behavior must be validated end-to-end in the running UI.
- •The change is not "done" until it succeeds via Chrome MCP against the Docker dev stack started by
packaging/docker/dev-up.sh.
Common Gotchas
- •Docker is required (and the
dockerCLI must be available on PATH). - •
dev-up.shuses random host ports; do not assume5173/8787. - •If the UI looks up but is disconnected, confirm you opened the printed URL and that headless is healthy.