Shell-verified acceptance
The spec defines the exact commands that must pass. The agent does not decide for itself whether it is done.
Define a queue of verifiable tasks before you leave work. owloop runs them overnight in isolated git worktrees, verifies each one with the shell commands you wrote, and commits only on green.
uvx owloop init && owloop run
See it in action
How it works
Start with a vague goal. owloop spec reads your codebase, asks clarifying questions, and drafts a concrete spec.
Edit the generated spec: requirements, shell-verifiable acceptance criteria, exclusions, and stuck behavior.
owloop run opens a full-screen TUI with an animated owl, iteration counter, token budget, and real-time status.
The agent runs the exact shell commands from your acceptance criteria. Only green means commit.
Open the worktree diff and the HTML report. Merge when ready. Go back to sleep.
Features
The spec defines the exact commands that must pass. The agent does not decide for itself whether it is done.
Each task starts clean. No accumulated context drift, no accidental side effects.
Everything happens in a disposable git worktree. Your main checkout is never touched until you choose to merge.
Completion is a grep-able <promise>DONE</promise>, not a model guess.
Catches death spirals when the same files are edited repeatedly without progress.
Set --max-tokens and --max-duration. The loop stops before your wallet does.
Compared to
| owloop | /goal |
|
|---|---|---|
| Completion check | grep <promise> |
Haiku judgment |
| Best for | Backlog of verifiable tasks | One focused task, user present |
| Spec format | Constraint-oriented | Free-form |
| Context | Fresh per iteration | Same session |
| Isolation | Worktree | None |
Install owloop, write your first spec, and let Ollie handle the rest.