You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+5-1Lines changed: 5 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -108,11 +108,15 @@ pixel-agents --help
108
108
109
109
The default bind address is `127.0.0.1`. Binding to `0.0.0.0` exposes the UI and WebSocket to the local network; do this only on a trusted network.
110
110
111
+
Open the URL the CLI prints — it carries a `?token=` for this session. Any browser can watch the office without it, but installing or removing hooks (which edits your agent tool's own settings file) is only offered to a session that has the token, so an untokened client on the network cannot approve it. Open the bare address instead and the hooks toggle in Settings is refused, and reports the actual install state rather than appearing to work.
112
+
113
+
Treat that URL as a secret: the token is a bearer capability, not proof of being local. Whoever holds it can approve the hook install from anywhere the server is reachable — so don't paste the URL into a shared channel, and note that it also lands in your browser history and (unredacted) in the server's own request log.
114
+
111
115
Pass `--no-terminal` to disable the embedded terminal — watch agents without launching or attaching to them from the browser.
112
116
113
117
### Running the extension and standalone together
114
118
115
-
The extension and standalone CLI can run at the same time. Each server registers under `~/.pixel-agents/servers/`; the Claude hook script sends events to all active registrations. VS Code and standalone keep separate agents, seats, and settings while using the shared office layout.
119
+
The extension and standalone CLI can run at the same time. Each server registers under `~/.pixel-agents/servers/`; the hook script sends events to all active registrations. VS Code and standalone keep separate agents, seats, and settings while using the shared office layout.
116
120
117
121
Stop a standalone server with **Ctrl+C**. It removes only its own registration.
"To show your agents in real time, Pixel Agents needs to add its hooks to ~/.claude/settings.json. Your existing settings are kept safe, and you can remove Pixel Agents' hooks at any time.",
354
+
CONSENT_INSTALL_MESSAGE,
254
355
'Install Hooks',
255
356
'Not Now',
256
357
"Don't Ask Again",
@@ -265,7 +366,7 @@ export class PixelAgentsViewProvider implements vscode.WebviewViewProvider {
Copy file name to clipboardExpand all lines: e2e/README.md
+11-4Lines changed: 11 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -173,7 +173,7 @@ This section is auto-generated. Do not edit between the markers; CI fails on dri
173
173
174
174
<!-- BEGIN:E2E-INVENTORY -->
175
175
176
-
77 tests total. Generated by `scripts/generate-e2e-inventory.mjs`. Re-run after adding or removing tests.
176
+
84 tests total. Generated by `scripts/generate-e2e-inventory.mjs`. Re-run after adding or removing tests.
177
177
178
178
### `@area:spawn` (2 tests)
179
179
@@ -205,11 +205,17 @@ This section is auto-generated. Do not edit between the markers; CI fails on dri
205
205
-`e2e/claude/hooks-on/lifecycle.spec.ts:877` — rapid /clear then new tool within 500ms lands on the reassigned agent (Hooks ON / lifecycle)
206
206
-`e2e/claude/hooks-on/lifecycle.spec.ts:935` — close via X prevents re-adoption of old JSONL during dismissal cooldown (Hooks ON / lifecycle)
207
207
208
-
### `@area:cross-cutting` (13 tests)
208
+
### `@area:cross-cutting` (19 tests)
209
209
210
210
-`e2e/claude/hooks-off/lifecycle.spec.ts:735` — agentToolsClear fires at turn end via turn_duration JSONL record (Hooks OFF / lifecycle)
211
211
-`e2e/claude/hooks-off/lifecycle.spec.ts:800` — heuristic permission timer is cancelled when an agent is closed via overlay (Hooks OFF / lifecycle)
212
212
-`e2e/claude/hooks-off/lifecycle.spec.ts:879` — sub-agent permission bubble fires on stalled non-exempt sub-tool via heuristic timer (Hooks OFF / lifecycle)
213
+
-`e2e/claude/hooks-on/consent.spec.ts:141` — fresh install: the prompt discloses scope and Install writes the hooks (Hooks consent gate)
214
+
-`e2e/claude/hooks-on/consent.spec.ts:182` — Not Now writes nothing and leaves consent ungranted (Hooks consent gate)
215
+
-`e2e/claude/hooks-on/consent.spec.ts:206` — Don't Ask Again writes nothing and persists hooks off (Hooks consent gate)
216
+
-`e2e/claude/hooks-on/consent.spec.ts:240` — a pre-consent 14-event install migrates to 12 with no prompt (Hooks consent gate / pre-consent install)
217
+
-`e2e/claude/hooks-on/consent.spec.ts:284` — Settings toggle removes the migrated hooks and keeps third-party entries (Hooks consent gate / pre-consent install)
218
+
-`e2e/claude/hooks-on/consent.spec.ts:330` — a failed uninstall does not persist hooks-off (Hooks consent gate / toggle-off failure)
213
219
-`e2e/claude/hooks-on/lifecycle.spec.ts:1034` — done sound chime fires on agentStatus waiting (Hooks ON / lifecycle)
214
220
-`e2e/claude/hooks-on/lifecycle.spec.ts:1127` — restored agents skip the matrix spawn animation (Hooks ON / lifecycle)
215
221
-`e2e/claude/hooks-on/lifecycle.spec.ts:1211` — tool status text matches every PreToolUse tool name (Hooks ON / lifecycle)
@@ -240,9 +246,10 @@ This section is auto-generated. Do not edit between the markers; CI fails on dri
240
246
-`e2e/claude/hooks-off/matrix.spec.ts:253` — external inline teammate adopted via JSONL polling (Hooks OFF / matrix)
241
247
-`e2e/claude/hooks-off/matrix.spec.ts:312` — external tmux teammate adopted via JSONL polling (Hooks OFF / matrix)
242
248
243
-
### `@area:standalone` (8 tests)
249
+
### `@area:standalone` (9 tests)
244
250
245
-
-`e2e/standalone/hooks.spec.ts:10` — propagates hook-driven lifecycle into the browser UI (Standalone / hooks)
251
+
-`e2e/standalone/hooks.spec.ts:11` — propagates hook-driven lifecycle into the browser UI (Standalone / hooks)
252
+
-`e2e/standalone/hooks.spec.ts:111` — the hooks checkbox reflects install state and its click is the consent grant (Standalone / hooks)
246
253
-`e2e/standalone/multi-server-hooks.spec.ts:31` — extension and standalone both stay hook-driven without cross-contamination (Standalone / multi-server hooks)
247
254
-`e2e/standalone/ui.spec.ts:27` — closeAgent despawns the character (Standalone / UI)
0 commit comments