crewdesk 0.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/LICENSE ADDED
@@ -0,0 +1,9 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Hussein Taha
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
+
7
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY ARISING FROM THE USE OF THE SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,54 @@
1
+ # Crewdesk
2
+
3
+ One local dashboard for all your Claude Code sessions. When any session asks a question, wants permission, or finishes a turn, it shows up in one attention queue at **http://127.0.0.1:7777**. Your answer goes back to the exact session that asked. Routing uses the event id and the session id, never the name or terminal.
4
+
5
+ ```text
6
+ Claude #1 ─┐
7
+ Claude #2 ─┤ hooks ┌──────────────┐ WebSocket ┌───────────┐
8
+ Claude #3 ─┼──────────▶ │ crewdesk │ ◀──────────▶ │ Dashboard │
9
+ Claude #4 ─┘ ◀──────────│ SQLite + API │ REST └───────────┘
10
+ decisions └──────────────┘
11
+ ```
12
+
13
+ ## Quick start
14
+
15
+ ```bash
16
+ npm install -g crewdesk # Node >= 22.13 (uses the built-in node:sqlite)
17
+ crewdesk configure # installs hooks into ~/.claude and ~/.claude-accounts/* (with backups)
18
+ crewdesk start # background daemon
19
+ crewdesk open # http://127.0.0.1:7777
20
+ ```
21
+
22
+ Install it globally rather than running it through `npx`. The hooks point at the installed script, so its path has to stay put. To work on Crewdesk itself, see [Development](docs/DEVELOPMENT.md).
23
+
24
+ Start Claude Code sessions normally. Sessions that were already running need a restart, or run `/hooks`, to pick up the hooks.
25
+
26
+ ## What reaches the dashboard
27
+
28
+ | Claude Code does… | Hook | Dashboard shows | Terminal meanwhile |
29
+ |---|---|---|---|
30
+ | Asks permission for a tool | `PermissionRequest` | **Allow / Deny** (destructive commands need a second confirm) | Dialog stays live. **First answer wins** |
31
+ | Uses `AskUserQuestion` | `PreToolUse` | Option buttons + free-text answer | Spinner. Falls back to the terminal after `questionWaitSeconds` or **Answer in terminal** |
32
+ | Finishes a turn | `Stop` | "Waiting for instructions" + **Send** next prompt | Hook waits up to `idleWaitSeconds`. **Back to terminal** releases it |
33
+ | Sends a notification | `Notification` | Dismissable notice | — |
34
+ | Starts / ends / gets a prompt | `SessionStart` / `SessionEnd` / `UserPromptSubmit` | Agent status, activity | — |
35
+
36
+ If the hub is down, every hook fails open: Claude Code behaves exactly as if no hook existed.
37
+
38
+ ## Features
39
+
40
+ - **Agents:** multiple sessions per project, multiple accounts, named `<project> #N` and renamable. Session reconnects are detected. A session goes OFFLINE when its Claude process (`CLAUDE_PID`) dies.
41
+ - **Attention queue:** sorted permissions → questions → errors → idle prompts → notifications, then by priority and age.
42
+ - **Keyboard:** `J`/`K` move through requests, `A` allows, `D` denies, `R` focuses the reply box, `/` searches, `?` shows help.
43
+ - **Filtering and search:** by status, project, agent and free text. History page with a full event table. Per-agent detail page.
44
+ - **Notifications:** desktop notifications (opt-in) and sound. Dark and light themes.
45
+ - **Permission policies:** in `~/.crewdesk/policies.yaml`. Destructive or chained shell commands are never auto-allowed.
46
+ - **Persistence:** everything is persisted in SQLite, so a browser refresh or hub restart loses nothing.
47
+
48
+ ## Commands
49
+
50
+ `crewdesk start | stop | restart | status | open | logs [-f] | configure | doctor | uninstall`
51
+
52
+ ## Documentation
53
+
54
+ [Installation](docs/INSTALLATION.md) · [Configuration](docs/CONFIGURATION.md) · [Hooks](docs/HOOKS.md) · [API](docs/API.md) · [Development](docs/DEVELOPMENT.md) · [Troubleshooting](docs/TROUBLESHOOTING.md) · [Security](docs/SECURITY.md) · [Original spec](docs/CLAUDE-CONTROL-CENTER.md)