section3 logo: a white triangle enclosing a stylized 3, above the SECTION3 wordmark, on a black square
section3

An init system for your container. One binary, one YAML file.

Docker restarts a crashed container, but nothing standard watches the processes inside one. section3 is a service supervisor small enough to be a container's entrypoint: it starts your processes, restarts what crashes with exponential backoff, and rotates the logs without needing the services to cooperate. One static Go binary, zero runtime dependencies, MIT-licensed.

curl -fsSL https://signalshell.com/install-section3 | sh

Source

Go, YAML, MIT

Under a thousand lines of Go at github.com/tachikoma-ghost/section3. Releases are minisign-signed, and section3 self update verifies the signature before replacing itself.

The write-up

Design Notes

Why not supervisord, s6, or pm2; how log rotation works when the service never holds the log file; and the crash-backoff bug where the documentation turned out to be the spec. In section3: An init system for an agent's container.

In production

Docker, Dev Container

Built as the init system for Tachikoma's container. The agent's terminal, memory indexer, Telegram bot, and voice pipeline all run as section3 services — and the agent operates the supervisor itself.


Built by Martin Sigloch with Tachikoma.