I run coding agents (Claude Code) all day and wanted to stop being tethered to the one terminal they run in — start a task, close the laptop, check on it from another machine. So I self-hosted it. agentpeek is a single FastAPI app that turns named tmux sessions into something you drive from any browser: Sessions keep running with no browser attached (they’re just tmux) — reopen the URL anywhere and you’re back in the same session Drive each one as a real terminal (ttyd, with a mobile key bar) or as a streaming chat UI that runs the Claude agent directly Still reachable the old way: tmux attach over SSH hits the exact same sessions Phone push notifications (ntfy) when an agent turn finishes Self-hosting details, since that’s the audience: Binds 127.0.0.1 , one port (8090). Never meant for the public internet — the intended door is tailscale serve --bg --https=9443 http://127.0.0.1:8090/ (tailnet-only, HTTPS, no port-forwarding) Browser login password, forced change off a generated temp password on first login setup.sh installs everything on Debian/Ubuntu/WSL2 (tmux, ttyd, Claude Code, deps) and wires systemd user services so sessions survive a reboot; there’s also a docker-compose and a macOS launchd path MIT licensed, single small codebase (tmux logic isolated to one module) GitHub: https://github.com/thrinz/agentpeek Would love feedback on the exposure model and what other multiplexers people would want behind it (it’s a deliberate swap point). submitted by /u/thrinz2
Originally posted by u/thrinz2 on r/ClaudeCode
