A modern web interface for beads - where the threads of your work come together.
Loom provides a visual, browser-based UI for managing beads issue databases. While beads excels at CLI-based issue tracking for LLM-assisted development, Loom adds powerful visualization and navigation tools for human developers managing the work.
- Multiple Views: List view, Kanban board, dependency graph, and ready work queue
- Dependency Visualization: Interactive graphs showing how issues connect and block each other
- Real-time Sync: Automatically updates when
.beads/issues.jsonlchanges (from CLI or agents) - Powerful Filtering: Filter by status, priority, type, and labels
- Full Issue Management: Create, update, and close issues directly from the UI
# Clone the repository
git clone https://github.com/cscheid/beads-ui.git
cd beads-ui
# Install dependencies (requires pnpm)
pnpm install
# Build all packages
pnpm buildThe easiest way to use Loom is with the loom wrapper script:
# From your project directory
/path/to/beads-ui/loom .
# Or specify a project path
/path/to/beads-ui/loom /path/to/your-projectThe web UI will open at http://localhost:5173 and the server runs on http://localhost:3000.
Using environment variable:
WORKSPACE_PATH=/path/to/your-project pnpm devUsing CLI arguments:
# From the beads-ui directory
pnpm --filter @loom/server dev --workspace /path/to/your-project
# Start both server and web UI
WORKSPACE_PATH=/path/to/your-project pnpm devFor development on the beads-ui project itself:
# From the beads-ui directory
WORKSPACE_PATH=. pnpm devThe server automatically watches your .beads/ directory for changes and broadcasts updates via WebSocket.
Loom is a monorepo with three packages:
- web: React + TypeScript frontend (Vite, Tailwind CSS, shadcn/ui)
- server: Node.js/Fastify backend with WebSocket and file watching
- shared: Shared TypeScript types and utilities
- Node.js 18+
- pnpm
- beads CLI installed and initialized in your project
MIT - see LICENSE for details