claude-team-dashboard 1.2.2
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.
Potentially problematic release.
This version of claude-team-dashboard might be problematic. Click here for more details.
- package/CHANGELOG.md +76 -0
- package/LICENSE +21 -0
- package/README.md +722 -0
- package/cleanup.js +73 -0
- package/config.js +50 -0
- package/dist/assets/icons-Ijf8rQIc.js +1 -0
- package/dist/assets/index-Cqc1m1x_.css +1 -0
- package/dist/assets/index-jGy3ms0W.js +9 -0
- package/dist/assets/react-vendor-DbmSkCAF.js +1 -0
- package/dist/index.html +16 -0
- package/index.html +13 -0
- package/package.json +93 -0
- package/server.js +953 -0
- package/src/App.jsx +372 -0
- package/src/animations-enhanced.css +929 -0
- package/src/animations.css +783 -0
- package/src/components/ActivityFeed.jsx +289 -0
- package/src/components/AgentActivity.jsx +104 -0
- package/src/components/AgentCard.jsx +163 -0
- package/src/components/AgentOutputViewer.jsx +334 -0
- package/src/components/ArchiveViewer.jsx +283 -0
- package/src/components/ConnectionStatus.jsx +124 -0
- package/src/components/DetailedTaskProgress.jsx +126 -0
- package/src/components/ErrorBoundary.jsx +132 -0
- package/src/components/Header.jsx +154 -0
- package/src/components/LiveAgentStream.jsx +176 -0
- package/src/components/LiveCommunication.jsx +326 -0
- package/src/components/LiveMetrics.jsx +100 -0
- package/src/components/RealTimeMessages.jsx +298 -0
- package/src/components/SkeletonLoader.jsx +384 -0
- package/src/components/StatsOverview.jsx +209 -0
- package/src/components/SystemStatus.jsx +57 -0
- package/src/components/TaskList.jsx +306 -0
- package/src/components/TeamCard.jsx +126 -0
- package/src/components/TeamHistory.jsx +204 -0
- package/src/components/__tests__/ConnectionStatus.test.jsx +54 -0
- package/src/components/__tests__/StatsOverview.test.jsx +66 -0
- package/src/config/constants.js +59 -0
- package/src/hooks/useCounterAnimation.js +219 -0
- package/src/hooks/useWebSocket.js +76 -0
- package/src/index.css +1818 -0
- package/src/main.jsx +17 -0
- package/src/polish-enhancements.css +303 -0
- package/src/premium-visual-polish.css +830 -0
- package/src/responsive-enhancements.css +666 -0
- package/src/styles/theme.css +395 -0
- package/src/test/setup.js +19 -0
- package/start.js +36 -0
- package/vite.config.js +37 -0
package/README.md
ADDED
|
@@ -0,0 +1,722 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
<img src="docs/logo.png" alt="Claude Agent Dashboard" width="200" />
|
|
4
|
+
|
|
5
|
+
# π€ Claude Agent Dashboard
|
|
6
|
+
|
|
7
|
+
### Stop Flying Blind β Monitor Your Claude Code Agent Teams in Real Time
|
|
8
|
+
|
|
9
|
+
[](https://github.com/mukul975/claude-team-dashboard/blob/main/LICENSE)
|
|
10
|
+
[](https://nodejs.org/)
|
|
11
|
+
[](https://github.com/mukul975/claude-team-dashboard)
|
|
12
|
+
[](https://vitejs.dev/)
|
|
13
|
+
[](https://github.com/mukul975/claude-team-dashboard)
|
|
14
|
+
[](https://github.com/mukul975/claude-team-dashboard/pulls)
|
|
15
|
+
[](https://github.com/mukul975/claude-team-dashboard)
|
|
16
|
+
|
|
17
|
+
**Monitor, track, and orchestrate** your [Claude Code](https://docs.anthropic.com/en/docs/agents-and-tools/claude-code/overview) agent teams from a **single, unified dashboard** β with **zero-delay WebSocket streaming**.
|
|
18
|
+
|
|
19
|
+
[**Get Started in 60 Seconds**](#-quick-start) Β· [**See Features**](#-features) Β· [**Live Demo**](#-demo) Β· [**Docs**](#-documentation) Β· [**Contributing**](#-contributing)
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
<!-- π¬ DEMO GIF PLACEHOLDER - Add animated demo showing dashboard in action -->
|
|
24
|
+
<img src="docs/dashboard-demo.gif" alt="Claude Agent Dashboard Demo" width="100%" />
|
|
25
|
+
|
|
26
|
+
_Watch your agents work in real time β track tasks, monitor messages, catch errors instantly_
|
|
27
|
+
|
|
28
|
+
</div>
|
|
29
|
+
|
|
30
|
+
## π― Why This Exists
|
|
31
|
+
|
|
32
|
+
### The Problem
|
|
33
|
+
|
|
34
|
+
You're running multiple Claude Code agents across projects. Suddenly, chaos:
|
|
35
|
+
|
|
36
|
+
- **Lost visibility**: Which agent is doing what? You have no idea.
|
|
37
|
+
- **Ghost messages**: Agents talk to each other. You can't see it.
|
|
38
|
+
- **Debug hell**: Something breaks. You're stuck playing detective across 5 terminal windows.
|
|
39
|
+
- **Task black holes**: Tasks start, disappear, maybe finish. Who knows?
|
|
40
|
+
|
|
41
|
+
**Running multi-agent workflows without monitoring is like driving blindfolded.**
|
|
42
|
+
|
|
43
|
+
### The Solution
|
|
44
|
+
|
|
45
|
+
Claude Agent Dashboard gives you **X-ray vision into your agent teams**:
|
|
46
|
+
|
|
47
|
+
β
**See everything** β Live status, tasks, messages, system metrics
|
|
48
|
+
β
**Debug faster** β Trace inter-agent communication in real time
|
|
49
|
+
β
**Stay in control** β Know exactly what's happening, always
|
|
50
|
+
β
**Ship with confidence** β Spot failures before they cascade
|
|
51
|
+
|
|
52
|
+
> Built by a **cybersecurity researcher** who knows that **visibility is the first line of defense** β even for AI agents.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## β¨ Highlights
|
|
57
|
+
|
|
58
|
+
<table>
|
|
59
|
+
<tr>
|
|
60
|
+
<td width="50%">
|
|
61
|
+
|
|
62
|
+
### π **Zero-Config Real-Time Monitoring**
|
|
63
|
+
|
|
64
|
+
Launch the dashboard with **one command**. WebSocket streaming auto-discovers agents. No configuration needed.
|
|
65
|
+
|
|
66
|
+
### π **Visual Task Management**
|
|
67
|
+
|
|
68
|
+
See tasks as they flow through your agent team. **Progress bars**, status badges, dependency chains β all live-updated.
|
|
69
|
+
|
|
70
|
+
### π¬ **Inter-Agent Message Inspector**
|
|
71
|
+
|
|
72
|
+
Debug coordination issues instantly. Watch agents communicate in real time with **full message history** and **conversation threads**.
|
|
73
|
+
|
|
74
|
+
</td>
|
|
75
|
+
<td width="50%">
|
|
76
|
+
|
|
77
|
+
### π **Live Activity Chronology**
|
|
78
|
+
|
|
79
|
+
Every agent action β **timestamped**, **color-coded**, **filterable**. Never wonder "what happened?" again.
|
|
80
|
+
|
|
81
|
+
### π₯οΈ **System Performance Metrics**
|
|
82
|
+
|
|
83
|
+
Track CPU, memory, and network usage across your agent infrastructure. Catch performance bottlenecks **before** they cause failures.
|
|
84
|
+
|
|
85
|
+
### π **Smart Alerts & Notifications**
|
|
86
|
+
|
|
87
|
+
Instant desktop notifications for task completions, errors, and state changes. **Never miss critical events**.
|
|
88
|
+
|
|
89
|
+
</td>
|
|
90
|
+
</tr>
|
|
91
|
+
</table>
|
|
92
|
+
|
|
93
|
+
> π **Deep dive**: See [**FEATURES.md**](FEATURES.md) for the complete feature breakdown with architecture details.
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## π Quick Start
|
|
98
|
+
|
|
99
|
+
### β‘ 60-Second Setup
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
# 1. Clone and enter
|
|
103
|
+
git clone https://github.com/mukul975/claude-team-dashboard.git
|
|
104
|
+
cd agentdashboard
|
|
105
|
+
|
|
106
|
+
# 2. Install dependencies
|
|
107
|
+
npm install
|
|
108
|
+
|
|
109
|
+
# 3. Launch dashboard (starts both frontend + backend)
|
|
110
|
+
npm start
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**That's it.** Open **http://localhost:5173** and you're monitoring agents in real time.
|
|
114
|
+
|
|
115
|
+
### π Dev Container (Instant Environment)
|
|
116
|
+
|
|
117
|
+
Have VS Code + Docker? **Skip setup entirely**:
|
|
118
|
+
|
|
119
|
+
1. Open project in VS Code
|
|
120
|
+
2. Click "Reopen in Container" when prompted
|
|
121
|
+
3. Everything auto-installs. You're ready.
|
|
122
|
+
|
|
123
|
+
### π¦ Alternative Package Managers
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
# Using Yarn
|
|
127
|
+
yarn install && yarn start
|
|
128
|
+
|
|
129
|
+
# Using pnpm
|
|
130
|
+
pnpm install && pnpm start
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### β
Prerequisites
|
|
134
|
+
|
|
135
|
+
- **Node.js** v18+ ([Download](https://nodejs.org/))
|
|
136
|
+
- **npm** v9+ (comes with Node.js)
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## π¬ Demo
|
|
141
|
+
|
|
142
|
+
<!-- VIDEO/GIF PLACEHOLDER -->
|
|
143
|
+
> **π₯ Demo video coming soon** β Watch a 2-minute walkthrough of key features
|
|
144
|
+
|
|
145
|
+
**Try it yourself**: Clone the repo and run `npm start` β see your agent team in action within 60 seconds.
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## ποΈ How It Works
|
|
150
|
+
|
|
151
|
+
### Architecture at a Glance
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
155
|
+
β Frontend (React + Vite) β
|
|
156
|
+
β βββ Real-time UI components β
|
|
157
|
+
β βββ WebSocket client β
|
|
158
|
+
β βββ State management β
|
|
159
|
+
ββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββ
|
|
160
|
+
β WebSocket (bidirectional)
|
|
161
|
+
ββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββ
|
|
162
|
+
β Backend (Node.js + Express) β
|
|
163
|
+
β βββ WebSocket server β
|
|
164
|
+
β βββ Agent event aggregation β
|
|
165
|
+
β βββ File system monitoring (chokidar) β
|
|
166
|
+
ββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββ
|
|
167
|
+
β Reads agent logs
|
|
168
|
+
ββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββ
|
|
169
|
+
β Claude Code Agent Teams β
|
|
170
|
+
β βββ ~/.claude/projects/{project}/*.jsonl β
|
|
171
|
+
β βββ Real-time agent session logs β
|
|
172
|
+
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### Project Structure
|
|
176
|
+
|
|
177
|
+
```
|
|
178
|
+
agentdashboard/
|
|
179
|
+
βββ src/ # Frontend source code
|
|
180
|
+
β βββ components/ # React UI components
|
|
181
|
+
β βββ services/ # WebSocket & API clients
|
|
182
|
+
β βββ hooks/ # Custom React hooks
|
|
183
|
+
β βββ utils/ # Helper functions
|
|
184
|
+
βββ .devcontainer/ # VS Code dev container config
|
|
185
|
+
βββ .github/ # GitHub templates & workflows
|
|
186
|
+
β βββ ISSUE_TEMPLATE/ # Bug/feature issue forms
|
|
187
|
+
β βββ workflows/ # CI/CD pipelines
|
|
188
|
+
βββ docs/ # Documentation & assets
|
|
189
|
+
βββ server.js # WebSocket backend server
|
|
190
|
+
βββ start.js # Unified launcher script
|
|
191
|
+
βββ cleanup.js # Process cleanup utility
|
|
192
|
+
βββ vite.config.js # Vite bundler config
|
|
193
|
+
βββ FEATURES.md # Detailed feature list
|
|
194
|
+
βββ CONTRIBUTING.md # Contribution guide
|
|
195
|
+
βββ CODE_OF_CONDUCT.md # Community standards
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## π οΈ Built With
|
|
201
|
+
|
|
202
|
+
<table>
|
|
203
|
+
<tr>
|
|
204
|
+
<td align="center" width="25%">
|
|
205
|
+
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/react/react-original.svg" width="48" height="48" alt="React" />
|
|
206
|
+
<br><strong>React 19.2</strong>
|
|
207
|
+
<br><sub>UI Framework</sub>
|
|
208
|
+
</td>
|
|
209
|
+
<td align="center" width="25%">
|
|
210
|
+
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/nodejs/nodejs-original.svg" width="48" height="48" alt="Node.js" />
|
|
211
|
+
<br><strong>Node.js 18+</strong>
|
|
212
|
+
<br><sub>Backend Runtime</sub>
|
|
213
|
+
</td>
|
|
214
|
+
<td align="center" width="25%">
|
|
215
|
+
<img src="https://vitejs.dev/logo.svg" width="48" height="48" alt="Vite" />
|
|
216
|
+
<br><strong>Vite 7.x</strong>
|
|
217
|
+
<br><sub>Build Tool</sub>
|
|
218
|
+
</td>
|
|
219
|
+
<td align="center" width="25%">
|
|
220
|
+
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/javascript/javascript-original.svg" width="48" height="48" alt="JavaScript" />
|
|
221
|
+
<br><strong>JavaScript ES6+</strong>
|
|
222
|
+
<br><sub>Core Language</sub>
|
|
223
|
+
</td>
|
|
224
|
+
</tr>
|
|
225
|
+
</table>
|
|
226
|
+
|
|
227
|
+
**Core Technologies:**
|
|
228
|
+
|
|
229
|
+
- **WebSocket (ws)** β Real-time bidirectional communication
|
|
230
|
+
- **Express.js** β Backend API framework
|
|
231
|
+
- **Chokidar** β File system monitoring for agent logs
|
|
232
|
+
- **Lucide React** β Icon library
|
|
233
|
+
- **Vitest** β Unit testing framework
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## π Documentation
|
|
238
|
+
|
|
239
|
+
| Document | Description |
|
|
240
|
+
|----------|-------------|
|
|
241
|
+
| [**FEATURES.md**](FEATURES.md) | Complete feature breakdown with technical architecture |
|
|
242
|
+
| [**NATURAL_LANGUAGE_AND_LIFECYCLE.md**](NATURAL_LANGUAGE_AND_LIFECYCLE.md) | **π Comprehensive guide** to message parsing and team lifecycle tracking |
|
|
243
|
+
| [**CONTRIBUTING.md**](CONTRIBUTING.md) | How to contribute β setup, coding standards, PR process |
|
|
244
|
+
| [**CODE_OF_CONDUCT.md**](CODE_OF_CONDUCT.md) | Community guidelines and standards |
|
|
245
|
+
| [**Natural Language Features**](#-natural-language-message-parsing) | How the dashboard translates technical agent messages to readable format |
|
|
246
|
+
| [**Team Lifecycle Tracking**](#-team-lifecycle-tracking) | Automatic team monitoring, archiving, and history management |
|
|
247
|
+
| [**docs/**](docs/) | Additional guides, architecture docs, and assets |
|
|
248
|
+
|
|
249
|
+
**Need help?** Open a [Discussion](https://github.com/mukul975/claude-team-dashboard/discussions) or check existing [Issues](https://github.com/mukul975/claude-team-dashboard/issues).
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## π¬ Natural Language Message Parsing
|
|
254
|
+
|
|
255
|
+
One of the dashboard's most powerful features is its ability to **automatically translate technical agent messages into human-readable natural language**. This makes it easy to understand what your agents are doing without decoding JSON or technical jargon.
|
|
256
|
+
|
|
257
|
+
### How It Works
|
|
258
|
+
|
|
259
|
+
The dashboard intelligently parses inter-agent messages and converts them from raw technical format to friendly, contextual descriptions:
|
|
260
|
+
|
|
261
|
+
#### Message Type Detection
|
|
262
|
+
|
|
263
|
+
The parser automatically identifies message types and formats them appropriately:
|
|
264
|
+
|
|
265
|
+
**Status Updates**
|
|
266
|
+
```json
|
|
267
|
+
// Raw message:
|
|
268
|
+
{"type": "idle_notification", "lastTaskSubject": "Fix authentication bug"}
|
|
269
|
+
|
|
270
|
+
// Displayed as:
|
|
271
|
+
π€ Finished "Fix authentication bug" - ready for next task
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
**Task Completions**
|
|
275
|
+
```json
|
|
276
|
+
// Raw message:
|
|
277
|
+
{"type": "task_completed", "taskSubject": "Write documentation"}
|
|
278
|
+
|
|
279
|
+
// Displayed as:
|
|
280
|
+
β
Completed: Write documentation
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
**Task Assignments**
|
|
284
|
+
```json
|
|
285
|
+
// Raw message:
|
|
286
|
+
{"type": "task_assigned", "taskSubject": "Review pull request"}
|
|
287
|
+
|
|
288
|
+
// Displayed as:
|
|
289
|
+
π Started working on: Review pull request
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
**Coordination Messages**
|
|
293
|
+
```json
|
|
294
|
+
// Raw message:
|
|
295
|
+
{"type": "coordination", "message": "Waiting for backend team to finish API endpoint"}
|
|
296
|
+
|
|
297
|
+
// Displayed as:
|
|
298
|
+
π€ Waiting for backend team to finish API endpoint
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
**Questions**
|
|
302
|
+
```json
|
|
303
|
+
// Raw message:
|
|
304
|
+
{"type": "question", "message": "Should I use the staging or production database?"}
|
|
305
|
+
|
|
306
|
+
// Displayed as:
|
|
307
|
+
β Should I use the staging or production database?
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
### Message Classification
|
|
311
|
+
|
|
312
|
+
Messages are automatically categorized into four types with distinct visual styling:
|
|
313
|
+
|
|
314
|
+
| Type | Icon | Color | Use Case |
|
|
315
|
+
|------|------|-------|----------|
|
|
316
|
+
| **Status** | π | Blue | General updates, progress reports, idle notifications |
|
|
317
|
+
| **Completion** | β
| Green | Task completions, success notifications |
|
|
318
|
+
| **Coordination** | π€ | Purple | Team communication, help requests, discussions |
|
|
319
|
+
| **Question** | β | Yellow | Questions requiring attention or clarification |
|
|
320
|
+
|
|
321
|
+
### Smart Features
|
|
322
|
+
|
|
323
|
+
**Summary Prioritization**: If a message includes a `summary` field, the dashboard displays it instead of the full technical content, making messages more concise.
|
|
324
|
+
|
|
325
|
+
**Truncation**: Long messages are automatically truncated to 150 characters with "..." to prevent UI clutter.
|
|
326
|
+
|
|
327
|
+
**Fallback Handling**: If a message can't be parsed as JSON, it's displayed as-is with intelligent handling of empty or malformed messages.
|
|
328
|
+
|
|
329
|
+
**Real-Time Translation**: Messages are parsed and displayed instantly as they arrive via WebSocket β no delays or batch processing.
|
|
330
|
+
|
|
331
|
+
### Viewing Messages
|
|
332
|
+
|
|
333
|
+
The dashboard provides two views for agent communication:
|
|
334
|
+
|
|
335
|
+
**1. Live Communication Panel** (`LiveCommunication.jsx`)
|
|
336
|
+
- Chat-style interface showing conversation flow
|
|
337
|
+
- Team selector to focus on specific team messages
|
|
338
|
+
- Auto-scroll feature (can be toggled)
|
|
339
|
+
- Shows sender β recipient for each message
|
|
340
|
+
- Updates every 5 seconds
|
|
341
|
+
|
|
342
|
+
**2. Agent Inter-Communication Stream** (`RealTimeMessages.jsx`)
|
|
343
|
+
- Aggregated view across all teams
|
|
344
|
+
- Filter messages by type (all, status, completion, coordination, question)
|
|
345
|
+
- Displays last 100 messages across all teams
|
|
346
|
+
- Shows team context for each message
|
|
347
|
+
- Visual stats showing breakdown by message type
|
|
348
|
+
|
|
349
|
+
### Technical Implementation
|
|
350
|
+
|
|
351
|
+
The parsing logic is located in:
|
|
352
|
+
- **File**: `src/components/RealTimeMessages.jsx` (lines 8-83)
|
|
353
|
+
- **Function**: `parseMessageToNatural(text, summary)`
|
|
354
|
+
|
|
355
|
+
**Message Sources**: Messages are fetched from the Claude Code inbox files:
|
|
356
|
+
```
|
|
357
|
+
~/.claude/teams/{team-name}/inboxes/{agent-name}.json
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
**API Endpoints**:
|
|
361
|
+
- `GET /api/teams/:teamName/inboxes` - Get all inboxes for a team
|
|
362
|
+
- `GET /api/teams/:teamName/inboxes/:agentName` - Get specific agent's inbox
|
|
363
|
+
|
|
364
|
+
### Example: Message Flow
|
|
365
|
+
|
|
366
|
+
```
|
|
367
|
+
1. Agent sends technical message
|
|
368
|
+
β Claude Code writes to ~/.claude/teams/my-team/inboxes/agent-1.json
|
|
369
|
+
|
|
370
|
+
2. Dashboard fetches message via API
|
|
371
|
+
β GET /api/teams/my-team/inboxes
|
|
372
|
+
|
|
373
|
+
3. Parser processes message
|
|
374
|
+
β parseMessageToNatural(rawMessage)
|
|
375
|
+
|
|
376
|
+
4. Natural language message displayed
|
|
377
|
+
β "π€ Finished 'Fix bug' - ready for next task"
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
### Benefits
|
|
381
|
+
|
|
382
|
+
- **No Technical Knowledge Required**: Anyone can understand what agents are doing
|
|
383
|
+
- **Quick Status Checks**: Glance at communication panel to see team progress
|
|
384
|
+
- **Contextual Understanding**: Message types provide instant context
|
|
385
|
+
- **Reduced Cognitive Load**: No need to parse JSON or technical logs
|
|
386
|
+
- **Instant Clarity**: Messages are translated in real-time as they arrive
|
|
387
|
+
|
|
388
|
+
---
|
|
389
|
+
|
|
390
|
+
## π Team Lifecycle Tracking
|
|
391
|
+
|
|
392
|
+
The dashboard automatically tracks the **complete lifecycle of every agent team** from creation to completion, with automatic archiving for historical reference.
|
|
393
|
+
|
|
394
|
+
### Automatic Team Monitoring
|
|
395
|
+
|
|
396
|
+
The dashboard watches the Claude Code teams directory (`~/.claude/teams/`) in real-time and tracks:
|
|
397
|
+
|
|
398
|
+
**Team Creation**
|
|
399
|
+
- Automatically detected when a new `config.json` appears
|
|
400
|
+
- Logs creation timestamp
|
|
401
|
+
- Starts activity monitoring
|
|
402
|
+
- Console notification: `π New team created: {team-name}`
|
|
403
|
+
|
|
404
|
+
**Team Activity**
|
|
405
|
+
- Tracks every configuration change
|
|
406
|
+
- Updates "last seen" timestamp
|
|
407
|
+
- Monitors task progress
|
|
408
|
+
- Records all agent actions
|
|
409
|
+
- Console notification: `π Team active: {team-name}`
|
|
410
|
+
|
|
411
|
+
**Team Completion**
|
|
412
|
+
- Detected when team directory is removed
|
|
413
|
+
- Triggers automatic archiving
|
|
414
|
+
- Records final state
|
|
415
|
+
- Calculates session duration
|
|
416
|
+
- Console notification: `π Team completed: {team-name} - archiving for reference...`
|
|
417
|
+
|
|
418
|
+
### Automatic Archiving System
|
|
419
|
+
|
|
420
|
+
When a team completes its work, the dashboard **automatically archives all team data** for future reference.
|
|
421
|
+
|
|
422
|
+
#### What Gets Archived
|
|
423
|
+
|
|
424
|
+
**Complete Team Snapshot**:
|
|
425
|
+
- Team configuration (name, description, lead, members)
|
|
426
|
+
- All tasks (subject, description, status, owner, dependencies)
|
|
427
|
+
- Team statistics (member count, task counts, completion rate)
|
|
428
|
+
- Lifecycle metadata (created date, duration, last activity)
|
|
429
|
+
|
|
430
|
+
**Natural Language Summary**:
|
|
431
|
+
```json
|
|
432
|
+
{
|
|
433
|
+
"teamName": "dashboard-devops",
|
|
434
|
+
"archivedAt": "2026-02-10T15:30:00.000Z",
|
|
435
|
+
"summary": {
|
|
436
|
+
"overview": "Team 'dashboard-devops' with 4 members worked on 12 tasks and completed 10.",
|
|
437
|
+
"created": "Started on 02/10/2026",
|
|
438
|
+
"members": [
|
|
439
|
+
"team-lead (general-purpose)",
|
|
440
|
+
"backend-dev (general-purpose)",
|
|
441
|
+
"ui-polish-dev (general-purpose)",
|
|
442
|
+
"archive-viewer-dev (general-purpose)"
|
|
443
|
+
],
|
|
444
|
+
"accomplishments": [
|
|
445
|
+
"β
Fix Communication tab to display natural language messages properly",
|
|
446
|
+
"β
Verify and improve team lifecycle archiving",
|
|
447
|
+
"β
Polish dashboard UI for better user experience",
|
|
448
|
+
"β
Add archive viewer component to frontend",
|
|
449
|
+
"β
Test all features and fix empty task outputs",
|
|
450
|
+
"β
Document natural language features and team lifecycle",
|
|
451
|
+
"β
Create archive viewer UI component",
|
|
452
|
+
"β
Add API endpoint for retrieving archives",
|
|
453
|
+
"β
Test archive functionality end-to-end",
|
|
454
|
+
"β
Write comprehensive documentation"
|
|
455
|
+
],
|
|
456
|
+
"duration": "Active for 45 minutes"
|
|
457
|
+
},
|
|
458
|
+
"rawData": {
|
|
459
|
+
// Complete team data for detailed analysis
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
#### Archive Storage
|
|
465
|
+
|
|
466
|
+
**Location**: `~/.claude/archive/`
|
|
467
|
+
|
|
468
|
+
**File Naming**: `{team-name}_{timestamp}.json`
|
|
469
|
+
- Example: `dashboard-devops_2026-02-10T15-30-00-000Z.json`
|
|
470
|
+
- Timestamp in ISO format with colons replaced by hyphens (filesystem-safe)
|
|
471
|
+
|
|
472
|
+
**Automatic Creation**: Archive directory is created automatically if it doesn't exist
|
|
473
|
+
|
|
474
|
+
#### Duration Tracking
|
|
475
|
+
|
|
476
|
+
The dashboard calculates how long each team was active:
|
|
477
|
+
|
|
478
|
+
```javascript
|
|
479
|
+
// Example console output:
|
|
480
|
+
"π Team 'dashboard-devops' was active for 45 minutes"
|
|
481
|
+
```
|
|
482
|
+
|
|
483
|
+
**Tracking Method**:
|
|
484
|
+
1. Team created β Start timestamp recorded
|
|
485
|
+
2. Team activity β Last seen timestamp updated
|
|
486
|
+
3. Team completed β Duration calculated from timestamps
|
|
487
|
+
4. Duration included in archive summary
|
|
488
|
+
|
|
489
|
+
### Archive Viewer (API)
|
|
490
|
+
|
|
491
|
+
Access archived team data programmatically:
|
|
492
|
+
|
|
493
|
+
**Get All Archives**
|
|
494
|
+
```http
|
|
495
|
+
GET /api/archive
|
|
496
|
+
```
|
|
497
|
+
|
|
498
|
+
**Response**:
|
|
499
|
+
```json
|
|
500
|
+
{
|
|
501
|
+
"archives": [
|
|
502
|
+
{
|
|
503
|
+
"filename": "dashboard-devops_2026-02-10T15-30-00-000Z.json",
|
|
504
|
+
"overview": "Team 'dashboard-devops' with 4 members worked on 12 tasks and completed 10.",
|
|
505
|
+
"created": "Started on 02/10/2026",
|
|
506
|
+
"members": ["team-lead (general-purpose)", "..."],
|
|
507
|
+
"accomplishments": ["β
Task 1", "β
Task 2", "..."],
|
|
508
|
+
"duration": "Active for 45 minutes",
|
|
509
|
+
"archivedAt": "2026-02-10T15:30:00.000Z",
|
|
510
|
+
"fullPath": "/home/user/.claude/archive/dashboard-devops_2026-02-10T15-30-00-000Z.json"
|
|
511
|
+
}
|
|
512
|
+
],
|
|
513
|
+
"count": 1
|
|
514
|
+
}
|
|
515
|
+
```
|
|
516
|
+
|
|
517
|
+
**Get Specific Archive**
|
|
518
|
+
```http
|
|
519
|
+
GET /api/archive/{filename}
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
**Response**: Complete archive including raw data
|
|
523
|
+
|
|
524
|
+
### Team History Tracking
|
|
525
|
+
|
|
526
|
+
The **Team History** feature provides a complete chronological view of all teams:
|
|
527
|
+
|
|
528
|
+
**API Endpoint**:
|
|
529
|
+
```http
|
|
530
|
+
GET /api/team-history
|
|
531
|
+
```
|
|
532
|
+
|
|
533
|
+
**Response**:
|
|
534
|
+
```json
|
|
535
|
+
{
|
|
536
|
+
"history": [
|
|
537
|
+
{
|
|
538
|
+
"name": "dashboard-devops",
|
|
539
|
+
"config": { /* team config */ },
|
|
540
|
+
"tasks": [ /* all tasks */ ],
|
|
541
|
+
"createdAt": "2026-02-10T14:45:00.000Z",
|
|
542
|
+
"lastModified": "2026-02-10T15:30:00.000Z",
|
|
543
|
+
"isActive": false
|
|
544
|
+
}
|
|
545
|
+
]
|
|
546
|
+
}
|
|
547
|
+
```
|
|
548
|
+
|
|
549
|
+
**Features**:
|
|
550
|
+
- Shows all teams (active and completed)
|
|
551
|
+
- Sorted by last modified (most recent first)
|
|
552
|
+
- Includes creation and modification timestamps
|
|
553
|
+
- Active status indicator
|
|
554
|
+
|
|
555
|
+
### Real-Time Notifications
|
|
556
|
+
|
|
557
|
+
The dashboard provides console notifications for all lifecycle events:
|
|
558
|
+
|
|
559
|
+
```
|
|
560
|
+
π New team created: dashboard-devops
|
|
561
|
+
π Team active: dashboard-devops
|
|
562
|
+
β¨ New task created: task-123.json
|
|
563
|
+
π Task updated: task-123.json
|
|
564
|
+
β
Task completed/removed: task-123.json
|
|
565
|
+
π Team completed: dashboard-devops - archiving for reference...
|
|
566
|
+
π¦ Team archived: dashboard-devops β /home/user/.claude/archive/dashboard-devops_2026-02-10T15-30-00-000Z.json
|
|
567
|
+
π Team "dashboard-devops" was active for 45 minutes
|
|
568
|
+
```
|
|
569
|
+
|
|
570
|
+
### File System Watchers
|
|
571
|
+
|
|
572
|
+
The lifecycle tracking is powered by three independent watchers:
|
|
573
|
+
|
|
574
|
+
**1. Team Watcher** (`~/.claude/teams/**/*.json`)
|
|
575
|
+
- Monitors: `config.json` files
|
|
576
|
+
- Triggers: Team creation, updates, completion
|
|
577
|
+
|
|
578
|
+
**2. Task Watcher** (`~/.claude/tasks/**/*.json`)
|
|
579
|
+
- Monitors: Individual task files
|
|
580
|
+
- Triggers: Task creation, updates, completion
|
|
581
|
+
|
|
582
|
+
**3. Output Watcher** (`/tmp/claude/D--agentdashboard/tasks/*.output`)
|
|
583
|
+
- Monitors: Agent output files
|
|
584
|
+
- Triggers: Agent activity updates
|
|
585
|
+
|
|
586
|
+
**Watch Options** (configurable in `config.js`):
|
|
587
|
+
```javascript
|
|
588
|
+
{
|
|
589
|
+
persistent: true, // Keep process running
|
|
590
|
+
ignoreInitial: true, // Don't trigger on startup
|
|
591
|
+
usePolling: false, // Use native events (faster)
|
|
592
|
+
interval: 100, // Polling interval if needed
|
|
593
|
+
awaitWriteFinish: { // Wait for complete writes
|
|
594
|
+
stabilityThreshold: 200,
|
|
595
|
+
pollInterval: 50
|
|
596
|
+
}
|
|
597
|
+
}
|
|
598
|
+
```
|
|
599
|
+
|
|
600
|
+
### Security Features
|
|
601
|
+
|
|
602
|
+
**Path Sanitization**: All team names and file paths are sanitized to prevent path traversal attacks:
|
|
603
|
+
```javascript
|
|
604
|
+
// Only allows: a-zA-Z0-9_-
|
|
605
|
+
// Rejects: ../, ./, path separators, control characters
|
|
606
|
+
```
|
|
607
|
+
|
|
608
|
+
**Validation**: Archive file paths are validated to ensure they're within allowed directories:
|
|
609
|
+
```javascript
|
|
610
|
+
validatePath(filePath, ARCHIVE_DIR)
|
|
611
|
+
```
|
|
612
|
+
|
|
613
|
+
**Read-Only**: The dashboard never modifies Claude Code files β it only reads and archives data.
|
|
614
|
+
|
|
615
|
+
### Use Cases
|
|
616
|
+
|
|
617
|
+
**Project Retrospectives**: Review what a team accomplished and how long it took
|
|
618
|
+
|
|
619
|
+
**Performance Analysis**: Track team efficiency across multiple projects
|
|
620
|
+
|
|
621
|
+
**Audit Trails**: Maintain records of all agent activities for compliance
|
|
622
|
+
|
|
623
|
+
**Learning**: Study successful team patterns and task breakdowns
|
|
624
|
+
|
|
625
|
+
**Recovery**: Restore team context if needed from archived data
|
|
626
|
+
|
|
627
|
+
### Benefits
|
|
628
|
+
|
|
629
|
+
- **Zero Configuration**: Archiving happens automatically β nothing to set up
|
|
630
|
+
- **Complete History**: Never lose team data when a project completes
|
|
631
|
+
- **Natural Language**: Archive summaries are human-readable
|
|
632
|
+
- **Forensic Analysis**: Full raw data included for detailed investigation
|
|
633
|
+
- **Storage Efficient**: JSON format with automatic cleanup of old archives (future feature)
|
|
634
|
+
- **Fast Retrieval**: Timestamped filenames for easy chronological sorting
|
|
635
|
+
|
|
636
|
+
---
|
|
637
|
+
|
|
638
|
+
## πΊοΈ Roadmap
|
|
639
|
+
|
|
640
|
+
### π― Planned Features
|
|
641
|
+
|
|
642
|
+
- [ ] **Multi-project workspace** β Switch between multiple Claude projects in one dashboard
|
|
643
|
+
- [ ] **Performance analytics** β Historical charts, trends, bottleneck detection
|
|
644
|
+
- [ ] **Custom alerts** β Webhook integrations (Slack, Discord, email)
|
|
645
|
+
- [ ] **Theme switcher** β Dark/light mode with custom color schemes
|
|
646
|
+
- [ ] **Export reports** β PDF/CSV exports for task summaries and metrics
|
|
647
|
+
- [ ] **Plugin system** β Extensible architecture for custom visualizations
|
|
648
|
+
- [ ] **Docker deployment** β One-command containerized setup
|
|
649
|
+
- [ ] **Agent replay** β Rewind and replay agent sessions for debugging
|
|
650
|
+
- [ ] **Collaborative mode** β Share dashboards with team members
|
|
651
|
+
|
|
652
|
+
### π‘ Have an Idea?
|
|
653
|
+
|
|
654
|
+
We prioritize features based on community feedback. [**Open a feature request β**](https://github.com/mukul975/claude-team-dashboard/issues/new?template=feature_request.yml)
|
|
655
|
+
|
|
656
|
+
---
|
|
657
|
+
|
|
658
|
+
## π€ Contributing
|
|
659
|
+
|
|
660
|
+
We love contributions! Whether you're fixing bugs, adding features, or improving docs β **every contribution matters**.
|
|
661
|
+
|
|
662
|
+
### π Quick Contribution Guide
|
|
663
|
+
|
|
664
|
+
```bash
|
|
665
|
+
# 1. Fork & clone
|
|
666
|
+
git clone https://github.com/YOUR_USERNAME/agentdashboard.git
|
|
667
|
+
|
|
668
|
+
# 2. Create feature branch
|
|
669
|
+
git checkout -b feature/amazing-feature
|
|
670
|
+
|
|
671
|
+
# 3. Make changes & commit
|
|
672
|
+
git commit -m "feat: add amazing feature"
|
|
673
|
+
|
|
674
|
+
# 4. Push & create PR
|
|
675
|
+
git push origin feature/amazing-feature
|
|
676
|
+
```
|
|
677
|
+
|
|
678
|
+
**π Read the full guide**: [**CONTRIBUTING.md**](CONTRIBUTING.md)
|
|
679
|
+
|
|
680
|
+
### π Ways to Contribute
|
|
681
|
+
|
|
682
|
+
- π **Report bugs** β Use the [bug report template](https://github.com/mukul975/claude-team-dashboard/issues/new?template=bug_report.yml)
|
|
683
|
+
- β¨ **Suggest features** β Use the [feature request template](https://github.com/mukul975/claude-team-dashboard/issues/new?template=feature_request.yml)
|
|
684
|
+
- π **Improve docs** β Fix typos, add examples, clarify instructions
|
|
685
|
+
- π§ͺ **Write tests** β Increase code coverage and reliability
|
|
686
|
+
- π¨ **Design improvements** β UI/UX enhancements welcome
|
|
687
|
+
|
|
688
|
+
**First time contributing?** Check out issues labeled [`good first issue`](https://github.com/mukul975/claude-team-dashboard/labels/good%20first%20issue).
|
|
689
|
+
|
|
690
|
+
---
|
|
691
|
+
|
|
692
|
+
## π License
|
|
693
|
+
|
|
694
|
+
This project is licensed under the **MIT License** β see the [LICENSE](LICENSE) file for details.
|
|
695
|
+
|
|
696
|
+
**TL;DR**: Free to use, modify, and distribute. Commercial use allowed. Just keep the license notice.
|
|
697
|
+
|
|
698
|
+
---
|
|
699
|
+
|
|
700
|
+
## β Star History
|
|
701
|
+
|
|
702
|
+
[](https://star-history.com/#mukul975/claude-team-dashboard&Date)
|
|
703
|
+
|
|
704
|
+
---
|
|
705
|
+
|
|
706
|
+
<div align="center">
|
|
707
|
+
|
|
708
|
+
---
|
|
709
|
+
|
|
710
|
+
### β If This Helps You β Star It!
|
|
711
|
+
|
|
712
|
+
**Starring helps others discover this project.** It takes 2 seconds and makes a huge difference.
|
|
713
|
+
|
|
714
|
+
[](https://github.com/mukul975/claude-team-dashboard/stargazers)
|
|
715
|
+
|
|
716
|
+
---
|
|
717
|
+
|
|
718
|
+
**Built by [Mahipal](https://www.mahipal.engineer)**
|
|
719
|
+
|
|
720
|
+
_Maintained by [@mukul975](https://github.com/mukul975) β cybersecurity researcher, AI agent enthusiast_
|
|
721
|
+
|
|
722
|
+
</div>
|