beads-kanban-ui 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/README.md +16 -222
  2. package/package.json +18 -55
  3. package/.designs/beads-kanban-ui-bj0.md +0 -73
  4. package/.designs/beads-kanban-ui-qxq.md +0 -144
  5. package/.designs/epic-support.md +0 -282
  6. package/.env.local.example +0 -2
  7. package/.eslintrc.json +0 -3
  8. package/.gitattributes +0 -3
  9. package/.github/workflows/release.yml +0 -123
  10. package/.history/README_20260121193710.md +0 -227
  11. package/.history/README_20260121193918.md +0 -227
  12. package/.history/README_20260121193921.md +0 -227
  13. package/.history/README_20260121193933.md +0 -227
  14. package/.history/README_20260121193934.md +0 -227
  15. package/.history/README_20260121193944.md +0 -227
  16. package/.history/README_20260121193953.md +0 -227
  17. package/.history/src/app/page_20260121133429.tsx +0 -134
  18. package/.history/src/app/page_20260121133928.tsx +0 -134
  19. package/.history/src/app/page_20260121144850.tsx +0 -138
  20. package/.history/src/app/page_20260121144854.tsx +0 -138
  21. package/.history/src/app/page_20260121144858.tsx +0 -138
  22. package/.history/src/app/page_20260121144902.tsx +0 -138
  23. package/.history/src/app/page_20260121144906.tsx +0 -138
  24. package/.history/src/app/page_20260121144911.tsx +0 -138
  25. package/.history/src/app/page_20260121144928.tsx +0 -138
  26. package/.playwright-mcp/.playwright-mcp/morphing-dialog-wheel-scroll-fix.png +0 -0
  27. package/.playwright-mcp/beams-test.png +0 -0
  28. package/.playwright-mcp/card-verification.png +0 -0
  29. package/.playwright-mcp/design-doc-dialog-fix-verification.png +0 -0
  30. package/.playwright-mcp/dialog-width-test.png +0 -0
  31. package/.playwright-mcp/homepage.png +0 -0
  32. package/.playwright-mcp/morphing-dialog-expanded.png +0 -0
  33. package/.playwright-mcp/morphing-dialog-fixes-final.png +0 -0
  34. package/.playwright-mcp/morphing-dialog-open.png +0 -0
  35. package/.playwright-mcp/page-2026-01-21T14-08-31-529Z.png +0 -0
  36. package/.playwright-mcp/page-2026-01-21T14-09-23-431Z.png +0 -0
  37. package/.playwright-mcp/page-2026-01-21T14-10-28-773Z.png +0 -0
  38. package/.playwright-mcp/page-2026-01-21T14-10-47-432Z.png +0 -0
  39. package/.playwright-mcp/page-2026-01-21T14-11-12-350Z.png +0 -0
  40. package/.playwright-mcp/screenshot-after-click.png +0 -0
  41. package/.playwright-mcp/screenshot-after-dialog-click.png +0 -0
  42. package/.playwright-mcp/sheet-restored-after-dialog-close.png +0 -0
  43. package/.playwright-mcp/test-1-sheet-open-with-overlay.png +0 -0
  44. package/.playwright-mcp/test-2-morphing-dialog-with-overlay.png +0 -0
  45. package/.playwright-mcp/test-3-sheet-open-dark-overlay.png +0 -0
  46. package/.playwright-mcp/test-4-morphing-dialog-with-dark-overlay.png +0 -0
  47. package/.playwright-mcp/test-5-morphing-dialog-scrolled.png +0 -0
  48. package/.playwright-mcp/test-6-sheet-restored-after-dialog-close.png +0 -0
  49. package/.playwright-mcp/wheel-scroll-fixed.png +0 -0
  50. package/Screenshots/bead-detail.png +0 -0
  51. package/Screenshots/dashboard.png +0 -0
  52. package/Screenshots/kanban-board.png +0 -0
  53. package/components.json +0 -27
  54. package/logo/logo.svg +0 -1
  55. package/next.config.js +0 -9
  56. package/npm/README.md +0 -37
  57. package/npm/package.json +0 -20
  58. package/postcss.config.js +0 -6
  59. package/public/logo.svg +0 -1
  60. package/restart.sh +0 -5
  61. package/server/Cargo.lock +0 -1685
  62. package/server/Cargo.toml +0 -24
  63. package/server/src/db.rs +0 -570
  64. package/server/src/main.rs +0 -141
  65. package/server/src/routes/beads.rs +0 -413
  66. package/server/src/routes/cli.rs +0 -150
  67. package/server/src/routes/fs.rs +0 -360
  68. package/server/src/routes/git.rs +0 -169
  69. package/server/src/routes/mod.rs +0 -107
  70. package/server/src/routes/projects.rs +0 -177
  71. package/server/src/routes/watch.rs +0 -211
  72. package/src/app/globals.css +0 -101
  73. package/src/app/layout.tsx +0 -36
  74. package/src/app/page.tsx +0 -348
  75. package/src/app/project/kanban-board.tsx +0 -356
  76. package/src/app/project/page.tsx +0 -18
  77. package/src/app/settings/page.tsx +0 -224
  78. package/src/components/Beams.css +0 -5
  79. package/src/components/Beams.jsx +0 -307
  80. package/src/components/Galaxy.css +0 -5
  81. package/src/components/Galaxy.jsx +0 -333
  82. package/src/components/activity-timeline.tsx +0 -172
  83. package/src/components/add-project-dialog.tsx +0 -219
  84. package/src/components/bead-card.tsx +0 -196
  85. package/src/components/bead-detail.tsx +0 -306
  86. package/src/components/color-picker.tsx +0 -101
  87. package/src/components/comment-input.tsx +0 -155
  88. package/src/components/comment-list.tsx +0 -147
  89. package/src/components/dependency-badge.tsx +0 -106
  90. package/src/components/design-doc-dialog.tsx +0 -58
  91. package/src/components/design-doc-preview.tsx +0 -97
  92. package/src/components/design-doc-viewer.tsx +0 -199
  93. package/src/components/editable-project-name.tsx +0 -178
  94. package/src/components/epic-card.tsx +0 -263
  95. package/src/components/folder-browser.tsx +0 -273
  96. package/src/components/footer.tsx +0 -27
  97. package/src/components/kanban/default.tsx +0 -184
  98. package/src/components/kanban-column.tsx +0 -167
  99. package/src/components/project-card.tsx +0 -191
  100. package/src/components/quick-filter-bar.tsx +0 -279
  101. package/src/components/scan-directory-dialog.tsx +0 -368
  102. package/src/components/status-donut.tsx +0 -197
  103. package/src/components/subtask-list.tsx +0 -128
  104. package/src/components/tag-picker.tsx +0 -252
  105. package/src/components/ui/.gitkeep +0 -0
  106. package/src/components/ui/alert-dialog.tsx +0 -141
  107. package/src/components/ui/avatar.tsx +0 -67
  108. package/src/components/ui/badge.tsx +0 -230
  109. package/src/components/ui/button.tsx +0 -433
  110. package/src/components/ui/card/index.tsx +0 -24
  111. package/src/components/ui/card/roiui-card.module.css +0 -197
  112. package/src/components/ui/card/roiui-card.tsx +0 -154
  113. package/src/components/ui/card/shadcn-card.tsx +0 -76
  114. package/src/components/ui/chart.tsx +0 -369
  115. package/src/components/ui/dialog.tsx +0 -122
  116. package/src/components/ui/dropdown-menu.tsx +0 -201
  117. package/src/components/ui/input.tsx +0 -22
  118. package/src/components/ui/kanban.tsx +0 -522
  119. package/src/components/ui/morphing-dialog.tsx +0 -457
  120. package/src/components/ui/popover.tsx +0 -33
  121. package/src/components/ui/progress.tsx +0 -28
  122. package/src/components/ui/scroll-area.tsx +0 -48
  123. package/src/components/ui/select.tsx +0 -159
  124. package/src/components/ui/separator.tsx +0 -31
  125. package/src/components/ui/sheet.tsx +0 -142
  126. package/src/components/ui/skeleton.tsx +0 -15
  127. package/src/components/ui/toast.tsx +0 -129
  128. package/src/components/ui/toaster.tsx +0 -35
  129. package/src/components/ui/tooltip.tsx +0 -30
  130. package/src/hooks/.gitkeep +0 -0
  131. package/src/hooks/use-bead-filters.ts +0 -261
  132. package/src/hooks/use-beads.ts +0 -162
  133. package/src/hooks/use-branch-statuses.ts +0 -161
  134. package/src/hooks/use-epics.ts +0 -173
  135. package/src/hooks/use-file-watcher.ts +0 -111
  136. package/src/hooks/use-keyboard-navigation.ts +0 -282
  137. package/src/hooks/use-project.ts +0 -61
  138. package/src/hooks/use-projects.ts +0 -93
  139. package/src/hooks/use-toast.ts +0 -194
  140. package/src/hooks/useClickOutside.tsx +0 -26
  141. package/src/lib/.gitkeep +0 -0
  142. package/src/lib/api.ts +0 -186
  143. package/src/lib/beads-parser.ts +0 -252
  144. package/src/lib/cli.ts +0 -193
  145. package/src/lib/db.ts +0 -145
  146. package/src/lib/design-doc.ts +0 -74
  147. package/src/lib/epic-parser.ts +0 -242
  148. package/src/lib/git.ts +0 -102
  149. package/src/lib/utils.ts +0 -12
  150. package/src/types/index.ts +0 -107
  151. package/tailwind.config.ts +0 -85
  152. package/tsconfig.json +0 -26
  153. /package/{npm/bin → bin}/cli.js +0 -0
  154. /package/{npm/scripts → scripts}/postinstall.js +0 -0
@@ -1,227 +0,0 @@
1
- # Beads Kanban UI
2
-
3
- **See all your tasks at a glance. Organize, and track progress across projects—no CLI required.**
4
-
5
- A beautiful visual Kanban board for the [Beads CLI](https://github.com/steveyegge/beads) task tracker. Beads stores tasks as git-native files (`.beads/issues.jsonl`), and this UI gives you the dashboard and board you've been missing.
6
-
7
- > **Works great with [Beads Orchestration](https://github.com/AvivK5498/Claude-Code-Beads-Orchestration)** — A multi-agent orchestration framework for Claude Code that uses beads for git-native task tracking with mandatory code review gates.
8
-
9
- ## See It in Action
10
-
11
- **Dashboard** — All your projects in one place with status at a glance:
12
- ![Dashboard with multi-project view, status donuts, and tags](Screenshots/dashboard.png)
13
-
14
- **Kanban Board** — Organize tasks across Open → In Progress → In Review → Closed:
15
- ![Kanban board showing epic groups and task cards with git branch info](Screenshots/kanban-board.png)
16
-
17
- **Bead Details** — Dive into any task with full context and subtasks:
18
- ![Bead detail panel showing epic with progress bar and subtasks](Screenshots/bead-detail.png)
19
-
20
- ## What You Get
21
-
22
- - **Multi-project dashboard** — Manage all your beads projects in one place with status donut charts
23
- - **Kanban board** — Drag-and-drop columns: Open → In Progress → In Review → Closed
24
- - **Epic support** — Group related tasks, track progress with bars, view all subtasks
25
- - **Real-time sync** — File watcher auto-updates when beads files change on disk
26
- - **Git integration** — See branch status for each task at a glance
27
- - **Search & filter** — Quick filters for status, priority, owner, and tags
28
- - **Project tagging** — Organize with colored tags and filter by them
29
-
30
- ## Quick Start (3 steps)
31
-
32
- ### 1. Prerequisites
33
- ```bash
34
- # Install beads CLI
35
- brew install steveyegge/beads/bd
36
-
37
- # You'll also need Node.js 18+ and Rust
38
- ```
39
-
40
- ### 2. Install and Run
41
- ```bash
42
- git clone https://github.com/AvivK5498/beads-kanban-ui
43
- cd beads-kanban-ui
44
- npm install
45
- npm run dev:full
46
- ```
47
-
48
- ### 3. Open in Browser
49
- Navigate to **`http://localhost:3007`** and add your beads projects.
50
-
51
- That's it! The app watches for file changes and syncs in real-time.
52
-
53
- ---
54
-
55
- ## Detailed Setup
56
-
57
- ### Development Mode
58
-
59
- Run both frontend and backend together:
60
- ```bash
61
- npm run dev:full
62
- ```
63
-
64
- Or run separately:
65
- ```bash
66
- # Terminal 1: Frontend (http://localhost:3007)
67
- npm run dev
68
-
69
- # Terminal 2: Backend (http://localhost:3008)
70
- npm run server:dev
71
- ```
72
-
73
- The Rust backend builds automatically on first run. If you need to rebuild it:
74
- ```bash
75
- cd server && cargo build --release && cd ..
76
- ```
77
-
78
- ### Production Build
79
-
80
- For a single binary deployment:
81
- ```bash
82
- npm run build
83
- npm run server:build
84
- ./server/target/release/beads-server
85
- ```
86
-
87
- The production server embeds the frontend and serves everything from a single binary on port 3008.
88
-
89
- ---
90
-
91
- ## How It Works
92
-
93
- ### Dashboard
94
- 1. Click **+ Add Project** and select a directory with a `.beads/` folder
95
- 2. See all projects with status donuts showing task distribution
96
- 3. Click any project to view its Kanban board
97
-
98
- ### Kanban Board
99
- 1. Tasks are organized by status: Open, In Progress, In Review, Closed
100
- 2. Drag cards between columns to update status
101
- 3. Click any task to see full details, comments, and related subtasks (for epics)
102
-
103
- ### Features in Detail
104
-
105
- **Search & Filter**
106
- - Quick filters for status, priority, and assigned owner
107
- - Project tags for organization
108
-
109
- **Real-time Sync**
110
- - The app watches `.beads/issues.jsonl` and updates automatically
111
- - No refresh needed—changes appear instantly
112
-
113
- **Git Integration**
114
- - Each task shows its git branch status
115
- - Useful for tracking which branch a task lives on
116
-
117
- ---
118
-
119
- ## Architecture
120
-
121
- ```
122
- ┌─────────────────────────────────────────────────────────┐
123
- │ Beads Kanban UI │
124
- ├─────────────────────────────────────────────────────────┤
125
- │ Frontend (Next.js 14) │ Backend (Rust/Axum) │
126
- │ ───────────────────── │ ────────────────────│
127
- │ • React 18 │ • SQLite (projects) │
128
- │ • shadcn/ui components │ • beads CLI bridge │
129
- │ • Tailwind CSS │ • File watcher │
130
- │ • TypeScript │ • Git integration │
131
- └─────────────────────────────────────────────────────────┘
132
-
133
-
134
- ┌─────────────────────────┐
135
- │ .beads/ directory │
136
- │ (issues.jsonl, etc.) │
137
- └─────────────────────────┘
138
- ```
139
-
140
- ### Tech Stack
141
- - **Frontend**: Next.js 14, React 18, Tailwind CSS, shadcn/ui
142
- - **Backend**: Rust with Axum framework
143
- - **Database**: SQLite for project metadata
144
- - **File Sync**: Real-time watcher for `.beads/` changes
145
-
146
- ### Project Structure
147
- ```
148
- beads-kanban-ui/
149
- ├── src/
150
- │ ├── app/ # Next.js pages and routes
151
- │ │ ├── page.tsx # Projects dashboard
152
- │ │ ├── project/ # Kanban board view
153
- │ │ └── settings/ # Settings page
154
- │ ├── components/ # React components
155
- │ │ ├── ui/ # shadcn/ui components
156
- │ │ ├── kanban-column.tsx
157
- │ │ ├── bead-card.tsx
158
- │ │ └── bead-detail.tsx
159
- │ ├── hooks/ # Custom React hooks
160
- │ ├── lib/ # Utilities and API client
161
- │ └── types/ # TypeScript type definitions
162
- ├── server/
163
- │ └── src/
164
- │ ├── main.rs # Axum server entry point
165
- │ ├── db.rs # SQLite database layer
166
- │ └── routes/ # API route handlers
167
- └── package.json
168
- ```
169
-
170
- ---
171
-
172
- ## API Endpoints
173
-
174
- | Endpoint | Method | Description |
175
- |----------|--------|-------------|
176
- | `/api/health` | GET | Server health check |
177
- | `/api/projects` | GET/POST | List or create projects |
178
- | `/api/projects/:id` | GET/PUT/DELETE | Manage individual projects |
179
- | `/api/beads?path=` | GET | Read beads from a project path |
180
- | `/api/beads/comment` | POST | Add comment to a bead |
181
- | `/api/bd/command` | POST | Execute beads CLI commands |
182
- | `/api/git/branch-status` | GET | Get git branch status for a bead |
183
- | `/api/fs/list` | GET | List directory contents |
184
- | `/api/fs/exists` | GET | Check if a path exists |
185
- | `/api/watch/beads` | GET | Server-sent events for file changes |
186
-
187
- ### Environment Variables
188
-
189
- | Variable | Default | Description |
190
- |----------|---------|-------------|
191
- | `PORT` | `3008` | Backend server port |
192
- | `NEXT_PUBLIC_BACKEND_URL` | `http://localhost:3008` | Backend URL for frontend API calls |
193
-
194
- ---
195
-
196
- ## Development Commands
197
-
198
- ```bash
199
- # Run both frontend and backend
200
- npm run dev:full
201
-
202
- # Run frontend only
203
- npm run dev
204
-
205
- # Run backend only
206
- npm run server:dev
207
-
208
- # Build for production
209
- npm run build
210
- npm run server:build
211
-
212
- # Linting
213
- npm run lint
214
- ```
215
-
216
- ---
217
-
218
- ## Related Projects
219
-
220
- - **[Beads CLI](https://github.com/steveyegge/beads)** — Git-native issue tracker (the core tool this UI wraps)
221
- - **[Beads Orchestration](https://github.com/AvivK5498/Claude-Code-Beads-Orchestration)** — Multi-agent orchestration framework for Claude Code using beads
222
-
223
- ---
224
-
225
- ## License
226
-
227
- MIT
@@ -1,227 +0,0 @@
1
- # Beads Kanban UI
2
-
3
- **See all your tasks at a glance. Organize, and track progress across projects - no CLI required.**
4
-
5
- A beautiful visual Kanban board for the [Beads CLI](https://github.com/steveyegge/beads) task tracker. Beads stores tasks as git-native files (`.beads/issues.jsonl`), and this UI gives you the dashboard and board you've been missing.
6
-
7
- > **Works great with [Beads Orchestration](https://github.com/AvivK5498/Claude-Code-Beads-Orchestration)** — A multi-agent orchestration framework for Claude Code that uses beads for git-native task tracking with mandatory code review gates.
8
-
9
- ## See It in Action
10
-
11
- **Dashboard** — All your projects in one place with status at a glance:
12
- ![Dashboard with multi-project view, status donuts, and tags](Screenshots/dashboard.png)
13
-
14
- **Kanban Board** — Organize tasks across Open → In Progress → In Review → Closed:
15
- ![Kanban board showing epic groups and task cards with git branch info](Screenshots/kanban-board.png)
16
-
17
- **Bead Details** — Dive into any task with full context and subtasks:
18
- ![Bead detail panel showing epic with progress bar and subtasks](Screenshots/bead-detail.png)
19
-
20
- ## What You Get
21
-
22
- - **Multi-project dashboard** — Manage all your beads projects in one place with status donut charts
23
- - **Kanban board** — Drag-and-drop columns: Open → In Progress → In Review → Closed
24
- - **Epic support** — Group related tasks, track progress with bars, view all subtasks
25
- - **Real-time sync** — File watcher auto-updates when beads files change on disk
26
- - **Git integration** — See branch status for each task at a glance
27
- - **Search & filter** — Quick filters for status, priority, owner, and tags
28
- - **Project tagging** — Organize with colored tags and filter by them
29
-
30
- ## Quick Start (3 steps)
31
-
32
- ### 1. Prerequisites
33
- ```bash
34
- # Install beads CLI
35
- brew install steveyegge/beads/bd
36
-
37
- # You'll also need Node.js 18+ and Rust
38
- ```
39
-
40
- ### 2. Install and Run
41
- ```bash
42
- git clone https://github.com/AvivK5498/beads-kanban-ui
43
- cd beads-kanban-ui
44
- npm install
45
- npm run dev:full
46
- ```
47
-
48
- ### 3. Open in Browser
49
- Navigate to **`http://localhost:3007`** and add your beads projects.
50
-
51
- That's it! The app watches for file changes and syncs in real-time.
52
-
53
- ---
54
-
55
- ## Detailed Setup
56
-
57
- ### Development Mode
58
-
59
- Run both frontend and backend together:
60
- ```bash
61
- npm run dev:full
62
- ```
63
-
64
- Or run separately:
65
- ```bash
66
- # Terminal 1: Frontend (http://localhost:3007)
67
- npm run dev
68
-
69
- # Terminal 2: Backend (http://localhost:3008)
70
- npm run server:dev
71
- ```
72
-
73
- The Rust backend builds automatically on first run. If you need to rebuild it:
74
- ```bash
75
- cd server && cargo build --release && cd ..
76
- ```
77
-
78
- ### Production Build
79
-
80
- For a single binary deployment:
81
- ```bash
82
- npm run build
83
- npm run server:build
84
- ./server/target/release/beads-server
85
- ```
86
-
87
- The production server embeds the frontend and serves everything from a single binary on port 3008.
88
-
89
- ---
90
-
91
- ## How It Works
92
-
93
- ### Dashboard
94
- 1. Click **+ Add Project** and select a directory with a `.beads/` folder
95
- 2. See all projects with status donuts showing task distribution
96
- 3. Click any project to view its Kanban board
97
-
98
- ### Kanban Board
99
- 1. Tasks are organized by status: Open, In Progress, In Review, Closed
100
- 2. Drag cards between columns to update status
101
- 3. Click any task to see full details, comments, and related subtasks (for epics)
102
-
103
- ### Features in Detail
104
-
105
- **Search & Filter**
106
- - Quick filters for status, priority, and assigned owner
107
- - Project tags for organization
108
-
109
- **Real-time Sync**
110
- - The app watches `.beads/issues.jsonl` and updates automatically
111
- - No refresh needed—changes appear instantly
112
-
113
- **Git Integration**
114
- - Each task shows its git branch status
115
- - Useful for tracking which branch a task lives on
116
-
117
- ---
118
-
119
- ## Architecture
120
-
121
- ```
122
- ┌─────────────────────────────────────────────────────────┐
123
- │ Beads Kanban UI │
124
- ├─────────────────────────────────────────────────────────┤
125
- │ Frontend (Next.js 14) │ Backend (Rust/Axum) │
126
- │ ───────────────────── │ ────────────────────│
127
- │ • React 18 │ • SQLite (projects) │
128
- │ • shadcn/ui components │ • beads CLI bridge │
129
- │ • Tailwind CSS │ • File watcher │
130
- │ • TypeScript │ • Git integration │
131
- └─────────────────────────────────────────────────────────┘
132
-
133
-
134
- ┌─────────────────────────┐
135
- │ .beads/ directory │
136
- │ (issues.jsonl, etc.) │
137
- └─────────────────────────┘
138
- ```
139
-
140
- ### Tech Stack
141
- - **Frontend**: Next.js 14, React 18, Tailwind CSS, shadcn/ui
142
- - **Backend**: Rust with Axum framework
143
- - **Database**: SQLite for project metadata
144
- - **File Sync**: Real-time watcher for `.beads/` changes
145
-
146
- ### Project Structure
147
- ```
148
- beads-kanban-ui/
149
- ├── src/
150
- │ ├── app/ # Next.js pages and routes
151
- │ │ ├── page.tsx # Projects dashboard
152
- │ │ ├── project/ # Kanban board view
153
- │ │ └── settings/ # Settings page
154
- │ ├── components/ # React components
155
- │ │ ├── ui/ # shadcn/ui components
156
- │ │ ├── kanban-column.tsx
157
- │ │ ├── bead-card.tsx
158
- │ │ └── bead-detail.tsx
159
- │ ├── hooks/ # Custom React hooks
160
- │ ├── lib/ # Utilities and API client
161
- │ └── types/ # TypeScript type definitions
162
- ├── server/
163
- │ └── src/
164
- │ ├── main.rs # Axum server entry point
165
- │ ├── db.rs # SQLite database layer
166
- │ └── routes/ # API route handlers
167
- └── package.json
168
- ```
169
-
170
- ---
171
-
172
- ## API Endpoints
173
-
174
- | Endpoint | Method | Description |
175
- |----------|--------|-------------|
176
- | `/api/health` | GET | Server health check |
177
- | `/api/projects` | GET/POST | List or create projects |
178
- | `/api/projects/:id` | GET/PUT/DELETE | Manage individual projects |
179
- | `/api/beads?path=` | GET | Read beads from a project path |
180
- | `/api/beads/comment` | POST | Add comment to a bead |
181
- | `/api/bd/command` | POST | Execute beads CLI commands |
182
- | `/api/git/branch-status` | GET | Get git branch status for a bead |
183
- | `/api/fs/list` | GET | List directory contents |
184
- | `/api/fs/exists` | GET | Check if a path exists |
185
- | `/api/watch/beads` | GET | Server-sent events for file changes |
186
-
187
- ### Environment Variables
188
-
189
- | Variable | Default | Description |
190
- |----------|---------|-------------|
191
- | `PORT` | `3008` | Backend server port |
192
- | `NEXT_PUBLIC_BACKEND_URL` | `http://localhost:3008` | Backend URL for frontend API calls |
193
-
194
- ---
195
-
196
- ## Development Commands
197
-
198
- ```bash
199
- # Run both frontend and backend
200
- npm run dev:full
201
-
202
- # Run frontend only
203
- npm run dev
204
-
205
- # Run backend only
206
- npm run server:dev
207
-
208
- # Build for production
209
- npm run build
210
- npm run server:build
211
-
212
- # Linting
213
- npm run lint
214
- ```
215
-
216
- ---
217
-
218
- ## Related Projects
219
-
220
- - **[Beads CLI](https://github.com/steveyegge/beads)** — Git-native issue tracker (the core tool this UI wraps)
221
- - **[Beads Orchestration](https://github.com/AvivK5498/Claude-Code-Beads-Orchestration)** — Multi-agent orchestration framework for Claude Code using beads
222
-
223
- ---
224
-
225
- ## License
226
-
227
- MIT
@@ -1,227 +0,0 @@
1
- # Beads Kanban UI
2
-
3
- **See all your tasks at a glance. Organize, and track progress across projects - no CLI required.**
4
-
5
- A beautiful visual Kanban board for the [Beads CLI](https://github.com/steveyegge/beads) task tracker. Beads stores tasks as git-native files (`.beads/issues.jsonl`), and this UI gives you the dashboard and board you've been missing.
6
-
7
- > **Works great with [Beads Orchestration](https://github.com/AvivK5498/Claude-Code-Beads-Orchestration)** — A multi-agent orchestration framework for Claude Code that uses beads for git-native task tracking..
8
-
9
- ## See It in Action
10
-
11
- **Dashboard** — All your projects in one place with status at a glance:
12
- ![Dashboard with multi-project view, status donuts, and tags](Screenshots/dashboard.png)
13
-
14
- **Kanban Board** — Organize tasks across Open → In Progress → In Review → Closed:
15
- ![Kanban board showing epic groups and task cards with git branch info](Screenshots/kanban-board.png)
16
-
17
- **Bead Details** — Dive into any task with full context and subtasks:
18
- ![Bead detail panel showing epic with progress bar and subtasks](Screenshots/bead-detail.png)
19
-
20
- ## What You Get
21
-
22
- - **Multi-project dashboard** — Manage all your beads projects in one place with status donut charts
23
- - **Kanban board** — Drag-and-drop columns: Open → In Progress → In Review → Closed
24
- - **Epic support** — Group related tasks, track progress with bars, view all subtasks
25
- - **Real-time sync** — File watcher auto-updates when beads files change on disk
26
- - **Git integration** — See branch status for each task at a glance
27
- - **Search & filter** — Quick filters for status, priority, owner, and tags
28
- - **Project tagging** — Organize with colored tags and filter by them
29
-
30
- ## Quick Start (3 steps)
31
-
32
- ### 1. Prerequisites
33
- ```bash
34
- # Install beads CLI
35
- brew install steveyegge/beads/bd
36
-
37
- # You'll also need Node.js 18+ and Rust
38
- ```
39
-
40
- ### 2. Install and Run
41
- ```bash
42
- git clone https://github.com/AvivK5498/beads-kanban-ui
43
- cd beads-kanban-ui
44
- npm install
45
- npm run dev:full
46
- ```
47
-
48
- ### 3. Open in Browser
49
- Navigate to **`http://localhost:3007`** and add your beads projects.
50
-
51
- That's it! The app watches for file changes and syncs in real-time.
52
-
53
- ---
54
-
55
- ## Detailed Setup
56
-
57
- ### Development Mode
58
-
59
- Run both frontend and backend together:
60
- ```bash
61
- npm run dev:full
62
- ```
63
-
64
- Or run separately:
65
- ```bash
66
- # Terminal 1: Frontend (http://localhost:3007)
67
- npm run dev
68
-
69
- # Terminal 2: Backend (http://localhost:3008)
70
- npm run server:dev
71
- ```
72
-
73
- The Rust backend builds automatically on first run. If you need to rebuild it:
74
- ```bash
75
- cd server && cargo build --release && cd ..
76
- ```
77
-
78
- ### Production Build
79
-
80
- For a single binary deployment:
81
- ```bash
82
- npm run build
83
- npm run server:build
84
- ./server/target/release/beads-server
85
- ```
86
-
87
- The production server embeds the frontend and serves everything from a single binary on port 3008.
88
-
89
- ---
90
-
91
- ## How It Works
92
-
93
- ### Dashboard
94
- 1. Click **+ Add Project** and select a directory with a `.beads/` folder
95
- 2. See all projects with status donuts showing task distribution
96
- 3. Click any project to view its Kanban board
97
-
98
- ### Kanban Board
99
- 1. Tasks are organized by status: Open, In Progress, In Review, Closed
100
- 2. Drag cards between columns to update status
101
- 3. Click any task to see full details, comments, and related subtasks (for epics)
102
-
103
- ### Features in Detail
104
-
105
- **Search & Filter**
106
- - Quick filters for status, priority, and assigned owner
107
- - Project tags for organization
108
-
109
- **Real-time Sync**
110
- - The app watches `.beads/issues.jsonl` and updates automatically
111
- - No refresh needed—changes appear instantly
112
-
113
- **Git Integration**
114
- - Each task shows its git branch status
115
- - Useful for tracking which branch a task lives on
116
-
117
- ---
118
-
119
- ## Architecture
120
-
121
- ```
122
- ┌─────────────────────────────────────────────────────────┐
123
- │ Beads Kanban UI │
124
- ├─────────────────────────────────────────────────────────┤
125
- │ Frontend (Next.js 14) │ Backend (Rust/Axum) │
126
- │ ───────────────────── │ ────────────────────│
127
- │ • React 18 │ • SQLite (projects) │
128
- │ • shadcn/ui components │ • beads CLI bridge │
129
- │ • Tailwind CSS │ • File watcher │
130
- │ • TypeScript │ • Git integration │
131
- └─────────────────────────────────────────────────────────┘
132
-
133
-
134
- ┌─────────────────────────┐
135
- │ .beads/ directory │
136
- │ (issues.jsonl, etc.) │
137
- └─────────────────────────┘
138
- ```
139
-
140
- ### Tech Stack
141
- - **Frontend**: Next.js 14, React 18, Tailwind CSS, shadcn/ui
142
- - **Backend**: Rust with Axum framework
143
- - **Database**: SQLite for project metadata
144
- - **File Sync**: Real-time watcher for `.beads/` changes
145
-
146
- ### Project Structure
147
- ```
148
- beads-kanban-ui/
149
- ├── src/
150
- │ ├── app/ # Next.js pages and routes
151
- │ │ ├── page.tsx # Projects dashboard
152
- │ │ ├── project/ # Kanban board view
153
- │ │ └── settings/ # Settings page
154
- │ ├── components/ # React components
155
- │ │ ├── ui/ # shadcn/ui components
156
- │ │ ├── kanban-column.tsx
157
- │ │ ├── bead-card.tsx
158
- │ │ └── bead-detail.tsx
159
- │ ├── hooks/ # Custom React hooks
160
- │ ├── lib/ # Utilities and API client
161
- │ └── types/ # TypeScript type definitions
162
- ├── server/
163
- │ └── src/
164
- │ ├── main.rs # Axum server entry point
165
- │ ├── db.rs # SQLite database layer
166
- │ └── routes/ # API route handlers
167
- └── package.json
168
- ```
169
-
170
- ---
171
-
172
- ## API Endpoints
173
-
174
- | Endpoint | Method | Description |
175
- |----------|--------|-------------|
176
- | `/api/health` | GET | Server health check |
177
- | `/api/projects` | GET/POST | List or create projects |
178
- | `/api/projects/:id` | GET/PUT/DELETE | Manage individual projects |
179
- | `/api/beads?path=` | GET | Read beads from a project path |
180
- | `/api/beads/comment` | POST | Add comment to a bead |
181
- | `/api/bd/command` | POST | Execute beads CLI commands |
182
- | `/api/git/branch-status` | GET | Get git branch status for a bead |
183
- | `/api/fs/list` | GET | List directory contents |
184
- | `/api/fs/exists` | GET | Check if a path exists |
185
- | `/api/watch/beads` | GET | Server-sent events for file changes |
186
-
187
- ### Environment Variables
188
-
189
- | Variable | Default | Description |
190
- |----------|---------|-------------|
191
- | `PORT` | `3008` | Backend server port |
192
- | `NEXT_PUBLIC_BACKEND_URL` | `http://localhost:3008` | Backend URL for frontend API calls |
193
-
194
- ---
195
-
196
- ## Development Commands
197
-
198
- ```bash
199
- # Run both frontend and backend
200
- npm run dev:full
201
-
202
- # Run frontend only
203
- npm run dev
204
-
205
- # Run backend only
206
- npm run server:dev
207
-
208
- # Build for production
209
- npm run build
210
- npm run server:build
211
-
212
- # Linting
213
- npm run lint
214
- ```
215
-
216
- ---
217
-
218
- ## Related Projects
219
-
220
- - **[Beads CLI](https://github.com/steveyegge/beads)** — Git-native issue tracker (the core tool this UI wraps)
221
- - **[Beads Orchestration](https://github.com/AvivK5498/Claude-Code-Beads-Orchestration)** — Multi-agent orchestration framework for Claude Code using beads
222
-
223
- ---
224
-
225
- ## License
226
-
227
- MIT