compressor.py. The baseline is zlib at level 9.
Install
piloop CLI and the piloop skills for your coding agents. It is safe to run
again. If you already have uv, you can install the CLI alone:
claude auth login, codex login, or pi and then /login.
Run the example
1
Create the project
piloop init copies the example, downloads data/enwik8.zip (about 36 MB, not committed) and makes a git repo
with a baseline commit. Then it measures the baseline and registers the project. The baseline is about 3.69 MB.2
Choose your agents
The example uses Claude Code (
harnesses = ["claude"] in piloop.toml). To use Codex or pi as well, or instead,
edit harnesses, for example harnesses = ["claude", "codex"].If you do not have Herdr, set runtime = "subprocess". The agents then run in the
background, and you cannot see their screens.Run piloop init again, so that piloop reads the changed file.3
Add an idea
4
Start the daemon
~/.piloop/serve.log.5
Watch the campaign
enter to open the project. The four panels show the inbox, the agents, the ideas and the candidates. Press
q to quit. The daemon continues to run.The example stops after 20 worker runs (
[stop] max_runs = 20 in piloop.toml). Stop it earlier with
piloop stop. To run longer, raise max_runs and run piloop init.What happens
Each worker editscompressor.py and commits. For each commit, the daemon runs evaluate.py in a clean worktree. The
script checks that decompress(compress(data)) gives back the exact input. If it does not, the commit is a crash.
Then the script prints two metrics:
bytes: the compressed size plus the size ofcompressor.py. Lower is better. This is the primary metric. As in the Hutter Prize, the size of the decompressor counts.seconds: the time to compress and decompress. Lower is better. This is a guardrail: a commit may add at most 10 s to the time of the head, and the time must stay below 120 s.
keep, and it becomes the new head. The next runs start from
it. To see the progress at any time, run:
Talk to an orchestrator
The orchestrator is a coding agent that answers escalations and records its decisions in your inbox. To start one, open Claude Code, Codex or pi in~/piloop-enwik8 and ask:
piloop-operate skill. See The orchestrator and the inbox.
Stop
refs/piloop/, so git show and git cherry-pick work on any of them.
Next steps
- Set up your own repo.
- Try the second example,
piloop init --example titanic-tracks, which has two objectives. See Tracks.