How to install and run loops
loops! ships two things: a kickoff prompt (always) and sometimes an install bundle (hook files). Browser buttons cannot install files into your repo — only you can.
Use loop
Copies the kickoff prompt to your clipboard. Works in any agent. This is the main way to start a loop.
Open in Cursor
Opens Cursor with the kickoff pre-filled via a prompt deeplink. Does not install .cursor/hooks.json or other files. Cursor has no signal that a loop is “installed.”
Open in Claude Code
Opens Claude Code with the kickoff via claude-cli://. Same limitation — prompt only, no file install.
Install files
Downloads a zip with .cursor/ and .claude/ paths. Extract at your project root, then restart the agent so hooks load.
1. Open a loop and click Use loop.
2. Paste the kickoff into Cursor, Claude Code, Codex, or your terminal agent.
3. The agent follows the prompt: run the check command between passes, read output, fix issues, stop when the exit condition passes.
The kickoff is self-contained. It tells the agent how to execute the loop even though loops! does not run code on your machine.
1. Click Install files and unzip into your repo root.
2. Confirm files exist, e.g. .cursor/hooks.json and .claude/settings.json.
3. Restart Cursor or reload Claude Code so hooks register.
4. Optionally paste the kickoff once so the agent knows loop rules when a hook fires.
Hooks automate when the agent wakes up. The kickoff still defines what it does each pass.
Cursor supports /loop [interval] <prompt> to wake the agent on a schedule (e.g. every 5 minutes). That runs a background shell tick and re-submits a prompt.
loops! kickoffs are complementary: paste a kickoff for goal-driven self-pacing (test until green, fix CI, etc.), or adapt the kickoff text into a /loop command for fixed intervals.
Neither replaces the other. Install files + kickoff for event-driven hooks; /loop for time-driven ticks you configure in Cursor directly.