cc-agent-ui 0.2.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 +77 -0
- package/launchd/cc-agent-ui.plist.template +37 -0
- package/package.json +17 -0
- package/public/index.html +1132 -0
- package/server.js +263 -0
package/README.md
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# cc-agent-ui
|
|
2
|
+
|
|
3
|
+
Live browser canvas UI for [cc-agent](https://github.com/Gonzih/cc-agent) jobs.
|
|
4
|
+
|
|
5
|
+
Infinite pannable/zoomable grid of terminal cards — one per job — with live streaming output, file browser, and real-time status updates.
|
|
6
|
+
|
|
7
|
+

|
|
8
|
+
|
|
9
|
+
## Features
|
|
10
|
+
|
|
11
|
+
- **Infinite canvas** — pan (drag), zoom (scroll wheel / pinch), 1300+ jobs no problem
|
|
12
|
+
- **Live streaming output** — Redis-backed polling, new lines appear in real time
|
|
13
|
+
- **File browser** — click any file path in terminal output to browse/view it inline (code, images, video, audio)
|
|
14
|
+
- **Filters** — all / live / done / err, hides cards from canvas too
|
|
15
|
+
- **Namespace support** — multi-namespace cc-agent setups work out of the box
|
|
16
|
+
- **Auto-restarts** — runs as a launchd service (macOS), survives crashes/reboots
|
|
17
|
+
|
|
18
|
+
## Requirements
|
|
19
|
+
|
|
20
|
+
- Node.js 18+
|
|
21
|
+
- Redis running at `localhost:6379`
|
|
22
|
+
- [cc-agent](https://github.com/Gonzih/cc-agent) writing job data to Redis (`cca:jobs:*` keys)
|
|
23
|
+
|
|
24
|
+
## Install
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
git clone https://github.com/Gonzih/cc-agent-ui.git
|
|
28
|
+
cd cc-agent-ui
|
|
29
|
+
npm install
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Run
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
npm start
|
|
36
|
+
# or with custom port
|
|
37
|
+
PORT=7701 node server.js
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Opens at `http://localhost:7701`.
|
|
41
|
+
|
|
42
|
+
## Run as macOS service (auto-start on login)
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
# Edit the plist to match your username/paths
|
|
46
|
+
cp launchd/cc-agent-ui.plist ~/Library/LaunchAgents/cc-agent-ui.plist
|
|
47
|
+
|
|
48
|
+
# Load it
|
|
49
|
+
launchctl load ~/Library/LaunchAgents/cc-agent-ui.plist
|
|
50
|
+
|
|
51
|
+
# Logs
|
|
52
|
+
tail -f ~/.cc-agent/logs/ui.log
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Redis key schema (cc-agent)
|
|
56
|
+
|
|
57
|
+
| Key | Type | Contents |
|
|
58
|
+
|-----|------|----------|
|
|
59
|
+
| `cca:jobs:{namespace}` | SET | Job UUIDs |
|
|
60
|
+
| `cca:job:{uuid}` | STRING | JSON job metadata |
|
|
61
|
+
| `cca:job:{uuid}:output` | LIST | Log lines (append-only) |
|
|
62
|
+
|
|
63
|
+
Disk fallback: `~/.cc-agent/jobs/{uuid}.log` if Redis list is empty.
|
|
64
|
+
|
|
65
|
+
## Keyboard / Mouse
|
|
66
|
+
|
|
67
|
+
| Action | Gesture |
|
|
68
|
+
|--------|---------|
|
|
69
|
+
| Pan | Drag empty canvas |
|
|
70
|
+
| Zoom | Scroll wheel / pinch |
|
|
71
|
+
| Focus job | Click sidebar item |
|
|
72
|
+
| Browse file | Click orange path in terminal |
|
|
73
|
+
| Filter | all / live / done / err buttons |
|
|
74
|
+
|
|
75
|
+
## Tailscale / network access
|
|
76
|
+
|
|
77
|
+
Binds to `0.0.0.0` by default — accessible from any device on your Tailscale network at `http://<tailscale-ip>:7701`.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
3
|
+
<plist version="1.0">
|
|
4
|
+
<dict>
|
|
5
|
+
<key>Label</key>
|
|
6
|
+
<string>cc-agent-ui</string>
|
|
7
|
+
|
|
8
|
+
<key>ProgramArguments</key>
|
|
9
|
+
<array>
|
|
10
|
+
<string>/opt/homebrew/bin/node</string>
|
|
11
|
+
<string>/Users/feral/cc-agent-ui/server.js</string>
|
|
12
|
+
</array>
|
|
13
|
+
|
|
14
|
+
<key>WorkingDirectory</key>
|
|
15
|
+
<string>/Users/feral/cc-agent-ui</string>
|
|
16
|
+
|
|
17
|
+
<key>EnvironmentVariables</key>
|
|
18
|
+
<dict>
|
|
19
|
+
<key>PORT</key>
|
|
20
|
+
<string>7701</string>
|
|
21
|
+
<key>PATH</key>
|
|
22
|
+
<string>/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin</string>
|
|
23
|
+
</dict>
|
|
24
|
+
|
|
25
|
+
<key>RunAtLoad</key>
|
|
26
|
+
<true/>
|
|
27
|
+
|
|
28
|
+
<key>KeepAlive</key>
|
|
29
|
+
<true/>
|
|
30
|
+
|
|
31
|
+
<key>StandardOutPath</key>
|
|
32
|
+
<string>/Users/feral/.cc-agent/logs/ui.log</string>
|
|
33
|
+
|
|
34
|
+
<key>StandardErrorPath</key>
|
|
35
|
+
<string>/Users/feral/.cc-agent/logs/ui.log</string>
|
|
36
|
+
</dict>
|
|
37
|
+
</plist>
|
package/package.json
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "cc-agent-ui",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Live canvas UI for cc-agent jobs — infinite canvas, streaming output, file browser",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://github.com/Gonzih/cc-agent-ui.git"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"start": "node server.js"
|
|
12
|
+
},
|
|
13
|
+
"dependencies": {
|
|
14
|
+
"redis": "^5.11.0",
|
|
15
|
+
"ws": "^8.17.0"
|
|
16
|
+
}
|
|
17
|
+
}
|