A simple, self-contained, zsh script implementing a generalist, recursive, LLM agent using aider.chat.
It was created for situations where I have written extensive specifications for a project and don't want to spend my attention to split the specs into a plan for an LLM.
Examples of successful usage include:
- turning a survey into a full fledged gradio app with specific requirements.
- recording audio for a while then using that transcript as specification to create a PDF using LaTeX.
AiderBuilder itself was built with the help of aider.chat.
Runs aider in a loop with builder rules that maintain a ROADMAP.md file to coordinate incremental development across iterations. Aider creates FINISHED.md when complete.
zshshell- aider in PATH
chmod +x aider_builder./aider_builder -n_iter N -s "what to build" [AIDER_ARGS...]-n_iter N: Iterations per batch (must be > 1)-s, --specifications SPEC: What to build (passed as prompt to aider). Can be a direct string or a path to a file containing the specifications.
-h, --help: Show help-v, --version: Show versionAIDER_ARGS...: Additional aider arguments (don't use--message, use-sinstead)
# Build a CLI tool with inline specification
./aider_builder -n_iter 5 -s "Create a Python CLI calculator using click"
# Build from a specification file
./aider_builder -n_iter 10 -s specs.txt
# With architect mode
./aider_builder -n_iter 10 -s "Build a REST API with FastAPI" --architect- Checks no
FINISHED.mdexists from previous builds - Creates
ROADMAP.mdif it doesn't exist (viatouch) - Loads builder rules into aider
- Runs
n_iteriterations where aider:- Always has
ROADMAP.mdin the chat context (via--fileflag) - Creates/updates
ROADMAP.mdto track progress - Performs one development step at a time
- Records decisions and issues in
ROADMAP.md
- Always has
- Prompts to continue after each batch
- Stops when aider creates
FINISHED.md
Aider is instructed to:
- Use
ROADMAP.mdfor coordination with TODO checkboxes - Work incrementally, one step at a time
- Record design decisions and errors
- Estimate progress at each iteration
- Create
FINISHED.mdwhen done