~/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

porthole · installsh
# 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 app

Source, 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.

docs