Run iterative agent loops with task tracking
Project description
wiggum
A minimal, opinionated tool for running agent loops.
while true; do cat PROMPT.md | claude --print; done
This is the "Ralph Wiggum loop" - the simplest possible agent loop. wiggum adds just enough guardrails to make it practical.
Philosophy
- Simple - prefer simplicity whenever possible
- Minimal - does one thing well: run a prompt in a loop until tasks are done
- Opinionated - sensible defaults, few options
- Unobtrusive - infer what you can, don't ask obvious questions
- Task-driven - stops when TASKS.md has no unchecked items
- Test-driven - write tests first for new behavior; skip tests for trivial changes (renames, constants, config)
Installation
# Run directly (no install needed)
uvx wiggum init
# Or install globally
uv tool install wiggum
# Upgrade to latest version
uv tool upgrade wiggum
Quick Start
# Set up (Claude helps plan your tasks)
wiggum init
# Run the loop
wiggum run
How It Works
initcreatesLOOP-PROMPT.md(workflow) andTASKS.md(task list)runexecutes Claude with the prompt, checks TASKS.md after each iteration- Loop stops when all tasks are checked off (
- [x])
Options
wiggum run # Run (skips permission prompts by default)
wiggum run --no-yolo # Ask for permissions
wiggum run -n 5 # Max 5 iterations
wiggum run --continue # Keep context between iterations
wiggum run --keep-running # Continue even when tasks complete (agent can add new tasks)
wiggum run --identify-tasks # Analyze codebase and add refactoring tasks to TASKS.md
wiggum run --agent codex # Use a different agent (codex, gemini, etc.)
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
wiggum-0.5.0.tar.gz
(20.2 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
wiggum-0.5.0-py3-none-any.whl
(26.6 kB
view details)
File details
Details for the file wiggum-0.5.0.tar.gz.
File metadata
- Download URL: wiggum-0.5.0.tar.gz
- Upload date:
- Size: 20.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6b279a6a480931ab2f97d44d0044d2a13554821ce8c814895318176c62217d5d
|
|
| MD5 |
f571897aaddabcaec936f1a466214a45
|
|
| BLAKE2b-256 |
6d7363627e4ebe95057400b845c4697fad71724561019f7d775678485e813ef8
|
File details
Details for the file wiggum-0.5.0-py3-none-any.whl.
File metadata
- Download URL: wiggum-0.5.0-py3-none-any.whl
- Upload date:
- Size: 26.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1759b7e3cbb87322062979da60e3ec29d694c3b29965d4ae62f077c14c28aaf4
|
|
| MD5 |
0708215b007afebf04a939eee41c9c35
|
|
| BLAKE2b-256 |
34e0c659ceac5cfe61dff256d40abe008dd115e827b9fa3d78b89b950ee4b429
|