@gbasin/agentboard 0.1.10 → 0.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.
- package/README.md +43 -3
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# Agentboard
|
|
2
2
|
|
|
3
|
+
[](https://github.com/gbasin/agentboard/actions)
|
|
4
|
+
[](https://www.npmjs.com/package/@gbasin/agentboard)
|
|
5
|
+
[](https://github.com/gbasin/agentboard/blob/master/LICENSE)
|
|
6
|
+
[](https://www.typescriptlang.org/)
|
|
7
|
+
|
|
3
8
|
Agentboard is a Web GUI for `tmux` that's optimized for agent TUI's (`claude`, `codex`, etc). A lighter-weight, agent-optimized alternative to Blink, Termux, etc.
|
|
4
9
|
|
|
5
10
|
Run your desktop/server, then connect from your phone or laptop over Tailscale/LAN. You get a shared workspace across devices.
|
|
@@ -13,6 +18,27 @@ Run your desktop/server, then connect from your phone or laptop over Tailscale/L
|
|
|
13
18
|
- Shows the last user prompt for each session, so you can remember what each agent is working on
|
|
14
19
|
- Pin agent TUI sessions to auto-resume them when the server restarts (useful if your machine reboots or tmux dies)
|
|
15
20
|
|
|
21
|
+
## How It Works
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
┌─────────────┐ SSH ┌─────────────┐
|
|
25
|
+
│ Remote Host ├───────────►│ │ WebSocket ┌────────────┐
|
|
26
|
+
│ (tmux) │ │ Agentboard ├──────────────►│ Browser │
|
|
27
|
+
└─────────────┘ tmux │ Server │ │ (React + │
|
|
28
|
+
┌─────────────┐ CLI │ │ │ xterm.js) │
|
|
29
|
+
│ Local tmux ├───────────►│ - discover │ └────────────┘
|
|
30
|
+
│ sessions │ │ sessions │
|
|
31
|
+
└─────────────┘ │ - parse │
|
|
32
|
+
┌─────────────┐ read │ agent │
|
|
33
|
+
│ Agent logs ├───────────►│ logs │
|
|
34
|
+
│ ~/.claude/ │ └─────────────┘
|
|
35
|
+
└─────────────┘
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
- **Session discovery** — polls local tmux windows and (optionally) remote hosts over SSH
|
|
39
|
+
- **Status inference** — reads pane content and Claude/Codex JSONL logs to determine if each agent is *working*, *waiting for input*, or *asking for permission*
|
|
40
|
+
- **Live terminal** — streams I/O through the server so you can interact with any session from any device
|
|
41
|
+
|
|
16
42
|
### Desktop
|
|
17
43
|
| Terminal | Sessions | Pinning |
|
|
18
44
|
| :---: | :---: | :---: |
|
|
@@ -93,10 +119,11 @@ AGENTBOARD_INACTIVE_MAX_AGE_HOURS=24
|
|
|
93
119
|
AGENTBOARD_EXCLUDE_PROJECTS=<empty>,/workspace
|
|
94
120
|
AGENTBOARD_HOST=blade
|
|
95
121
|
AGENTBOARD_REMOTE_HOSTS=mba,carbon,worm
|
|
96
|
-
AGENTBOARD_REMOTE_POLL_MS=
|
|
122
|
+
AGENTBOARD_REMOTE_POLL_MS=2000
|
|
97
123
|
AGENTBOARD_REMOTE_TIMEOUT_MS=4000
|
|
98
124
|
AGENTBOARD_REMOTE_STALE_MS=45000
|
|
99
125
|
AGENTBOARD_REMOTE_SSH_OPTS=-o BatchMode=yes -o ConnectTimeout=3
|
|
126
|
+
AGENTBOARD_REMOTE_ALLOW_ATTACH=false
|
|
100
127
|
AGENTBOARD_REMOTE_ALLOW_CONTROL=false
|
|
101
128
|
```
|
|
102
129
|
|
|
@@ -122,13 +149,26 @@ All persistent data is stored in `~/.agentboard/`: session database (`agentboard
|
|
|
122
149
|
|
|
123
150
|
`AGENTBOARD_HOST` sets the host label for local sessions (default: `hostname`).
|
|
124
151
|
|
|
125
|
-
`AGENTBOARD_REMOTE_HOSTS` enables remote tmux polling over SSH. Provide a comma-separated list of hosts (e.g., `mba,carbon,worm`).
|
|
152
|
+
`AGENTBOARD_REMOTE_HOSTS` enables remote tmux polling over SSH. Provide a comma-separated list of hosts (e.g., `mba,carbon,worm`). Remote sessions show live status (working/waiting/permission) via pane content capture over SSH.
|
|
126
153
|
|
|
127
154
|
`AGENTBOARD_REMOTE_POLL_MS`, `AGENTBOARD_REMOTE_TIMEOUT_MS`, and `AGENTBOARD_REMOTE_STALE_MS` control remote poll cadence, SSH timeout, and stale host cutoff.
|
|
128
155
|
|
|
129
156
|
`AGENTBOARD_REMOTE_SSH_OPTS` appends extra SSH options (space-separated).
|
|
130
157
|
|
|
131
|
-
`
|
|
158
|
+
`AGENTBOARD_REMOTE_ALLOW_ATTACH` enables interactive terminal attach to remote sessions (input, resize, copy-mode). When `false` (default), remote sessions are view-only.
|
|
159
|
+
|
|
160
|
+
`AGENTBOARD_REMOTE_ALLOW_CONTROL` enables destructive remote session management (create, kill, rename) via the UI. Setting this to `true` implies `REMOTE_ALLOW_ATTACH=true`. Kill and rename are restricted to agentboard-managed sessions — externally-discovered remote sessions cannot be killed or renamed even with control enabled.
|
|
161
|
+
|
|
162
|
+
**SSH multiplexing (recommended):** Each poll cycle opens SSH connections to every remote host. Enable SSH connection multiplexing to reuse connections and reduce overhead from ~200-500ms to ~5ms per poll. Add to your `~/.ssh/config`:
|
|
163
|
+
|
|
164
|
+
```
|
|
165
|
+
Host *
|
|
166
|
+
ControlMaster auto
|
|
167
|
+
ControlPath ~/.ssh/sockets/%r@%h-%p
|
|
168
|
+
ControlPersist 600
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Then create the sockets directory: `mkdir -p ~/.ssh/sockets && chmod 700 ~/.ssh/sockets`
|
|
132
172
|
|
|
133
173
|
## Logging
|
|
134
174
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gbasin/agentboard",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A terminal dashboard for tracking agent coding sessions",
|
|
6
6
|
"author": "gbasin",
|
|
@@ -20,10 +20,10 @@
|
|
|
20
20
|
"bun": ">=1.3.6"
|
|
21
21
|
},
|
|
22
22
|
"optionalDependencies": {
|
|
23
|
-
"@gbasin/agentboard-darwin-arm64": "0.
|
|
24
|
-
"@gbasin/agentboard-darwin-x64": "0.
|
|
25
|
-
"@gbasin/agentboard-linux-x64": "0.
|
|
26
|
-
"@gbasin/agentboard-linux-arm64": "0.
|
|
23
|
+
"@gbasin/agentboard-darwin-arm64": "0.2.2",
|
|
24
|
+
"@gbasin/agentboard-darwin-x64": "0.2.2",
|
|
25
|
+
"@gbasin/agentboard-linux-x64": "0.2.2",
|
|
26
|
+
"@gbasin/agentboard-linux-arm64": "0.2.2"
|
|
27
27
|
},
|
|
28
28
|
"scripts": {
|
|
29
29
|
"dev": "concurrently -k \"bun run dev:server\" \"bun run dev:client\"",
|