Q-11: Remote UI / Observability
Status: ANSWERED Agent: codex/ext-agent Timestamp UTC: 2026-05-11T02:50:00Z Claim: CLAIMED 2026-05-11T02:47:00Z
Prior Answers Checked
- Q-01 (pi-teams fit) — establishes pi-teams as main orchestration surface; tmux panes are the primary GUI
- Q-06 (container shape) — single Docker container recommended; operational controls needed
- No prior answer exists for Q-11 specifically
Short Answer
Use SSH + tmux as the primary remote surface today. Forgejo web UI as the secondary repo ledger. pi-agent-dashboard as the aspirational browser UI (requires container runtime). pi-gui is the wrong tool — it is a local-only pi CLI wrapper, not a remote monitoring dashboard.
Stack from simplest to most complete:
| Layer | Tool | Status | Action |
|---|---|---|---|
| 1. Terminal | ssh root@relik-pi4 + tmux attach | Working | Use now |
| 2. Repo ledger | Forgejo at http://100.120.38.37:3001 | Requires container | Restart when ready |
| 3. Browser dashboard | pi-agent-dashboard (BlackBeltTechnology) v0.5.1 | Deployed, not running | Start server when containers stable |
| 4. Agent monitor | pi-gui (minghinmatthewlam) | Wrong tool | Do not use for remote |
Evidence
pi-gui (minghinmatthewlam/pi-gui)
- Installed on Mac via Homebrew (v0.1.0-beta.28)
- Electron desktop app that wraps local pi CLI sessions
- Readme confirms: "Opens local workspaces", "depends on upstream pi package for session management"
- Verdict: Cannot monitor remote Pi agents. Local-only tool.
pi-agent-dashboard (BlackBeltTechnology/pi-agent-dashboard)
- Installed on Mac as DMG (v0.5.1, darwin-arm64)
- Three-component architecture: bridge extension (per-pi-process) -> WebSocket server (port 9999) -> React web client (port 8000)
- Bridge extension auto-registers in ~/.pi/agent/settings.json when dashboard server starts
- Already deployed at /mnt/kitchen/ops/pi-agent-dashboard/ (mounted read-only in all containers at /from/ops/dashboard)
- Verdict: Correct tool, but requires (a) dashboard server running, (b) bridge extension loaded in agent pi processes, (c) network reachability between bridge and server. Not currently wired.
Forgejo Web UI
- FROM Forgejo at http://100.120.38.37:3001 (container from-forgejo)
- Port 3001 -> container:3000, SSH on 2223 -> container:2223
- Currently down (all Docker containers crashed under load ~2026-05-11)
- Forgejo binary exists inside Docker image, not natively on host
- Verdict: Best repo browser when running. Restart only when system load is safe.
SSH + tmux
- ssh root@relik-pi4 works reliably (tailnet, key auth)
- Agents run in Docker containers on bridge network from-house_from-house-net
- Workcell path: /mnt/kitchen/from-house/workspace/d3-tui-pi-teams-proto/
- Verdict: Only currently-working access method. Use tmux attach for panes when pi-teams is active.
Current System State (2026-05-11)
- Pi 4 is under severe load — all 7+ Docker containers crashed
- Only a single ephemeral d3-tui-pi-teams-proto container running (4s old at last check)
- SSH still works but Docker-dependent services (Forgejo, agents, Jellyfin) are all down
Fit For This Pi Workcell
- Three Pi agents: Best monitored via tmux panes (pi-teams native surface). pi-agent-dashboard can show live reasoning when wired.
- External agents: Need the workcell prompt + wiki paths, not a UI. Already handled by Q-12.
- D3-TUI repo: Forgejo web UI is the right viewer. Repo is safe at /mnt/kitchen/from-house/repos/d3-tui/ (11 source files, 21 tests, 10+ commits).
- Forgejo issues: Accessible via Forgejo API/UI when container is running. Alternative: read issues from SQLite DB at /mnt/kitchen/from-house/forgejo/data/forgejo.db.
- LLM-wiki: Accessible via SSH file reads. No UI needed — agents read files directly.
- Pi resource constraints: Every additional service (dashboard server, Forgejo) adds RAM/CPU load. The crash event suggests ~7 containers exceeds the Pi 4 capacity.
Risks / Failure Modes
- Container overload: Running Forgejo + dashboard server + agents in Docker simultaneously exceeds Pi 4 resources leading to mass container death. Mitigation: staged startup, resource limits, or run Forgejo natively.
- pi-agent-dashboard wiring gap: Bridge extension must be configured in each agent pi settings to connect to dashboard server. Currently not configured (agents use pi-fork settings without dashboard extension).
- pi-gui confusion: Installing pi-gui creates false expectation. The tool name suggests "Pi GUI" but it is for local pi CLI, not remote Pi agent monitoring.
- Tailnet dependency: Forgejo UI only accessible from tailnet. No public URL. Fine for MVP.
- No health-check dashboard: No simple /health endpoint or status page exists. Must SSH to check docker ps.
Decision Needed From Mehdi
- Should we run Forgejo natively (without Docker) to reduce container count?
- Do you want pi-agent-dashboard wired now, or deferred until after architecture questions are answered?
- Should pi-gui be removed from Mac since it is not useful for remote monitoring?
Next Probe
Run docker start from-forgejo when system load permits, verify web UI at http://100.120.38.37:3001/from-admin/d3-tui, then assess Pi resource usage with docker stats --no-stream.
Health Check Quick Reference
# Is SSH working?
ssh -o ConnectTimeout=10 root@relik-pi4 echo ok
# What containers are running?
ssh root@relik-pi4 "docker ps --format 'table {{.Names}}\t{{.Status}}'"
# Is Forgejo up?
curl -s -o /dev/null -w "%{http_code}" http://100.120.38.37:3001/
# Read latest agent state
ssh root@relik-pi4 "ls -lt /mnt/kitchen/from-house/state/agents/*/pi/ | head -10"
# Check claim board
ssh root@relik-pi4 "cat /mnt/kitchen/from-house/workspace/d3-tui-pi-teams-proto/llm-wiki/wiki/tasks/claim-board.md"