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.
- package/README.md +16 -222
- package/package.json +18 -55
- package/.designs/beads-kanban-ui-bj0.md +0 -73
- package/.designs/beads-kanban-ui-qxq.md +0 -144
- package/.designs/epic-support.md +0 -282
- package/.env.local.example +0 -2
- package/.eslintrc.json +0 -3
- package/.gitattributes +0 -3
- package/.github/workflows/release.yml +0 -123
- package/.history/README_20260121193710.md +0 -227
- package/.history/README_20260121193918.md +0 -227
- package/.history/README_20260121193921.md +0 -227
- package/.history/README_20260121193933.md +0 -227
- package/.history/README_20260121193934.md +0 -227
- package/.history/README_20260121193944.md +0 -227
- package/.history/README_20260121193953.md +0 -227
- package/.history/src/app/page_20260121133429.tsx +0 -134
- package/.history/src/app/page_20260121133928.tsx +0 -134
- package/.history/src/app/page_20260121144850.tsx +0 -138
- package/.history/src/app/page_20260121144854.tsx +0 -138
- package/.history/src/app/page_20260121144858.tsx +0 -138
- package/.history/src/app/page_20260121144902.tsx +0 -138
- package/.history/src/app/page_20260121144906.tsx +0 -138
- package/.history/src/app/page_20260121144911.tsx +0 -138
- package/.history/src/app/page_20260121144928.tsx +0 -138
- package/.playwright-mcp/.playwright-mcp/morphing-dialog-wheel-scroll-fix.png +0 -0
- package/.playwright-mcp/beams-test.png +0 -0
- package/.playwright-mcp/card-verification.png +0 -0
- package/.playwright-mcp/design-doc-dialog-fix-verification.png +0 -0
- package/.playwright-mcp/dialog-width-test.png +0 -0
- package/.playwright-mcp/homepage.png +0 -0
- package/.playwright-mcp/morphing-dialog-expanded.png +0 -0
- package/.playwright-mcp/morphing-dialog-fixes-final.png +0 -0
- package/.playwright-mcp/morphing-dialog-open.png +0 -0
- package/.playwright-mcp/page-2026-01-21T14-08-31-529Z.png +0 -0
- package/.playwright-mcp/page-2026-01-21T14-09-23-431Z.png +0 -0
- package/.playwright-mcp/page-2026-01-21T14-10-28-773Z.png +0 -0
- package/.playwright-mcp/page-2026-01-21T14-10-47-432Z.png +0 -0
- package/.playwright-mcp/page-2026-01-21T14-11-12-350Z.png +0 -0
- package/.playwright-mcp/screenshot-after-click.png +0 -0
- package/.playwright-mcp/screenshot-after-dialog-click.png +0 -0
- package/.playwright-mcp/sheet-restored-after-dialog-close.png +0 -0
- package/.playwright-mcp/test-1-sheet-open-with-overlay.png +0 -0
- package/.playwright-mcp/test-2-morphing-dialog-with-overlay.png +0 -0
- package/.playwright-mcp/test-3-sheet-open-dark-overlay.png +0 -0
- package/.playwright-mcp/test-4-morphing-dialog-with-dark-overlay.png +0 -0
- package/.playwright-mcp/test-5-morphing-dialog-scrolled.png +0 -0
- package/.playwright-mcp/test-6-sheet-restored-after-dialog-close.png +0 -0
- package/.playwright-mcp/wheel-scroll-fixed.png +0 -0
- package/Screenshots/bead-detail.png +0 -0
- package/Screenshots/dashboard.png +0 -0
- package/Screenshots/kanban-board.png +0 -0
- package/components.json +0 -27
- package/logo/logo.svg +0 -1
- package/next.config.js +0 -9
- package/npm/README.md +0 -37
- package/npm/package.json +0 -20
- package/postcss.config.js +0 -6
- package/public/logo.svg +0 -1
- package/restart.sh +0 -5
- package/server/Cargo.lock +0 -1685
- package/server/Cargo.toml +0 -24
- package/server/src/db.rs +0 -570
- package/server/src/main.rs +0 -141
- package/server/src/routes/beads.rs +0 -413
- package/server/src/routes/cli.rs +0 -150
- package/server/src/routes/fs.rs +0 -360
- package/server/src/routes/git.rs +0 -169
- package/server/src/routes/mod.rs +0 -107
- package/server/src/routes/projects.rs +0 -177
- package/server/src/routes/watch.rs +0 -211
- package/src/app/globals.css +0 -101
- package/src/app/layout.tsx +0 -36
- package/src/app/page.tsx +0 -348
- package/src/app/project/kanban-board.tsx +0 -356
- package/src/app/project/page.tsx +0 -18
- package/src/app/settings/page.tsx +0 -224
- package/src/components/Beams.css +0 -5
- package/src/components/Beams.jsx +0 -307
- package/src/components/Galaxy.css +0 -5
- package/src/components/Galaxy.jsx +0 -333
- package/src/components/activity-timeline.tsx +0 -172
- package/src/components/add-project-dialog.tsx +0 -219
- package/src/components/bead-card.tsx +0 -196
- package/src/components/bead-detail.tsx +0 -306
- package/src/components/color-picker.tsx +0 -101
- package/src/components/comment-input.tsx +0 -155
- package/src/components/comment-list.tsx +0 -147
- package/src/components/dependency-badge.tsx +0 -106
- package/src/components/design-doc-dialog.tsx +0 -58
- package/src/components/design-doc-preview.tsx +0 -97
- package/src/components/design-doc-viewer.tsx +0 -199
- package/src/components/editable-project-name.tsx +0 -178
- package/src/components/epic-card.tsx +0 -263
- package/src/components/folder-browser.tsx +0 -273
- package/src/components/footer.tsx +0 -27
- package/src/components/kanban/default.tsx +0 -184
- package/src/components/kanban-column.tsx +0 -167
- package/src/components/project-card.tsx +0 -191
- package/src/components/quick-filter-bar.tsx +0 -279
- package/src/components/scan-directory-dialog.tsx +0 -368
- package/src/components/status-donut.tsx +0 -197
- package/src/components/subtask-list.tsx +0 -128
- package/src/components/tag-picker.tsx +0 -252
- package/src/components/ui/.gitkeep +0 -0
- package/src/components/ui/alert-dialog.tsx +0 -141
- package/src/components/ui/avatar.tsx +0 -67
- package/src/components/ui/badge.tsx +0 -230
- package/src/components/ui/button.tsx +0 -433
- package/src/components/ui/card/index.tsx +0 -24
- package/src/components/ui/card/roiui-card.module.css +0 -197
- package/src/components/ui/card/roiui-card.tsx +0 -154
- package/src/components/ui/card/shadcn-card.tsx +0 -76
- package/src/components/ui/chart.tsx +0 -369
- package/src/components/ui/dialog.tsx +0 -122
- package/src/components/ui/dropdown-menu.tsx +0 -201
- package/src/components/ui/input.tsx +0 -22
- package/src/components/ui/kanban.tsx +0 -522
- package/src/components/ui/morphing-dialog.tsx +0 -457
- package/src/components/ui/popover.tsx +0 -33
- package/src/components/ui/progress.tsx +0 -28
- package/src/components/ui/scroll-area.tsx +0 -48
- package/src/components/ui/select.tsx +0 -159
- package/src/components/ui/separator.tsx +0 -31
- package/src/components/ui/sheet.tsx +0 -142
- package/src/components/ui/skeleton.tsx +0 -15
- package/src/components/ui/toast.tsx +0 -129
- package/src/components/ui/toaster.tsx +0 -35
- package/src/components/ui/tooltip.tsx +0 -30
- package/src/hooks/.gitkeep +0 -0
- package/src/hooks/use-bead-filters.ts +0 -261
- package/src/hooks/use-beads.ts +0 -162
- package/src/hooks/use-branch-statuses.ts +0 -161
- package/src/hooks/use-epics.ts +0 -173
- package/src/hooks/use-file-watcher.ts +0 -111
- package/src/hooks/use-keyboard-navigation.ts +0 -282
- package/src/hooks/use-project.ts +0 -61
- package/src/hooks/use-projects.ts +0 -93
- package/src/hooks/use-toast.ts +0 -194
- package/src/hooks/useClickOutside.tsx +0 -26
- package/src/lib/.gitkeep +0 -0
- package/src/lib/api.ts +0 -186
- package/src/lib/beads-parser.ts +0 -252
- package/src/lib/cli.ts +0 -193
- package/src/lib/db.ts +0 -145
- package/src/lib/design-doc.ts +0 -74
- package/src/lib/epic-parser.ts +0 -242
- package/src/lib/git.ts +0 -102
- package/src/lib/utils.ts +0 -12
- package/src/types/index.ts +0 -107
- package/tailwind.config.ts +0 -85
- package/tsconfig.json +0 -26
- /package/{npm/bin → bin}/cli.js +0 -0
- /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
|
-

|
|
13
|
-
|
|
14
|
-
**Kanban Board** — Organize tasks across Open → In Progress → In Review → Closed:
|
|
15
|
-

|
|
16
|
-
|
|
17
|
-
**Bead Details** — Dive into any task with full context and subtasks:
|
|
18
|
-

|
|
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
|
-

|
|
13
|
-
|
|
14
|
-
**Kanban Board** — Organize tasks across Open → In Progress → In Review → Closed:
|
|
15
|
-

|
|
16
|
-
|
|
17
|
-
**Bead Details** — Dive into any task with full context and subtasks:
|
|
18
|
-

|
|
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
|
-

|
|
13
|
-
|
|
14
|
-
**Kanban Board** — Organize tasks across Open → In Progress → In Review → Closed:
|
|
15
|
-

|
|
16
|
-
|
|
17
|
-
**Bead Details** — Dive into any task with full context and subtasks:
|
|
18
|
-

|
|
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
|