claudeboard 2.16.0 → 3.1.0
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 +89 -93
- package/bin/cli.js +198 -238
- package/bin/init-context.js +22 -0
- package/package.json +22 -43
- package/public/app.js +1411 -0
- package/public/index.html +250 -0
- package/public/style.css +1872 -0
- package/src/context-template.md +20 -0
- package/src/notifier.js +65 -0
- package/src/orchestrator.js +800 -0
- package/src/scanner.js +153 -0
- package/src/server.js +205 -0
- package/src/store.js +182 -0
- package/src/verifier.js +131 -0
- package/agents/architect.js +0 -166
- package/agents/board-client.js +0 -126
- package/agents/claude-api.js +0 -124
- package/agents/claude-resolver.js +0 -167
- package/agents/developer.js +0 -224
- package/agents/expo-health.js +0 -727
- package/agents/orchestrator.js +0 -306
- package/agents/qa.js +0 -336
- package/dashboard/index.html +0 -1980
- package/dashboard/server.js +0 -412
- package/sql/setup.sql +0 -57
- package/tools/filesystem.js +0 -95
- package/tools/screenshot.js +0 -74
- package/tools/supabase-reader.js +0 -74
- package/tools/terminal.js +0 -63
package/README.md
CHANGED
|
@@ -1,128 +1,124 @@
|
|
|
1
|
-
# ClaudeBoard
|
|
1
|
+
# ClaudeBoard v3
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
Turn a PRD into tasks → let Claude work autonomously → watch progress in real time.
|
|
3
|
+
Visual orchestrator for Claude Code agent teams. Run and manage multiple Claude Code agents from a single browser-based kanban dashboard.
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
## What it does
|
|
7
6
|
|
|
8
|
-
|
|
7
|
+
ClaudeBoard launches a local web server and opens a dashboard where you can:
|
|
8
|
+
- Chat with an Orchestrator agent that interviews you, generates a PRD, and breaks work into tasks
|
|
9
|
+
- Watch tasks move through a Kanban board (Backlog → In Progress → Verifying → Done / Error)
|
|
10
|
+
- Stream live agent output in a built-in terminal drawer
|
|
11
|
+
- Receive webhook notifications when tasks complete or fail
|
|
12
|
+
|
|
13
|
+
## Requirements
|
|
14
|
+
|
|
15
|
+
- Node.js >= 18
|
|
16
|
+
- Claude CLI installed and logged in (`claude --version` should work)
|
|
17
|
+
|
|
18
|
+
## Installation
|
|
19
|
+
|
|
20
|
+
Run without installing:
|
|
9
21
|
|
|
10
22
|
```
|
|
11
|
-
claudeboard
|
|
12
|
-
claudeboard import-prd → Parse PRD → create tasks automatically
|
|
13
|
-
claudeboard start → Launch dashboard on localhost
|
|
14
|
-
→ Give Claude Code the AGENT.md file
|
|
15
|
-
→ Claude works autonomously 24/7
|
|
23
|
+
npx claudeboard
|
|
16
24
|
```
|
|
17
25
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
## Install
|
|
26
|
+
Or install globally:
|
|
21
27
|
|
|
22
|
-
```
|
|
28
|
+
```
|
|
23
29
|
npm install -g claudeboard
|
|
30
|
+
claudeboard
|
|
24
31
|
```
|
|
25
32
|
|
|
26
|
-
|
|
33
|
+
## Usage
|
|
27
34
|
|
|
28
|
-
## Setup (one time per project)
|
|
29
|
-
|
|
30
|
-
### 1. Init
|
|
31
|
-
```bash
|
|
32
|
-
cd your-project
|
|
33
|
-
claudeboard init
|
|
34
35
|
```
|
|
35
|
-
|
|
36
|
-
- Project name
|
|
37
|
-
- Supabase URL
|
|
38
|
-
- Supabase anon key
|
|
39
|
-
- Port (default 3131)
|
|
40
|
-
|
|
41
|
-
### 2. Run SQL in Supabase
|
|
42
|
-
Open `claudeboard-setup.sql` and run it in your Supabase SQL Editor.
|
|
43
|
-
This creates the tables `cb_epics`, `cb_tasks`, `cb_logs` with Realtime enabled.
|
|
44
|
-
|
|
45
|
-
### 3. Import your PRD
|
|
46
|
-
```bash
|
|
47
|
-
claudeboard import-prd ./PRD.md
|
|
36
|
+
claudeboard [options]
|
|
48
37
|
```
|
|
49
|
-
Claude parses your PRD and creates structured tasks grouped by epic automatically.
|
|
50
38
|
|
|
51
|
-
###
|
|
52
|
-
```bash
|
|
53
|
-
claudeboard start
|
|
54
|
-
```
|
|
55
|
-
Opens `http://localhost:3131` in your browser.
|
|
39
|
+
### CLI Flags
|
|
56
40
|
|
|
57
|
-
|
|
41
|
+
| Flag | Default | Description |
|
|
42
|
+
|------|---------|-------------|
|
|
43
|
+
| `--port <number>` | `3000` | Port to run the dashboard server on |
|
|
44
|
+
| `--open <bool>` | `true` | Automatically open the dashboard in your browser |
|
|
45
|
+
| `--webhook <url>` | — | Webhook URL (must be `https://`) to POST agent lifecycle events to |
|
|
46
|
+
| `--max-agents <number>` | `3` | Maximum number of agents allowed to run concurrently |
|
|
58
47
|
|
|
59
|
-
|
|
48
|
+
### Examples
|
|
60
49
|
|
|
61
|
-
```bash
|
|
62
|
-
claude --context AGENT.md
|
|
63
50
|
```
|
|
51
|
+
# Start on default port, auto-open browser
|
|
52
|
+
claudeboard
|
|
64
53
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
2. Start it → mark as `in_progress`
|
|
68
|
-
3. Do the work (write code, run tests, fix errors)
|
|
69
|
-
4. Log progress in real time
|
|
70
|
-
5. Mark as `done` or `error`
|
|
71
|
-
6. Repeat until all tasks are complete
|
|
54
|
+
# Use a custom port without auto-opening
|
|
55
|
+
claudeboard --port 4000 --open false
|
|
72
56
|
|
|
73
|
-
|
|
57
|
+
# Limit to 5 concurrent agents and send events to a webhook
|
|
58
|
+
claudeboard --max-agents 5 --webhook https://example.com/hooks/claudeboard
|
|
59
|
+
```
|
|
74
60
|
|
|
75
|
-
##
|
|
61
|
+
## How it works
|
|
76
62
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
63
|
+
1. Start ClaudeBoard — a local Express server starts and the dashboard opens in your browser.
|
|
64
|
+
2. The Orchestrator agent greets you and asks what you want to build.
|
|
65
|
+
3. After 2–3 exchanges it generates a PRD and populates the Kanban board with tasks.
|
|
66
|
+
4. Claude Code sub-agents are spawned automatically (respecting `--max-agents`).
|
|
67
|
+
5. Each agent's output streams live to the task card in the dashboard.
|
|
68
|
+
6. A Verifier agent checks each completed task — approved tasks move to Done; failed tasks spawn a Fix task.
|
|
83
69
|
|
|
84
|
-
|
|
70
|
+
## Project data
|
|
85
71
|
|
|
86
|
-
|
|
72
|
+
ClaudeBoard stores all state in `.claudeboard/` inside your working directory:
|
|
87
73
|
|
|
88
|
-
|
|
|
89
|
-
|
|
90
|
-
|
|
|
91
|
-
|
|
|
92
|
-
|
|
|
93
|
-
|
|
|
94
|
-
| POST | `/api/tasks/:id/complete` | Mark task as done |
|
|
95
|
-
| POST | `/api/tasks/:id/fail` | Mark task as error |
|
|
96
|
-
| POST | `/api/tasks` | Add a new task |
|
|
97
|
-
| GET | `/api/tasks/:id/logs` | Get logs for a task |
|
|
74
|
+
| File | Contents |
|
|
75
|
+
|------|----------|
|
|
76
|
+
| `.claudeboard/tasks.json` | Task list and status |
|
|
77
|
+
| `.claudeboard/prd.md` | Generated PRD |
|
|
78
|
+
| `.claudeboard/agents.json` | Active agent registry |
|
|
79
|
+
| `.claudeboard/config.json` | Board configuration (webhook URL, etc.) |
|
|
98
80
|
|
|
99
|
-
|
|
81
|
+
**Add `.claudeboard/` to your `.gitignore`** — it may contain webhook URLs and agent output that should not be committed.
|
|
100
82
|
|
|
101
|
-
##
|
|
83
|
+
## Security
|
|
102
84
|
|
|
103
|
-
|
|
85
|
+
ClaudeBoard is designed to be safe to run on a shared development machine.
|
|
104
86
|
|
|
105
|
-
|
|
106
|
-
# On the notebook running claudeboard:
|
|
107
|
-
# Install Tailscale: https://tailscale.com
|
|
108
|
-
tailscale up
|
|
87
|
+
### Localhost-only server
|
|
109
88
|
|
|
110
|
-
|
|
111
|
-
# Visit http://<notebook-tailscale-ip>:3131
|
|
112
|
-
```
|
|
89
|
+
The server **only** binds to `127.0.0.1` (loopback). It is never reachable from the network or other machines on the same LAN.
|
|
113
90
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
91
|
+
### No external data transmission
|
|
92
|
+
|
|
93
|
+
ClaudeBoard sends **no data to any external service**. The only outbound network calls are:
|
|
94
|
+
|
|
95
|
+
- Calls to the `claude` CLI (uses your existing local session — no API key required)
|
|
96
|
+
- Optional webhook `POST` requests to a URL **you** configure with `--webhook`
|
|
97
|
+
|
|
98
|
+
Webhook URLs must be `https://` and calls time out after 5 seconds.
|
|
99
|
+
|
|
100
|
+
### Subprocess safety
|
|
101
|
+
|
|
102
|
+
All `claude` CLI invocations use `spawn()` with an explicit argument array (`shell: false`). Prompts are delivered via stdin, not command-line arguments, so they never appear in process listings and there is no shell-injection risk regardless of what the user types.
|
|
103
|
+
|
|
104
|
+
### Input sanitization & rate limiting
|
|
105
|
+
|
|
106
|
+
- User chat messages are stripped of null bytes and capped at 10,000 characters before reaching the CLI.
|
|
107
|
+
- WebSocket connections are rate-limited to 10 messages per second per client.
|
|
108
|
+
- Task IDs are validated against a strict alphanumeric pattern before any file or process operations.
|
|
109
|
+
|
|
110
|
+
### Agent output cap
|
|
111
|
+
|
|
112
|
+
Agent output stored to disk is capped at **1 MB per task** to prevent runaway processes from filling the disk.
|
|
113
|
+
|
|
114
|
+
### Session-based auth
|
|
115
|
+
|
|
116
|
+
Access to the dashboard requires access to `127.0.0.1` (i.e., you must be logged in to the machine). There is no additional authentication layer — treat it like any other local dev tool.
|
|
117
|
+
|
|
118
|
+
### Reporting vulnerabilities
|
|
119
119
|
|
|
120
|
-
|
|
120
|
+
Please open a GitHub issue with the `[SECURITY]` tag. Do **not** include exploit details in a public issue — reach out privately first.
|
|
121
121
|
|
|
122
|
-
##
|
|
122
|
+
## License
|
|
123
123
|
|
|
124
|
-
|
|
125
|
-
- **Server**: Express + WebSockets
|
|
126
|
-
- **Database**: Supabase (Postgres + Realtime)
|
|
127
|
-
- **Dashboard**: Vanilla HTML/CSS/JS (no build step)
|
|
128
|
-
- **AI parsing**: Claude claude-sonnet-4-20250514 for PRD analysis
|
|
124
|
+
MIT
|