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.
AI-powered GitHub PR/Issue reviews with agentic codebase access.
$ npx skills add AsyncFuncAI/AsyncReview --skill asyncreview -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install AsyncFuncAI/AsyncReview asyncreview --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/AsyncFuncAI/AsyncReview.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/asyncreview .claude/skills/asyncreview && 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 "asyncreview" agent skill from https://github.com/AsyncFuncAI/AsyncReview/tree/main/skills/asyncreview into .claude/skills/asyncreview/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "asyncreview", 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/AsyncFuncAI/AsyncReview/tree/main/skills/asyncreviewType 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 AsyncFuncAI/AsyncReview --skill asyncreview -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install AsyncFuncAI/AsyncReview asyncreview --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AsyncFuncAI/AsyncReview.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/asyncreview .agents/skills/asyncreview && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "asyncreview" agent skill from https://github.com/AsyncFuncAI/AsyncReview/tree/main/skills/asyncreview into .agents/skills/asyncreview/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "asyncreview", 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 AsyncFuncAI/AsyncReview --skill asyncreview -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install AsyncFuncAI/AsyncReview asyncreview --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AsyncFuncAI/AsyncReview.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/asyncreview .cursor/skills/asyncreview && 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 "asyncreview" agent skill from https://github.com/AsyncFuncAI/AsyncReview/tree/main/skills/asyncreview into .cursor/skills/asyncreview/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "asyncreview", 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/AsyncFuncAI/AsyncReview.git --path skills/asyncreview--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 AsyncFuncAI/AsyncReview --skill asyncreview -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install AsyncFuncAI/AsyncReview asyncreview --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AsyncFuncAI/AsyncReview.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/asyncreview .gemini/skills/asyncreview && 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 "asyncreview" agent skill from https://github.com/AsyncFuncAI/AsyncReview/tree/main/skills/asyncreview into .gemini/skills/asyncreview/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "asyncreview", 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 AsyncFuncAI/AsyncReview asyncreviewInstalls 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 AsyncFuncAI/AsyncReview --skill asyncreview -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/AsyncFuncAI/AsyncReview.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/asyncreview .github/skills/asyncreview && 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 "asyncreview" agent skill from https://github.com/AsyncFuncAI/AsyncReview/tree/main/skills/asyncreview into .github/skills/asyncreview/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "asyncreview", 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 AsyncFuncAI/AsyncReview --skill asyncreview -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install AsyncFuncAI/AsyncReview asyncreview --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AsyncFuncAI/AsyncReview.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/asyncreview .opencode/skills/asyncreview && 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 "asyncreview" agent skill from https://github.com/AsyncFuncAI/AsyncReview/tree/main/skills/asyncreview into .opencode/skills/asyncreview/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "asyncreview", 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.
asyncreviewAI-powered GitHub PR/Issue reviews with agentic codebase access.
Asyncreview is an agent skill from AsyncFuncAI/AsyncReview. AI-powered GitHub PR/Issue reviews with agentic codebase access. Use when the user needs to review pull requests, analyze code changes, ask questions about PRs, or get AI feedback on GitHub issues.
Its SKILL.md is about 2.1k 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 Pull requests and LLM API integration. It works with GitHub and Google Gemini. The repository describes itself as: Open-source Agentic code review tool inspired by DevinReview, using Recursive Language Models (RLM). The licence is MIT.
2 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 0c9cd43. 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(npx asyncreview:*)From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npxghcurlFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
github.comapi.github.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
GITHUB_TOKENGEMINI_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Asyncreview loads about 2.1k tokens when it runs. Until then it costs about 52 tokens; SKILL.md has 672 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 found no risky patterns in SKILL.md.
Automated 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 AsyncFuncAI/AsyncReview at commit 0c9cd43, republished under its MIT licence (© AsyncFuncAI). 672 words, ~2,124 tokens.
.claude/skills/asyncreview/SKILL.md (or your agent's skills folder).Use this skill when the user:
GEMINI_API_KEY is setgh repo view to determine if GITHUB_TOKEN is requiredgh auth token for private reposnpx asyncreview review --url <URL> -q "<question>"GEMINI_API_KEY (Required)Before running any command, check for GEMINI_API_KEY:
echo $GEMINI_API_KEYIf empty or not set, ask the user to provide their Gemini API key:
"AsyncReview requires a Gemini API key. Please set
GEMINI_API_KEYin your environment or provide it now."
Then set it:
export GEMINI_API_KEY="user-provided-key"IMPORTANT: Before reviewing a PR/Issue, you MUST check if the repository is private. If it is, GITHUB_TOKEN is REQUIRED.
From a URL like https://github.com/owner/repo/pull/123, extract:
ownerrepoOption A: Using GitHub CLI (if available)
gh repo view owner/repo --json isPrivate -q '.isPrivate'Option B: Without GitHub CLI (using curl)
# Try to access the repo via GitHub API without authentication
curl -s -o /dev/null -w "%{http_code}" https://api.github.com/repos/owner/repoPossible outcomes:
With gh:
true → Repository is private, GITHUB_TOKEN is REQUIREDfalse → Repository is public, GITHUB_TOKEN is optionalWith curl:
200 → Repository is public, GITHUB_TOKEN is optional (but recommended for higher rate limits)404 → Repository is private or doesn't exist, GITHUB_TOKEN is REQUIRED403 → Rate limited, need GITHUB_TOKENGITHUB_TOKEN is set# Check if GITHUB_TOKEN is already set
echo $GITHUB_TOKENIf empty or not set, obtain it using one of these methods:
Option A: Using GitHub CLI (if available)
# Get token from GitHub CLI (must be authenticated with `gh auth login` first)
export GITHUB_TOKEN=$(gh auth token)
# Verify it's set
echo $GITHUB_TOKENIf gh auth token fails, authenticate first:
gh auth loginOption B: Without GitHub CLI (create token via web)
repo (Full control of private repositories)export GITHUB_TOKEN="ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# Verify it's set
echo $GITHUB_TOKENSecurity tip: For better security, consider creating a fine-grained token with minimal permissions:
Then run the review with the token:
npx asyncreview review --url <URL> -q "question" --github-token $GITHUB_TOKENOr set it as an environment variable for the session:
export GITHUB_TOKEN=$(gh auth token)
npx asyncreview review --url <URL> -q "question"npx asyncreview review --url <PR_URL> -q "question" # Review a PR
npx asyncreview review --url <PR_URL> --expert # Expert code review
npx asyncreview review --url <PR_URL> --output markdown # Markdown outputnpx asyncreview review --url <url> -q "question" # Review with question
npx asyncreview review --url <url> -q "q" --output markdown # Markdown output
npx asyncreview review --url <url> -q "q" -o json # JSON outputURL formats supported:
https://github.com/owner/repo/pull/123https://github.com/owner/repo/issues/456GEMINI_API_KEY="your-key" # Required: Google Gemini API key
GITHUB_TOKEN="ghp_xxx" # Optional: For private repos / higher rate limitsnpx asyncreview review \
--url https://github.com/stanfordnlp/dspy/pull/9223 \
-q "Does this change break any existing callers?"Output shows:
npx asyncreview review \
--url https://github.com/owner/repo/pull/123 \
-q "Fetch src/utils.py and check if deprecated_func is still used"The AI will:
Complete workflow for private repositories:
# Step 1: Extract owner/repo from URL
# URL: https://github.com/myorg/private-repo/pull/42
# owner="myorg", repo="private-repo"
# Step 2: Check if repository is private
## Option A: With GitHub CLI
gh repo view myorg/private-repo --json isPrivate -q '.isPrivate'
# Output: true (it's private!)
## Option B: Without GitHub CLI (using curl)
curl -s -o /dev/null -w "%{http_code}" https://api.github.com/repos/myorg/private-repo
# Output: 404 (likely private or doesn't exist)
# Step 3: Ensure GITHUB_TOKEN is set
echo $GITHUB_TOKEN
## If empty, Option A: Get from GitHub CLI
export GITHUB_TOKEN=$(gh auth token)
## If empty, Option B: Create via web (https://github.com/settings/tokens)
## Then:
export GITHUB_TOKEN="ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# Step 4: Run the review with the token
npx asyncreview review \
--url https://github.com/myorg/private-repo/pull/42 \
-q "Does this PR introduce any security vulnerabilities?" \
--github-token $GITHUB_TOKEN
# Alternative: Token is already in environment, no flag needed
npx asyncreview review \
--url https://github.com/myorg/private-repo/pull/42 \
-q "Does this PR introduce any security vulnerabilities?"If you get a 404 or authentication error: The repository is likely private, and you need to provide GITHUB_TOKEN.
| Format | Flag | Description |
|---|---|---|
| Pretty | (default) | Rich terminal output with boxes |
| Markdown | --output markdown or -o markdown | Markdown formatted |
| JSON | --output json or -o json | Machine-readable |
Use --expert flag for comprehensive PR reviews covering SOLID principles, security, performance, and code quality:
# Full expert review (no question needed)
npx asyncreview review --url <PR_URL> --expert
# Expert review with additional custom question
npx asyncreview review --url <PR_URL> --expert -q "Also check for breaking API changes"Expert review analyzes:
Output includes:
© AsyncFuncAI, 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 skills/asyncreview of AsyncFuncAI/AsyncReview.
Open the folder on GitHubat commit 0c9cd43
Asyncreview 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 |
|---|---|---|---|---|---|---|
| Asyncreview this skillAsyncFuncAI/AsyncReview | 459 | — | ~2.1k | Automated safety check: Pass | MIT | |
| PR Babysitteropeninterpreter/openinterpreter | 69k | 3 repos | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| Check PRonyx-dot-app/onyx | 32k | 2 repos | ~2.3k | Automated safety check: Pass | MIT | |
| Contributor-First PR MergeHKUDS/OpenHarness | 16k | 1 repos | ~847 | Automated safety check: Pass | MIT | |
| Create Pull Requestcline/cline | 70k | 1 repos | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| Pull Request Title and Body Writeropeninterpreter/openinterpreter | 69k | 2 repos | ~1.1k | Automated safety check: Pass | Apache-2.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.
onyx-dot-app/onyx
Checks a GitHub, GitLab, or Perforce (p4) pull request (or merge request, or shelved changelist) for unresolved review comments, failing status checks, and incomplete PR descriptions.
HKUDS/OpenHarness
Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.
cline/cline
Opens a GitHub pull request from your current branch with the gh CLI, after reviewing the commits and diff and gathering the details the PR needs.
openinterpreter/openinterpreter
Rewrites the title and body of one or more pull requests with gh, leading with why the change was made, then what changed, and describing only the net result.
prisma/orm
Runs a loop on a GitHub pull request: fetch review state, triage comments into actions, implement them and resolve threads, repeating until nothing actionable is left.
Works with
Categories
AI-powered GitHub PR/Issue reviews with agentic codebase access. Asyncreview is an agent skill from AsyncFuncAI/AsyncReview. AI-powered GitHub PR/Issue reviews with agentic codebase access.
Asyncreview fits situations like: the user needs to review pull requests; analyze code changes; ask questions about PRs; get AI feedback on GitHub issues.
Run `npx skills add AsyncFuncAI/AsyncReview --skill asyncreview -a claude-code`. Or copy the skill folder (skills/asyncreview in AsyncFuncAI/AsyncReview) into .claude/skills/asyncreview in your project. Claude Code loads it when a task matches its description.
Run `npx skills add AsyncFuncAI/AsyncReview --skill asyncreview -a codex`. Or copy the skill folder (skills/asyncreview in AsyncFuncAI/AsyncReview) into .agents/skills/asyncreview 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 AsyncFuncAI/AsyncReview --skill asyncreview -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/asyncreview, .gemini/skills/asyncreview, .github/skills/asyncreview and .opencode/skills/asyncreview in your project.
Going by SKILL.md and its folder, Asyncreview needs the command-line tools its instructions call (npx, gh and curl) and credentials named GITHUB_TOKEN and GEMINI_API_KEY. Our summary lists: Python 3; Node.js; A credential in GEMINI_API_KEY; A credential in GITHUB_TOKEN. Its frontmatter pre-approves these tools: Bash(npx asyncreview:*).
SKILL.md names 2 domains. In commands or code: github.com and api.github.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Asyncreview is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.5k 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 Asyncreview: PR Babysitter (openinterpreter/openinterpreter, 69k stars), Check PR (onyx-dot-app/onyx, 32k stars), Contributor-First PR Merge (HKUDS/OpenHarness, 16k stars) and Create Pull Request (cline/cline, 70k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
AsyncFuncAI (a GitHub organization) maintains it in AsyncFuncAI/AsyncReview, which has 459 GitHub stars. The repository was last updated on April 27, 2026.
Source: AsyncFuncAI/AsyncReview on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.