Interactive roadmap visualization for beads issues. Drop a .jsonl file, paste exported data, or connect to GitHub — see your project as a timeline, list, or table.
- Timeline view — Gantt-style chart with dependency arrows, milestones, and zoom controls
- List view — Group by priority, status, type, assignee, label, or source
- Table view — Sortable columns with inline status badges
- Multi-source — Load multiple projects and distinguish them with color-coded chips
- GitHub integration — Connect via OAuth device flow, load repos with
.beads/, sync back - File / Paste input — Drag-and-drop
.jsonl, browse files, or pastebd exportoutput - Light / Dark / System themes — Warm stone palette with Linear-inspired polish
- Single-file build — Ships as one
index.htmlviavite-plugin-singlefile
npm install
npm run devOpen http://localhost:5173, then either:
- Paste — run
bd export | pbcopyand paste into the textarea - File — drop or browse for an
issues.jsonl - GitHub — connect with an OAuth App + auth proxy (see below)
- Demo — click "load demo data" on the landing page
beadsmap uses the GitHub device flow through a Cloudflare Worker proxy that keeps your client secret server-side.
- Deploy the auth proxy (
proxy/worker.js) to Cloudflare Workers - Create a GitHub OAuth App with Device Flow enabled
- Enter the proxy URL and Client ID in the app
npm run build # outputs dist/index.html (single file)
npm run preview # preview the production build
npm run check # type-check Svelte + TypeScript- Svelte 5 with runes (
$state,$derived,$effect) - Vite
- Tailwind CSS v4
- TypeScript
| List view | Table view |
|---|---|
![]() |
![]() |
| Dark mode | Landing page |
|---|---|
![]() |
![]() |
Found a bug or want to add a feature? Open an issue or PR on GitHub.




