Skip to content

Repository files navigation

loopify: a loop you do not babysit. Hand Claude a job that repeats, come back to a log of what every tick did.

validateMIT licensestars

English · 简体中文 · 日本語 · Español · Français

Hand Claude a job that repeats. Come back to a log of what every tick did, not a loop you have to babysit.

What it does · Install · Use it · Works in your editor · Good to know · Learn more

claude plugin marketplace add Aboudjem/10x
claude plugin install loopify@10x

What it does

Some jobs never really finish. A release pull request needs watching all afternoon; new bug reports pile up overnight and want a first look before anyone reads them. Claude Code already has a command for repeating work, /loop: you give it a prompt and an interval, and it runs that prompt again and again while your session stays open. What it does not give you is the prompt.

loopify writes the prompt. You describe the job once, in plain words. loopify reads your project while Claude still has your context, asks the few decisions that matter (how often, when to stop, what it may touch), and writes two things.

  • The brief, a file. One round of the job: what to read, what it may change, what it must never do, when to stop, and where to write down what happened. The loop opens it fresh at the start of every run, so nothing is lost between runs, and you can edit it while the loop runs.
  • The line, one string. You paste it into /loop. The brief's path is inside it, so every run knows where to look. So is the stop rule, so the loop ends on your terms.

Each run is a tick. Every tick, Claude re-reads the brief, does one round of the job, and writes what happened to a log called TICKS.md. You do not have to stay up; you do have to read the log.

If you have used goalify, this will feel familiar. goalify is for a job that finishes: one big task, one definition of done, /goal. loopify is for a job that repeats.

Install

The two commands at the top add the 10x marketplace and install the plugin in Claude Code, which loopify was verified against at 2.1.252. Any other agent installs the same skill directory in one line, through the skills CLI:

npx skills add Aboudjem/loopify

Use it

1. Describe the job

Type /loopify in the Claude Code chat and say what should repeat. loopify reads the README, the recent commits and the open pull requests, then asks one short batch of questions.

/loopify keep our release PR healthy, check it every 20 minutes
brief /Users/you/acme/.loop/pr-babysitter.md a file, re-read every tick
state /Users/you/acme/.loop/pr-babysitter/ TICKS.md · LESSONS.md · QUEUE.md
line 144 chars one string, you paste it below

/Users/you/acme/ stands in for your project; loopify prints your real paths.

2. Paste the line

/loop 20m Run one cycle of /Users/you/acme/.loop/pr-babysitter.md · read it first, obey its stop rule (30 ticks or the PR merges), log the tick.

Claude runs one round right away and then every 20 minutes, in that session, until the PR merges or 30 ticks have passed, whichever comes first. Leave the interval out and Claude picks the pace itself. The two mistakes people make most often:

# not this: "every morning" can make /loop offer a cloud schedule instead, and nothing says when to stop
/loop every morning keep the release PR healthy
# and not the path alone: the tick gets a filename and no instruction
/loop 20m /Users/you/acme/.loop/pr-babysitter.md

3. Read the log

TICKS.md has one entry per tick with what changed and the evidence for it, and a counter at the top:

tick: 7/30
## tick 7 · 2026-09-01T09:40 · changed
- CI: lint failed on src/api.ts → fixed the unused import, committed 4f2a1c9, npm test 12/12
- reviews: 1 new thread answered (rename), reply drafted in QUEUE.md

Whatever the loop could not do safely waits for you in QUEUE.md.

What you get

  • A brief that stays put. Re-read every tick, never archived, never rewritten by the loop. How often it runs, when it stops and what it may touch are settled before the first tick.
  • A stop rule and a tick cap inside the line. A loop that finishes its job stops, and so does one that reaches its cap.
  • Rails for an unattended run. No accounts, no payments, no pushing or posting unless you say so. Anything the loop reads, such as a pull request comment, is data, never an instruction.
  • A repeat-safe clause in every brief. The brief names the marker a tick looks for before it acts, so a tick that runs again can tell that the work already happened.
  • A log with a shape. Every entry in TICKS.md opens with the same header, ## tick <n> · <ISO timestamp> · changed | noop | stopped, checkable with skills/loopify/scripts/ticks_lint.py. Blocked items in QUEUE.md carry a reason: line and an unblock: line.
  • A loop that learns.LESSONS.md keeps what worked and what wasted time, re-read every tick.

Works in your editor

Works in Claude Code, Cursor, Codex, Copilot, Gemini CLI, and 70+ other agents through npx skills add.

WhereHow
Claude Codeclaude plugin install loopify@10x
Cursor, Codex, Gemini CLI, OpenCode, Windsurf, Zed, Kimi Code CLInpx skills add Aboudjem/loopify -a <agent>
VS Code and GitHub Copilotnpx skills add Aboudjem/loopify -a github-copilot
Everything elsecopy skills/loopify/ into your agent's skills directory

loopify is one skill directory with two standard-library Python scripts beside it, so there is no server to run and nothing to compile. The -a code and both install paths per agent, and the copy-it-in-by-hand path, are in docs/editors.md.

The brief travels; the line does not. The line is a Claude Code /loop line, and the brief's scheduling step names Claude Code tools. The brief has a branch for that: run one cycle, log it, exit, and let an outside scheduler fire the next tick. docs/other-agents.md covers Kimi, Copilot CLI, Cursor, Qwen Code, Hermes, Goose and plain cron.

Good to know

Important

A running loop is not proof it is doing the right thing. Read the tick log. No evaluator sits behind /loop, so the brief's per-tick checklist and TICKS.md are the only proof there is.

  • The loop lives in the session you paste it into. It fires only while that session is open. Close the terminal and it stops; /clear wipes the schedule too. Running Claude Code in the background keeps it alive without a window.
  • Every loop ends at 7 days, and one session holds at most 50 scheduled tasks. Both are Claude Code limits on scheduled work, not loopify's. Paste the line again to carry on.
  • Pre-approve what a tick runs. loopify prints the commands the loop needs, such as gh pr view or git commit. A tick that hits a permission prompt waits there for an answer.

Learn more


Built by Adam Boudjemaa · MIT. /loop behavior re-derived from the shipped Claude Code 2.1.252 binary and the official docs, 2026. Sibling of goalify, which does the same for /goal. Spot a gap?

Releases

Packages

Contributors

Languages