Prerequisites
- Bun 1.3.5 or newer
- macOS or Linux
- A Convex development deployment
Clone the repository and initialize its mobile submodule:
The parent repository tracks only the mobile commit pointer. Mobile commits
belong in the nested repository first. Mobile bootstrap is optional for CLI,
backend, relay, and web work. On macOS, after installing the Xcode and XcodeGen
versions listed in apps/mobile/README.md, generate the ignored Xcode project:
Then install the Bun workspace from the repository root:
Start the services
Run each command in a separate terminal.
Backend:
Relay (point at your Convex .cloud URL):
Web:
CLI host:
For an offline host-only CLI check without the backend or relay:
Released CLI binaries use production endpoints when NODE_ENV is unset.
Connected source development must set explicit Convex, relay, and auth URLs.
The complete environment and deployment matrix lives in
ENVIRONMENTS.md.
Local quality checks
Docs:
Relay smoke check
This checks relay health and rejects an unauthenticated WebSocket request.
Manual end-to-end check
NODE_ENV=development wrapper auth login (or the source CLI equivalent)
- Start a host and share with
Ctrl+\ then s
- Attach from another terminal with
--relay --id <sessionId>
- Detach with
Ctrl+\ then d
- Unshare with
Ctrl+\ then u
- Watch the title for
relay then optionally p2p
- Repeat with
WRAPPER_P2P=0 and confirm it stays on relay
NAT-restricted networks and CI sandboxes often cannot form WebRTC. Relay-only
success is still a valid result.Last modified on August 11, 2026