Install and first run are the same on macOS as anywhere else β see the
README (pipx install panopticon-app, then panopticon quickstart). This page
covers only what's macOS-specific.
Task containers reach the host task service via host.docker.internal, which Docker Desktop for
Mac injects automatically. Bare Docker Engine doesn't provide it, so tasks can't call home β
Docker Desktop is required. Install it from
docs.docker.com/desktop, start it, and
confirm the daemon is up:
docker infopanopticon doctor checks this (along with tmux, git, the claude CLI, and Python), and
panopticon quickstart runs it for you before doing anything.
Task containers run inside Docker Desktop's Linux VM rather than on your host directly β which is
also why the container's Linux-only tooling (groupmod, useradd, gosu, β¦ in docker/Dockerfile
and docker/entrypoint.sh) works even though your host is macOS.
--network hostisn't supported by Docker Desktop for Mac. Panopticon doesn't use it β containers reach the host viahost.docker.internal.- Docker-in-Docker (
capabilities.docker_in_docker) uses--privileged, which Docker Desktop supports. On Apple Silicon, if the task image islinux/amd64-only, disable "Use Rosetta for x86/amd64 emulation" in Docker Desktop settings or rebuild forarm64. - tmux must be installed before you start Panopticon β if it's missing, session launches fail
silently.
panopticon doctorcatches this.
Contributing rather than just running it? The make targets work on macOS with the same Docker
Desktop + tmux requirements above β add uv (brew install uv), then make sync, make build,
make start. make stop (or panopticon stop) tears everything down. See
docs/dev.md for the full development loop (setup, checks, and CI).