Agent Browser CLI
vercel-labs/agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking…
Maintainer triage on OTHER people's PRs/MRs — verdict of approve, supersede, or close, salvage with credit, close the cluster.
$ npx skills add OutThisLife/brooklyn-skills --skill pr-triage -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install OutThisLife/brooklyn-skills pr-triage --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/OutThisLife/brooklyn-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/pr-triage .claude/skills/pr-triage && 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 "pr-triage" agent skill from https://github.com/OutThisLife/brooklyn-skills/tree/main/skills/pr-triage into .claude/skills/pr-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pr-triage", 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/OutThisLife/brooklyn-skills/tree/main/skills/pr-triageType 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 OutThisLife/brooklyn-skills --skill pr-triage -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install OutThisLife/brooklyn-skills pr-triage --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OutThisLife/brooklyn-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/pr-triage .agents/skills/pr-triage && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "pr-triage" agent skill from https://github.com/OutThisLife/brooklyn-skills/tree/main/skills/pr-triage into .agents/skills/pr-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pr-triage", 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 OutThisLife/brooklyn-skills --skill pr-triage -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install OutThisLife/brooklyn-skills pr-triage --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OutThisLife/brooklyn-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/pr-triage .cursor/skills/pr-triage && 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 "pr-triage" agent skill from https://github.com/OutThisLife/brooklyn-skills/tree/main/skills/pr-triage into .cursor/skills/pr-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pr-triage", 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/OutThisLife/brooklyn-skills.git --path skills/pr-triage--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 OutThisLife/brooklyn-skills --skill pr-triage -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install OutThisLife/brooklyn-skills pr-triage --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OutThisLife/brooklyn-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/pr-triage .gemini/skills/pr-triage && 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 "pr-triage" agent skill from https://github.com/OutThisLife/brooklyn-skills/tree/main/skills/pr-triage into .gemini/skills/pr-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pr-triage", 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 OutThisLife/brooklyn-skills pr-triageInstalls 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 OutThisLife/brooklyn-skills --skill pr-triage -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/OutThisLife/brooklyn-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/pr-triage .github/skills/pr-triage && 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 "pr-triage" agent skill from https://github.com/OutThisLife/brooklyn-skills/tree/main/skills/pr-triage into .github/skills/pr-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pr-triage", 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 OutThisLife/brooklyn-skills --skill pr-triage -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install OutThisLife/brooklyn-skills pr-triage --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OutThisLife/brooklyn-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/pr-triage .opencode/skills/pr-triage && 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 "pr-triage" agent skill from https://github.com/OutThisLife/brooklyn-skills/tree/main/skills/pr-triage into .opencode/skills/pr-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pr-triage", 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.
pr-triageMaintainer triage on OTHER people's PRs/MRs — verdict of approve, supersede, or close, salvage with credit, close the cluster.
PR Triage is an agent skill from OutThisLife/brooklyn-skills. Maintainer triage on OTHER people's PRs/MRs — verdict of approve, supersede, or close, salvage with credit, close the cluster. Use for a review batch, a pasted Discord thread with a PR, or salvage/supersede/close asks. Not for your own PR (that's pr-ready).
Its SKILL.md is about 4.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `reference.md`).
It works with Discord. The repository describes itself as: Skills that drive best-in-class engineering. The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 8a97904. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
ghgitglabFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use gh, git and glab, 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.
PR Triage loads about 4.7k tokens when it runs. Until then it costs about 67 tokens; SKILL.md has 2,631 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 OutThisLife/brooklyn-skills at commit 8a97904, republished under its MIT licence (© OutThisLife). 2,631 words, ~4,741 tokens.
.claude/skills/pr-triage/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Maintainer triage. Three real outcomes: approve, supersede (salvage +
credit + close the old one), or close (wrong premise). Verdict first; wait
for an explicit go before forge writes (approve / supersede / close / merge /
push). Use gh or glab.
Treat the user's stated outcome set as overriding the default taxonomy below. If they request approve or request changes only, review each MR on that basis: report concrete blockers as request changes, and do not consolidate, supersede, close, or implement a replacement. Keep the verdict-first / explicit-go boundary for forge writes.
Batch ("we will be reviewing…") or a pasted Discord/>>>…<<< thread with a PR:
AGENTS.md / CONTRIBUTING.md if present.More than one PR/issue in front of you? Group them by the fix they need before you judge any single one. Multiple PRs on the same bug (or fragile subsystem) are one consolidation, not N salvages.
Co-authored-by + @handle), and supersede the whole cluster.#68665 + #63590 + #67603 → one super-PR,
then run the per-PR loop within each group to confirm premises.Do not enumerate one verdict per PR when they share a fix — that's the lazy shape. One cluster → one consolidated supersede.
A pasted thread is the intake. Don't make them restate a bare URL.
A support handoff with an owner/maintainer column is a shared board, not her queue. Take only rows whose owner names her (alone or shared); list the rest as "not yours" with no forge writes, even when the ask is a broad "help these out". Approving, merging, salvaging or closing another maintainer's cluster is overreach she has to walk back.
git merge-base --is-ancestor <merge> <reviewed-base>; exit 128 for an unavailable commit is missing ancestry evidence, never proof of inclusion or exclusion. For oversized PR diffs, recover the issue-relevant patches with paginated gh api repos/<owner>/<repo>/pulls/<number>/files --paginate --slurp rather than trusting a truncated file list.source and subject objects. Preserve external-repository references: a merged fork/plugin PR is not upstream coverage, and merge-base exit 128 means an unavailable object, not a proven non-ancestor.git merge-base --is-ancestor <merge-sha> <reviewed-main-sha> before treating it as landed. Stacked fixes can be marked MERGED into an unlanded feature branch; absent feature code on main is not proof that a pre-merge bug report is resolved. Conversely, inspect current code and its history for later fixes outside the issue timeline so an unrelated reference does not hide an actual resolution.For recommendation-only audits, preserve that boundary: no forge writes, even when a related PR is merged.
| Action | GitHub | GitLab |
|---|---|---|
| View | gh pr view <N> | glab mr view <N> |
| Diff | gh pr diff <N> | glab mr diff <N> |
| Comment | gh pr comment <N> | glab mr note <N> |
| Review | gh pr review <N> --approve | --request-changes | glab mr approve / note |
| Close PR/MR | gh pr close <N> | glab mr close <N> |
| Close issue | gh issue close <N> | glab issue close <N> |
git fetch origin pull/<N>/head:refs/remotes/origin/pr-<N> # GitHub
# GitLab: glab mr checkout <N>Run this within each cluster (see "Cluster the batch first"). If the group consolidates, the salvage plan is shared and you supersede all of them into one super-PR — don't emit a standalone salvage per member.
gh / glab).main).**PR/MR:** [#N](https://…/pull/N)
**Verdict: approve | supersede | close-as-wrong-premise**
**Worktree:** `…` · `<branch>`
### Why
- …
### Checks
| Check | Result |
|---|---|
| Merges onto default branch | … |
| CI | … |
| Targeted tests | … |
### Next (after go)
- approve: …
- supersede: salvage plan (reuse X, drop Y, tests Z, credit @handle)
- close: wrong-premise comment outline| Situation | Verdict |
|---|---|
| Idea + shape are fine | approve |
| Idea is right, shape is wrong (wrong helper/layer, missing tests for the bug class, contaminated, stale/conflicting, duplicate of another PR, ignored lead feedback) | supersede |
| Premise doesn't hold on current default branch | close-as-wrong-premise |
Anti-patterns — do not do these:
keep open — ask the author to rewrite / reuse helper X / add coverage
when the shape is already wrong → that is supersede. You salvage it.request-changes, needs-info, wait-and-see)
for external PRs that need reshaping.request-changes is not a triage verdict. It is only for trusted /
internal authors with a single tiny nit under Approve — never for
"please rebuild this correctly."
Infer from organization membership, team roles, prior maintainer behavior, or
the user explicitly identifying someone as a lead/internal contributor. If a
pr-triage-<repo> overlay skill exists for this repo, load it for the roster
and worktree layout.
| Who | Default |
|---|---|
| #1 lead | Prefer approve/merge. Don't supersede automatically. Never approve over their open review comments. |
| Other internal | Prefer approve. One tiny nit → ask them (request-changes). Needs a real rewrite → supersede (or they bounce it to you). |
| External | Normal bar. Idea right / shape wrong → supersede with credit. Never "ask them to rebuild it." |
Not enough alone: taste nits, optional follow-ups, "could be prettier."
This is the default salvage ritual — not a rare escalation.
Co-authored-by +
@handle for each in the body.Supersedes #N, #M, … for all members;
Closes/Fixes only for issues it really fixes.no-tropes on public comments.Templates: reference.md.
After supersede or a merge that kills siblings:
Superseded by #<new>., then close.Closes # on the new PR, or close by hand).action_required: approve each run (gh api -X POST repos/<o>/<r>/actions/runs/<id>/approve, ids from actions/runs?head_sha=<head>) so CI actually runs, then merge with --auto.--rebase --auto, check gh api repos/<o>/<r>/pulls/<N> --jq .rebaseable. A branch that merged main over a conflict is false, and the rebase merge will fail. Never switch to squash or merge commits: she wants rebase only. Rebase the branch onto main yourself (maintainer push to the fork, or ssh if it touches workflows), push with lease, then arm --rebase --match-head-commit <new-sha>. If you can't push to the branch, report it.git show --remerge-diff for merge commits), re-approve, re-approve its runs, and re-arm auto-merge.Run this checklist at the end of each PR/item — don't wait to be reminded:
Closes # on the new PR).pr-update) and CI is green.When the user requests recommendations only, preserve that boundary: do not perform forge writes.
gh pr diff, not only git show <mergeCommit>: after a rebase merge, GitHub's mergeCommit may identify only the last attribution or cleanup commit. For oversized diffs, inspect issue-relevant files/commits and state the limitation.git stash in a review worktree. The stash list is shared by every worktree of the repo, so a concurrent agent can pop your entry or you can pop theirs. To revert a file for a before/after test, save it with git diff <file> > $TMPDIR/x.patch, run git checkout -- <file>, then git apply the patch.© OutThisLife, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in skills/pr-triage of OutThisLife/brooklyn-skills.
Open the folder on GitHubat commit 8a97904
PR Triage 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 |
|---|---|---|---|---|---|---|
| PR Triage this skillOutThisLife/brooklyn-skills | 199 | — | ~4.7k | Automated safety check: Pass | MIT | |
| Agent Browser CLIvercel-labs/agent-browser | 44k | 24 repos | ~864 | Automated safety check: Pass | Apache-2.0 | |
| Electron App Automationvercel-labs/agent-browser | 44k | 5 repos | ~1.7k | Automated safety check: Pass | Apache-2.0 | |
| Claude To Imop7418/Claude-to-IM-skill | 2.9k | — | ~3.4k | Automated safety check: Notes | MIT | |
| Sap Extension Creatorheshengtao/super-agent-party | 2.7k | — | ~6k | Automated safety check: Pass | AGPL-3.0 | |
| Libtv Videonexu-io/nexu | 3.3k | — | ~3.5k | Automated safety check: Pass | MIT |
vercel-labs/agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking…
vercel-labs/agent-browser
Automates Electron desktop apps such as VS Code, Slack or Discord by connecting agent-browser to their Chrome DevTools Protocol port.
op7418/Claude-to-IM-skill
Bridge THIS Claude Code or Codex session to Telegram, Discord, Feishu/Lark, QQ, or WeChat so the user can chat with Claude from their phone.
heshengtao/super-agent-party
Create Super Agent Party (SAP) extensions. An agent skill from heshengtao/super-agent-party.
nexu-io/nexu
Seedance 2.0 video & image generation via LibTV Gateway - AI text-to-video, image-to-video, video continuation, style transfer, and text-to-image using Seedance 2.0 model.
TinyAGI/tinyagi
Send a proactive message to a paired user via their channel (Discord, Telegram, or WhatsApp).
OutThisLife/brooklyn-skills
Draft X/Twitter posts about shipped work. An agent skill from OutThisLife/brooklyn-skills.
OutThisLife/brooklyn-skills
Safely reclaim disk space on macOS without touching personal or agent data.
OutThisLife/brooklyn-skills
List my open MRs/PRs in the current repo/worktree, each with its tracker ticket.
OutThisLife/brooklyn-skills
Clear everything blocking an existing PR/MR from merging — rebase onto the default branch, get CI green, and resolve review threads (Copilot and human).
OutThisLife/brooklyn-skills
Open a PR/MR if missing, or refresh an existing one's title and description so they match the current diff.
OutThisLife/brooklyn-skills
Kick off a task in a fresh isolated git worktree instead of the current checkout.
Works with
Maintainer triage on OTHER people's PRs/MRs — verdict of approve, supersede, or close, salvage with credit, close the cluster. PR Triage is an agent skill from OutThisLife/brooklyn-skills. Maintainer triage on OTHER people's PRs/MRs — verdict of approve, supersede, or close, salvage with credit, close the cluster.
PR Triage fits situations like: A pasted Discord thread with a PR; salvage/supersede/close asks.
Run `npx skills add OutThisLife/brooklyn-skills --skill pr-triage -a claude-code`. Or copy the skill folder (skills/pr-triage in OutThisLife/brooklyn-skills) into .claude/skills/pr-triage in your project. Claude Code loads it when a task matches its description.
Run `npx skills add OutThisLife/brooklyn-skills --skill pr-triage -a codex`. Or copy the skill folder (skills/pr-triage in OutThisLife/brooklyn-skills) into .agents/skills/pr-triage 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 OutThisLife/brooklyn-skills --skill pr-triage -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pr-triage, .gemini/skills/pr-triage, .github/skills/pr-triage and .opencode/skills/pr-triage in your project.
Going by SKILL.md and its folder, PR Triage needs the command-line tools its instructions call (gh, git and glab).
SKILL.md contains no URLs. Its commands use gh and git, 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 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.
PR Triage is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.7k tokens (SKILL.md is roughly 19k 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 PR Triage: Agent Browser CLI (vercel-labs/agent-browser, 44k stars), Electron App Automation (vercel-labs/agent-browser, 44k stars), Claude To Im (op7418/Claude-to-IM-skill, 2.9k stars) and Sap Extension Creator (heshengtao/super-agent-party, 2.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
OutThisLife (a GitHub user) maintains it in OutThisLife/brooklyn-skills, which has 199 GitHub stars. The repository holds 22 skills in this directory. The repository was last updated on October 5, 2026.
Source: OutThisLife/brooklyn-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.