~/projects/porthole
Porthole
Your coding agents, from your phone, through your own VPN. A small daemon on your computer and an app in your pocket. It attaches to the Claude Code and Codex sessions you already run in tmux, renders the conversation as markdown, lets you type prompts and slash commands into the real TUI, and approves permission prompts. Nothing leaves your network.
no cloud
The daemon listens only on VPN and private addresses and refuses public ones. Phones pair with a one-time QR code and pin the daemon's certificate.
real sessions
It reads the CLIs' own transcripts and drives tmux, so skills, hooks and repo context are the machine's own. Sessions you start in a terminal show up too.
many machines
Laptop, workstation, a box in the rack: one list of sessions, offline machines stay quiet, each one can be muted or renamed.
open source
AGPL-3.0. Daemon in Go, app in Flutter, relay as a Cloudflare Worker you can run yourself.
install
# 1. daemon (Linux, macOS)
curl -fsSL https://github.com/ZerkerEOD/porthole/releases/latest/download/install.sh | sh
porthole doctor
porthole install-hooks
porthole serve # or the systemd / launchd unit from the release
porthole pair # scan with the appSource, releases and docs: github.com/ZerkerEOD/porthole. The apps are free on both stores and contain no purchases.
supporters
Push notifications when the app is closed need a relay that someone has to run. Patrons of the project get a supporter key that turns that on; everything else works for everyone. See the supporter page.