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.

Files changed (49) hide show
  1. package/CHANGELOG.md +76 -0
  2. package/LICENSE +21 -0
  3. package/README.md +722 -0
  4. package/cleanup.js +73 -0
  5. package/config.js +50 -0
  6. package/dist/assets/icons-Ijf8rQIc.js +1 -0
  7. package/dist/assets/index-Cqc1m1x_.css +1 -0
  8. package/dist/assets/index-jGy3ms0W.js +9 -0
  9. package/dist/assets/react-vendor-DbmSkCAF.js +1 -0
  10. package/dist/index.html +16 -0
  11. package/index.html +13 -0
  12. package/package.json +93 -0
  13. package/server.js +953 -0
  14. package/src/App.jsx +372 -0
  15. package/src/animations-enhanced.css +929 -0
  16. package/src/animations.css +783 -0
  17. package/src/components/ActivityFeed.jsx +289 -0
  18. package/src/components/AgentActivity.jsx +104 -0
  19. package/src/components/AgentCard.jsx +163 -0
  20. package/src/components/AgentOutputViewer.jsx +334 -0
  21. package/src/components/ArchiveViewer.jsx +283 -0
  22. package/src/components/ConnectionStatus.jsx +124 -0
  23. package/src/components/DetailedTaskProgress.jsx +126 -0
  24. package/src/components/ErrorBoundary.jsx +132 -0
  25. package/src/components/Header.jsx +154 -0
  26. package/src/components/LiveAgentStream.jsx +176 -0
  27. package/src/components/LiveCommunication.jsx +326 -0
  28. package/src/components/LiveMetrics.jsx +100 -0
  29. package/src/components/RealTimeMessages.jsx +298 -0
  30. package/src/components/SkeletonLoader.jsx +384 -0
  31. package/src/components/StatsOverview.jsx +209 -0
  32. package/src/components/SystemStatus.jsx +57 -0
  33. package/src/components/TaskList.jsx +306 -0
  34. package/src/components/TeamCard.jsx +126 -0
  35. package/src/components/TeamHistory.jsx +204 -0
  36. package/src/components/__tests__/ConnectionStatus.test.jsx +54 -0
  37. package/src/components/__tests__/StatsOverview.test.jsx +66 -0
  38. package/src/config/constants.js +59 -0
  39. package/src/hooks/useCounterAnimation.js +219 -0
  40. package/src/hooks/useWebSocket.js +76 -0
  41. package/src/index.css +1818 -0
  42. package/src/main.jsx +17 -0
  43. package/src/polish-enhancements.css +303 -0
  44. package/src/premium-visual-polish.css +830 -0
  45. package/src/responsive-enhancements.css +666 -0
  46. package/src/styles/theme.css +395 -0
  47. package/src/test/setup.js +19 -0
  48. package/start.js +36 -0
  49. 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
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://github.com/mukul975/claude-team-dashboard/blob/main/LICENSE)
10
+ [![Node.js](https://img.shields.io/badge/Node.js-18%2B-green.svg)](https://nodejs.org/)
11
+ [![JavaScript](https://img.shields.io/badge/JavaScript-58%25-F7DF1E.svg?logo=javascript&logoColor=black)](https://github.com/mukul975/claude-team-dashboard)
12
+ [![Vite](https://img.shields.io/badge/Vite-7.x-646CFF.svg?logo=vite&logoColor=white)](https://vitejs.dev/)
13
+ [![WebSocket](https://img.shields.io/badge/WebSocket-Real--Time-010101.svg?logo=socketdotio&logoColor=white)](https://github.com/mukul975/claude-team-dashboard)
14
+ [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/mukul975/claude-team-dashboard/pulls)
15
+ [![GitHub Stars](https://img.shields.io/github/stars/mukul975/claude-team-dashboard?style=social)](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
+ [![Star History Chart](https://api.star-history.com/svg?repos=mukul975/claude-team-dashboard&type=Date)](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
+ [![GitHub stars](https://img.shields.io/github/stars/mukul975/claude-team-dashboard?style=social)](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>