Rich web UI for the Beads AI work management system.
Run Pearl in any project directory that has a .beads/ folder:
npx pearl-bduiThis starts the Pearl server and opens your browser to the UI.
pearl-bdui [options]
-h, --help Show help
-v, --version Show version
--no-open Don't open browser automatically
| Variable | Default | Description |
|---|---|---|
PORT |
3456 |
Server port |
DOLT_HOST |
127.0.0.1 |
Dolt SQL server host (server mode) |
DOLT_PORT |
3307 |
Dolt SQL server port |
npx pearl-bduiAlways runs the latest version. No install needed.
npm install -g pearl-bdui
pearl-bdui- Node.js >= 22
- Dolt (for the embedded database)
- A project with a
.beads/directory (created by thebdCLI)
git clone https://github.com/htxryan/pearl.git
cd pearl
pnpm install
pnpm devThis starts the backend (Fastify on port 3456) and frontend (Vite on port 5173) in development mode.
packages/
pearl-bdui/ # Publishable package: Fastify server + bundled frontend
frontend/ # React 19 SPA with Vite, TailwindCSS, React Flow
shared/ # Shared TypeScript types (API contract)
| Command | Description |
|---|---|
pnpm dev |
Start development server |
pnpm build |
Build all packages |
pnpm test |
Run all tests |
pnpm typecheck |
TypeScript type checking |
pnpm test:e2e |
Run Playwright end-to-end tests |
task publish |
Build and publish to npm |
task publish:dry |
Dry-run publish |
Releases are automated via release-please:
- Merge PRs to
mainusing conventional commits (feat:,fix:, etc.) - Release-please opens a release PR with the version bump and generated changelog
- Merge the release PR — this creates a GitHub release and publishes to npm via OIDC (no tokens needed)
Manual publish (for local testing):
task publish # build + publish to npm
task publish:dry # dry-run (no upload)Apache-2.0