Skip to main content

piloop

CI License: MIT Python 3.14

Autoresearch for any git repo: coding agents try ideas, piloop scores every commit and keeps what wins.

Documentation: piloop.autoresearch.inc

You talk to one coding agent. It sets up a campaign in your repo and runs it for you. Coding agents try ideas in parallel, each one in its own git worktree. piloop runs your evaluate command on every commit. It keeps a change only when the change beats the best result so far. When your evaluate command reports a result for each example, the gain must also hold with statistical confidence.

piloop watch on the enwik8 example: 10 Claude Code runs took the compressed size from 3,688,770 to 2,361,893 bytes

The enwik8 example after 10 worker runs: Claude Code agents took the first 10 MB of Wikipedia from 3,688,770 bytes (zlib) to 2,361,893 bytes (−36%) in 1.6 hours.

piloop keeps its state on your machine: a SQLite database and the run directories in PILOOP_HOME (~/.piloop by default), and every candidate commit as a git ref in your repo. piloop has no hosted service. The coding agents send your code and their prompts to their model providers, as they do when you use them yourself.

Start

  1. Install piloop and its skills for your coding agents:

    curl -fsSL https://raw.githubusercontent.com/hiloopai/piloop/main/install.sh | sh
    
  2. Open your coding agent in your repo: Claude Code, Codex, pi, Gemini CLI or Cursor.

  3. Tell it what to improve. Say "piloop", so that the agent uses the piloop skills:

    Use piloop to make our tokenizer faster without changing its output.
    
    Use piloop to improve the holdout accuracy of the model in train.py.
    
    Use piloop to make the test suite run faster. Do not delete or skip tests.
    

What happens next

  1. Setup. The agent checks your machine and asks you a few questions: the metric, how to measure it, what must not get worse, which files the agents may edit, and the budget. Then it writes brief.md, piloop.toml and the evaluate command, measures the baseline and starts the campaign.
  2. The campaign runs. Worker agents try ideas. piloop scores each commit and keeps what wins. A research agent adds ideas, and a watchdog agent looks for problems.
  3. The agent reports. Your agent answers what the other agents escalate and records each decision in your inbox. It asks you only what needs you. Ask it "how is the campaign going?" at any time.

To look at the campaign yourself, run piloop watch.

Try it on an example

Ask your agent:

Set up the enwik8 example campaign from piloop.

The agents compress the first 10 MB of Wikipedia, as in the Hutter Prize. The baseline is zlib.

Run the example by hand
piloop init --example enwik8 ~/piloop-enwik8
cd ~/piloop-enwik8
piloop idea add enwik8 "Try lzma at the highest preset"
piloop serve --detach
piloop watch

The example uses Claude Code and stops after 20 scored worker runs. See Run a campaign by hand.

Requirements

  • Linux or macOS.
  • git, with a commit identity.
  • uv. The installer installs it.
  • At least one worker agent CLI, logged in: Claude Code, Codex or pi.
  • Optional: Herdr, to see and steer every agent in a terminal pane. By default, the agents run in the background. To use Herdr, set runtime = "herdr".
  • Optional: Entire, to keep the session of every agent in your repo.

Documentation

  • Introduction: what piloop does, and how a campaign works.
  • Quickstart: your first campaign, through your agent.
  • Concepts: projects, ideas, runs, candidates and the verdict.
  • Reference: the CLI, the configuration, the database schema.

Contributing

See CONTRIBUTING.md. Agents that operate piloop start at AGENTS.md.

License

MIT. See LICENSE.

Metadata

Release files for piloop 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for piloop 0.1.0
File Size Uploaded
piloop-0.1.0.tar.gz 592.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for piloop 0.1.0
File Interpreter ABI Platform
piloop-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 892.5 kB

Release files / piloop-0.1.0.tar.gz

Download URL piloop-0.1.0.tar.gz
Size 592.6 kB
Tags Source
SHA-256 checksum
How to use checksums
b76b2f55d727bb6b19a711e7e08b81a8527b9bb29819063d7b6eb297f643e6f9
BLAKE2b-256 checksum
How to use checksums
83cf75f159512627166d9a3226530b2bd81b6eef7ebf3f4c4f4aef396b4b1cae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / piloop-0.1.0-py3-none-any.whl

Download URL piloop-0.1.0-py3-none-any.whl
Size 299.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1ce99f45a2f8ea1986a6780d073d712e988ea769d72feb4757824f28dea2dd15
BLAKE2b-256 checksum
How to use checksums
25e3907f2e76daf8ba0436caa843ced93f016413757310a2cfa75a6fcfa868f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page