Pypen: A Multi-Process Python Runner

Pypen is a single-container, multi-process runner for Python repositories. Point it at any GitHub (or other Git) repository — or many of them — in one project.toml file, and Pypen clones, builds, runs, watches and restarts each one in its own isolated Python environment, with a live web dashboard on top.

It shares some of the same goals as programs like supervisord, systemd user units, and pm2. Unlike most of those, Pypen is purpose-built for Python: each project gets its own pyenv-managed interpreter, its own virtual environment built by uv, its own environment variables, and its own restart schedule. If it runs with python something.py (or any shell command), Pypen can host it.

At a glance

  • One container, many Python workers
  • Per-project Python version & venv (pyenv + uv)
  • Process supervision via s6-overlay
  • Live web dashboard built on Quart + Socket.IO
  • Cron-style restarts, idle restarts, optional git pull on restart
  • Optional keep-alive ping for free-tier hosts

Indices and tables