PR Babysitter
openinterpreter/openinterpreter
Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.
Runs the Greptile CLI on the current local branch, fixes what the review finds, and reviews again, until the review comes back 5/5 with zero comments.
$ npx skills add galfrevn/apollo --skill greploop -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install galfrevn/apollo greploop --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/galfrevn/apollo.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/greploop .claude/skills/greploop && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "greploop" agent skill from https://github.com/galfrevn/apollo/tree/main/.agents/skills/greploop into .claude/skills/greploop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "greploop", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/galfrevn/apollo/tree/main/.agents/skills/greploopType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add galfrevn/apollo --skill greploop -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install galfrevn/apollo greploop --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/galfrevn/apollo.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/greploop .agents/skills/greploop && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "greploop" agent skill from https://github.com/galfrevn/apollo/tree/main/.agents/skills/greploop into .agents/skills/greploop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "greploop", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add galfrevn/apollo --skill greploop -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install galfrevn/apollo greploop --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/galfrevn/apollo.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/greploop .cursor/skills/greploop && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "greploop" agent skill from https://github.com/galfrevn/apollo/tree/main/.agents/skills/greploop into .cursor/skills/greploop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "greploop", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/galfrevn/apollo.git --path .agents/skills/greploop--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add galfrevn/apollo --skill greploop -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install galfrevn/apollo greploop --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/galfrevn/apollo.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/greploop .gemini/skills/greploop && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "greploop" agent skill from https://github.com/galfrevn/apollo/tree/main/.agents/skills/greploop into .gemini/skills/greploop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "greploop", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install galfrevn/apollo greploopInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add galfrevn/apollo --skill greploop -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/galfrevn/apollo.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/greploop .github/skills/greploop && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "greploop" agent skill from https://github.com/galfrevn/apollo/tree/main/.agents/skills/greploop into .github/skills/greploop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "greploop", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add galfrevn/apollo --skill greploop -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install galfrevn/apollo greploop --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/galfrevn/apollo.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/greploop .opencode/skills/greploop && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "greploop" agent skill from https://github.com/galfrevn/apollo/tree/main/.agents/skills/greploop into .opencode/skills/greploop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "greploop", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
greploopRuns the Greptile CLI on the current local branch, fixes what the review finds, and reviews again, until the review comes back 5/5 with zero comments.
Greploop is an agent skill from galfrevn/apollo. Runs the Greptile CLI on the current local branch, fixes what the review finds, and reviews again, until the review comes back 5/5 with zero comments. Use when the user says "greploop", asks to iterate on Greptile feedback until the review is clean, wants a branch polished before pushing or opening a PR, or wants local review findings fixed and re-reviewed automatically.
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Code review. The repository describes itself as: The open-source brain for physical agentic devices, powered by Cloudflare Workers. The licence is MIT.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit c7605d6. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
Bash(greptile *)Bash(git *)From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitjqnpmbrewFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Greploop loads about 2k tokens when it runs. Until then it costs about 96 tokens; SKILL.md has 1,018 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
`.env` someone dropped in) and buries it in a commit labelled as review feedback. Keep a list ofAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from galfrevn/apollo at commit c7605d6, republished under its MIT licence (© galfrevn). 1,018 words, ~2,018 tokens.
.claude/skills/greploop/SKILL.md (or your agent's skills folder).Run a Greptile review on the local branch, fix what it finds, review again. Stop at 5/5 with zero comments.
This is the local CLI loop. No PR, nothing pushed. Command and output details are in the
greptile-cli skill.
Run the steps below yourself, once per iteration. Do not reach for watch(1):
watch has no exit condition, and GNU's
--chgexit only stops when output changes, not when the score reaches 5/5.The fix between reviews is the entire point, and only you can make it.
If the user explicitly wants a hands-off shell loop with no agent in it, this is the shape. It still cannot fix anything, so it only reports:
for i in $(seq 1 5); do
greptile review --json > review.json || break
[ "$(jq '.confidence == 5 and (.comments | length) == 0' < review.json)" = "true" ] && break
echo "iteration $i: $(jq -r '.confidence')/5, $(jq '.comments | length' < review.json) comments"
doneCopy this checklist and check items off as you go:
Greploop progress:
- [ ] Step 0: Preflight
- [ ] Step 1: Start from a clean worktree
- [ ] Step 2: Review
- [ ] Step 3: Check exit conditions
- [ ] Step 4: Fix findings
- [ ] Step 5: Commit, then back to Step 2
- [ ] Step 6: Reportgit rev-parse --show-toplevel # must be a git repo with a remote
command -v greptile # must be installed
greptile whoami # check the OUTPUT, not the exit codeIf greptile is missing, stop and tell the user to install it (npm install -g greptile, or
brew install greptileai/tap/greptile).
greptile whoami exits 0 even when signed out, printing Not signed in. … to stdout, so
gate on its text:
greptile whoami | grep -q '^Not signed in' && echo "needs login"If it needs a login, stop and tell the user to run greptile login. It is an interactive browser
flow; do not attempt it yourself.
greptile review reviews committed changes against the branch base, and this loop commits once
per iteration, so it needs a clean tree to begin with.
git status --porcelain # must be empty before you startIf anything is listed, stop and hand it back to the user. Ask them to commit or stash it, and say why: once the loop starts, any file it edits gets staged whole, so a change they had in that file would be swept into a commit labelled as review feedback. You cannot separate their edits from yours inside a single file, and an agent should not be splitting hunks to try.
Do not commit or stash on their behalf, and do not proceed with a dirty tree because the dirty files look unrelated. The loop only learns which files it will touch after the first review.
greptile review --json > review.jsonAlways --json, and capture it. The next steps read review.json. A review takes on the order of
a minute; do not wrap it in a short timeout, and do not start a second one while one is running.
Pass -b <branch> when the user named a base. Otherwise omit it and let the CLI resolve the
repository default.
A zero exit with findings is the normal case. greptile review exits 0 whatever it finds. A
non-zero exit means the review did not complete: report the stderr message and stop. Several of
those are about the input and will never clear by looping: detached HEAD, more than 500 changed
files, a diff over 3 MB, a base sharing no history with HEAD, or every changed file held back as
sensitive.
jq '{confidence, count: (.comments | length)}' < review.jsonStop the loop when any of these is true:
confidence is 5 and comments is empty. Success, go to Step 6.confidence: 5 with comments still open means keep going: the comments are the work.
Work findings in this order: securityIssue: true, then P0, then P1, then P2. Ignore
category and verifiedEvidence. On the --json path they are always "comment" and null, so
they carry no ranking signal.
For each finding:
path around startLine to endLine. Do not rely on hunk.before alone. The
working tree has usually moved since the review ran.Do not apply suggestion fields blindly in bulk. Each is a proposal. Read it, confirm it fits the
surrounding code, then apply.
Never disable a rule, add a suppression comment, or weaken a test to make a finding go away. If a finding can only be cleared that way, treat it as not actionable and report it. A 5/5 bought by silencing the reviewer is worth nothing.
Stage only the files you edited in Step 4, by path:
git add -- src/auth.ts src/db.ts # the paths you actually changed
git commit -m "address greptile review feedback"Never git add -A or git add . here. This loop runs unattended across several iterations, and a
catch-all stage sweeps in whatever else appeared in the worktree (scratch files, build output, a
.env someone dropped in) and buries it in a commit labelled as review feedback. Keep a list of
the paths you touched as you fix, and stage exactly that list.
Staging by path is only safe if those files still contain exactly what you wrote. Step 1 started clean, but the loop runs for minutes, and someone editing in their IDE meanwhile would have their change staged wholesale under your commit message. Before staging, confirm each path still matches your edit. Re-read it, or diff it against what you intended:
git diff -- src/auth.ts # every hunk here should be one you madeIf a file changed underneath you, stop the loop and tell the user which file and why. Do not stage it, and do not try to separate their hunks from yours.
If git status --porcelain shows changes in files you did not edit, leave them alone and note
them in the final report. They are not yours to commit.
Return to Step 2 and increment the iteration counter. Do not push. This loop stays local unless the user asks otherwise.
Greploop complete.
Iterations: 2
Confidence: 5/5
Fixed: 7 findings
Remaining: 0When the loop stopped without a clean review, say so plainly and list what is left:
Greploop stopped after 5 iterations.
Confidence: 4/5
Fixed: 12 findings
Remaining: 2
Remaining:
- src/auth.ts:45 (P1) "Consider rate limiting this endpoint"
Not fixed: needs a product decision on limits.
- src/db.ts:112 (P2) "Missing index on user_id"
Not actionable: the index exists in migration 0043.Report the state you actually reached. A loop that ran out of iterations at 3/5 is a 3/5 result. Never describe it as complete.
© galfrevn, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/greploop of galfrevn/apollo.
Open the folder on GitHubat commit c7605d6
Greploop next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Greploop this skillgalfrevn/apollo | 237 | — | ~2k | Automated safety check: Notes | MIT | |
| PR Babysitteropeninterpreter/openinterpreter | 69k | 3 repos | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| Code Review ChecklistshareAI-lab/learn-claude-code | 78k | 5 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Backend Code Reviewlangflow-ai/langflow | 156k | — | ~3.5k | Automated safety check: Notes | MIT | |
| Understand Diff AnalysisEgonex-AI/Understand-Anything | 86k | 1 repos | ~1.4k | Automated safety check: Pass | MIT | |
| Mole Bug Patternstw93/Mole | 70k | — | ~2k | Automated safety check: Pass | GPL-3.0 |
openinterpreter/openinterpreter
Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.
shareAI-lab/learn-claude-code
Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.
langflow-ai/langflow
Review backend code for quality, security, maintainability, and best practices based on established checklist rules.
Egonex-AI/Understand-Anything
Reads your git changes or a pull request against a prebuilt knowledge graph of the project to explain what changed, which components are affected and what is risky.
tw93/Mole
A catalog of recurring bug shapes in the Mole Mac cleaner, used to review safety-sensitive diffs for deletion safety, unbounded commands, shell traps and weak tests.
langgenius/dify
Reviews backend code under api/ for concrete, reproducible defects, routes to rule packs for architecture, schema, repositories and SQLAlchemy, and ranks findings from P0 to P3.
galfrevn/apollo
A skill your agent uses when building, running, testing, or bundling JavaScript/TypeScript applications.
galfrevn/apollo
Structured diagnostic for technical SEO problems. An agent skill from galfrevn/apollo.
galfrevn/apollo
Optimize content for AI search engines — ChatGPT, Perplexity, Claude, Gemini, Google AI Overviews.
Categories
Runs the Greptile CLI on the current local branch, fixes what the review finds, and reviews again, until the review comes back 5/5 with zero comments. Greploop is an agent skill from galfrevn/apollo. Runs the Greptile CLI on the current local branch, fixes what the review finds, and reviews again, until the review comes back 5/5 with zero comments.
Greploop fits situations like: the user says greploop; asks to iterate on Greptile feedback until the review is clean; wants a branch polished before pushing; wants local review findings fixed and re-reviewed automatically.
Run `npx skills add galfrevn/apollo --skill greploop -a claude-code`. Or copy the skill folder (.agents/skills/greploop in galfrevn/apollo) into .claude/skills/greploop in your project. Claude Code loads it when a task matches its description.
Run `npx skills add galfrevn/apollo --skill greploop -a codex`. Or copy the skill folder (.agents/skills/greploop in galfrevn/apollo) into .agents/skills/greploop in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add galfrevn/apollo --skill greploop -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/greploop, .gemini/skills/greploop, .github/skills/greploop and .opencode/skills/greploop in your project.
Going by SKILL.md and its folder, Greploop needs the command-line tools its instructions call (git, jq, npm and brew). Our summary lists: Node.js. Its frontmatter pre-approves these tools: Bash(greptile *), Bash(git *).
SKILL.md contains no URLs. Its commands use git and npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Greploop is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 8.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Greploop: PR Babysitter (openinterpreter/openinterpreter, 69k stars), Code Review Checklist (shareAI-lab/learn-claude-code, 78k stars), Backend Code Review (langflow-ai/langflow, 156k stars) and Understand Diff Analysis (Egonex-AI/Understand-Anything, 86k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
galfrevn (a GitHub user) maintains it in galfrevn/apollo, which has 237 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on August 17, 2026.
Source: galfrevn/apollo on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.