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…
Diagnose why Claude Code is (or isn't) prompting for permission.
$ npx skills add pedrohcgs/claude-code-my-workflow --skill permission-check -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install pedrohcgs/claude-code-my-workflow permission-check --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/pedrohcgs/claude-code-my-workflow.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/permission-check .claude/skills/permission-check && 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 "permission-check" agent skill from https://github.com/pedrohcgs/claude-code-my-workflow/tree/main/.claude/skills/permission-check into .claude/skills/permission-check/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "permission-check", 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/pedrohcgs/claude-code-my-workflow/tree/main/.claude/skills/permission-checkType 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 pedrohcgs/claude-code-my-workflow --skill permission-check -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install pedrohcgs/claude-code-my-workflow permission-check --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pedrohcgs/claude-code-my-workflow.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/permission-check .agents/skills/permission-check && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "permission-check" agent skill from https://github.com/pedrohcgs/claude-code-my-workflow/tree/main/.claude/skills/permission-check into .agents/skills/permission-check/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "permission-check", 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 pedrohcgs/claude-code-my-workflow --skill permission-check -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install pedrohcgs/claude-code-my-workflow permission-check --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pedrohcgs/claude-code-my-workflow.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/permission-check .cursor/skills/permission-check && 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 "permission-check" agent skill from https://github.com/pedrohcgs/claude-code-my-workflow/tree/main/.claude/skills/permission-check into .cursor/skills/permission-check/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "permission-check", 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/pedrohcgs/claude-code-my-workflow.git --path .claude/skills/permission-check--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 pedrohcgs/claude-code-my-workflow --skill permission-check -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install pedrohcgs/claude-code-my-workflow permission-check --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pedrohcgs/claude-code-my-workflow.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/permission-check .gemini/skills/permission-check && 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 "permission-check" agent skill from https://github.com/pedrohcgs/claude-code-my-workflow/tree/main/.claude/skills/permission-check into .gemini/skills/permission-check/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "permission-check", 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 pedrohcgs/claude-code-my-workflow permission-checkInstalls 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 pedrohcgs/claude-code-my-workflow --skill permission-check -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/pedrohcgs/claude-code-my-workflow.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/permission-check .github/skills/permission-check && 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 "permission-check" agent skill from https://github.com/pedrohcgs/claude-code-my-workflow/tree/main/.claude/skills/permission-check into .github/skills/permission-check/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "permission-check", 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 pedrohcgs/claude-code-my-workflow --skill permission-check -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install pedrohcgs/claude-code-my-workflow permission-check --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pedrohcgs/claude-code-my-workflow.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/permission-check .opencode/skills/permission-check && 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 "permission-check" agent skill from https://github.com/pedrohcgs/claude-code-my-workflow/tree/main/.claude/skills/permission-check into .opencode/skills/permission-check/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "permission-check", 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.
permission-checkDiagnose why Claude Code is (or isn't) prompting for permission.
Permission Check is an agent skill from pedrohcgs/claude-code-my-workflow. Diagnose why Claude Code is (or isn't) prompting for permission. By default reads only repo-local layers (CLI project, CLI project-local, VSCode workspace). Host-global layers (CLI user ~/.claude/, VSCode user settings) are read ONLY when the user explicitly confirms — those files may contain unrelated paths or secrets. Use when user says "why is it asking me to approve?", "permission check", "why am I getting prompts?", "bypass isn't working", "check my permissions". Read-only diagnostic.
Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It works with Visual Studio Code. The repository describes itself as: A ready-to-fork Claude Code template for academics using LaTeX/Beamer + R. Multi-agent review, quality gates, adversarial QA, and replication protocols. The licence is MIT.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit ae72617. 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:
ReadBashGlobFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, 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.
Permission Check loads about 2.6k tokens when it runs. Until then it costs about 128 tokens; SKILL.md has 1,056 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.
allowed-tools: Read, Bash, GlobAutomated 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 pedrohcgs/claude-code-my-workflow at commit ae72617, republished under its MIT licence (© pedrohcgs). 1,056 words, ~2,564 tokens.
.claude/skills/permission-check/SKILL.md (or your agent's skills folder).Surface the full permission-mode picture across every layer Claude Code honors, so the user can see at a glance why prompts are (or aren't) firing. Claude Code resolves permission mode from a 6-tier stack; a single misconfigured layer produces silent overrides that are hard to debug by eye.
~/Library/Application Support/Code/User/settings.json (macOS), %APPDATA%/Code/User/settings.json (Windows), ~/.config/Code/User/settings.json (Linux). Key: claudeCode.initialPermissionMode.<repo>/.vscode/settings.json. Same key. Wins over user.~/.claude/settings.json. Key: permissions.defaultMode.<repo>/.claude/settings.json. Same key. Wins over user.<repo>/.claude/settings.local.json. Same key. Wins over project.Shift+Tab (CLI) or the mode indicator (VS Code / Desktop); /permissions manages allow/deny rules, not the mode. Authoritative until session ends.Two rules that override the stack (Anthropic's permission-modes docs, re-verified 2026-09-26):
auto or bypassPermissions as a starting mode. A bypassPermissions there is ignored and the terminal session starts in Manual (default); an auto there is ignored in favour of the built-in default. Every other mode value applies from any layer.claudeCode.initialPermissionMode (which does not accept auto), and a bypass value needs the extension's Allow dangerously skip permissions toggle. With no override, Claude Code ≥ 2.1.283 starts in auto mode.So check first for "bypass set in the project settings, where it cannot take effect" — then for the mid-session override below.
Key insight: initialPermissionMode only fires at session start. If you toggled mid-session (or the session started before a settings change), the file-level settings are correct but the runtime mode differs. That, and a bypass set only in project settings, are the two usual sources of "bypass isn't working" confusion.
Host-global settings files (~/.claude/settings.json, VSCode user settings) may contain:
This skill is designed for defense-in-depth: Phase A runs automatically and reads only repo-local files. Phase B reads host-global files only after the user explicitly confirms — never silently. When reporting host-global layers, redact any key that is not directly relevant to permissions.*, claudeCode.*, or allowDangerouslySkipPermissions.
Read these immediately — they are checked into (or gitignored inside) the repo and do not cross the trust boundary:
VSCODE_WS="${CLAUDE_PROJECT_DIR}/.vscode/settings.json"
CLI_PROJECT="${CLAUDE_PROJECT_DIR}/.claude/settings.json"
CLI_LOCAL="${CLAUDE_PROJECT_DIR}/.claude/settings.local.json"For each file that exists, extract:
claudeCode.initialPermissionMode and allowDangerouslySkipPermissions (no claudeCode. prefix — flag the prefixed claudeCode.allowDangerouslySkipPermissions as a silently-ignored typo if you see it)permissions.defaultMode, permissions.allow, permissions.denyMissing files are fine — report "not present" rather than erroring.
Print the resolved defaultMode from these three layers alone, applying the two override rules above — a bypassPermissions or auto found only in layer 4 or 5 is reported as ignored, not as the resolved mode. If that already explains the prompt behavior (e.g. bypass set only in .claude/settings.json), stop here and surface the diagnosis with the fix: move it to ~/.claude/settings.json, pass --permission-mode bypassPermissions, or use auto mode.
If Phase A is inconclusive — e.g., all repo-local layers agree on bypass but the user is still being prompted — ask the user:
"To complete the diagnosis, I need to read two files outside this repo:
~/.claude/settings.json(CLI user-level)- your VSCode user settings (
~/Library/Application Support/Code/User/settings.jsonon macOS; Linux/Windows vary)These may contain unrelated paths or secrets. I will redact any key that isn't in
permissions.*,claudeCode.*, orallowDangerouslySkipPermissions. Proceed?"
Only after the user confirms, read:
# VSCode user (platform-dependent path; try all three)
case "$(uname -s)" in
Darwin) VSCODE_USER="${HOME}/Library/Application Support/Code/User/settings.json" ;;
Linux) VSCODE_USER="${HOME}/.config/Code/User/settings.json" ;;
MINGW*|MSYS*|CYGWIN*) VSCODE_USER="${APPDATA}/Code/User/settings.json" ;;
*) VSCODE_USER="" ;;
esac
CLI_USER="${HOME}/.claude/settings.json"When reporting their contents, extract only the relevant keys:
permissions.defaultMode, permissions.allow, permissions.denyclaudeCode.Never print the full file. Redact everything else to (other keys redacted).
The resolved defaultMode is the value from the highest-precedence layer that sets it. Report:
defaultMode contest.allow list (union across CLI tiers).deny list (union; any deny blocks the action even if allowed elsewhere).bypass but CLI says otherwise (or vice versa) — this is a legitimate conflict to flag.The live in-session mode is exposed via the status line (see .claude/scripts/statusline.sh). Tell the user:
"If your status line shows a mode badge (
[AUTO],[BYPASS],[PLAN],[AUTO-EDIT],[PROMPT]), that is the live in-session mode. If it disagrees with the resolveddefaultModeabove, either a mid-session toggle (Shift+Tab) changed it, or the resolution above already explains it — e.g.[PROMPT]from a bypass set only in project settings. No badge means Claude Code did not report the mode; the mode indicator in the Claude Code panel shows it."
If the status line isn't configured, emit a warning and point at .claude/scripts/statusline.sh.
Check for and explicitly call out:
auto there falls back to the built-in default (auto on ≥ 2.1.283). Fix: remove it from the project files and set bypass in user settings or with the CLI flag — or rely on the built-in auto default.default → the project-local default wins (it is an honoured value), which explains the prompts.defaultMode: "default" with empty allow → every tool prompts, as designed.deny wins: any match in a deny list blocks the tool regardless of allow, in every mode including bypass — which is exactly why restricted-data projects use deny rules.=== PERMISSION STATE ===
Layer 1 — VSCode user: bypassPermissions (allowDangerouslySkipPermissions: true)
Layer 2 — VSCode workspace: (not set)
Layer 3 — CLI user: bypassPermissions (allow: ["*"])
Layer 4 — CLI project: (not set) (allow: ["Edit(**)", "Bash(*)", ...])
Layer 5 — CLI project-local: bypassPermissions NOT HONOURED — a project-layer bypass starts the session in Manual
Resolved defaultMode: default (Manual) — Layer 5's bypass overrides Layer 3 and is not honoured
Merged allow: Edit(**), Write(**), Bash(*), ...
Merged deny: (none)
=== RUNTIME ===
Check the status line (or the mode indicator). Expected here: [PROMPT] — the ignored Layer 5 bypass explains it.
Remove the bypass from Layer 5 and keep it in Layer 3 (or rely on auto mode) to get [BYPASS] / [AUTO].
Any other mismatch with the resolved mode is an in-session override — Shift+Tab cycles modes.
=== DIAGNOSIS ===
No layer drift detected. If you are still seeing prompts:
1. Session is stale (started before settings were applied) — reload window + new session.
2. VSCode extension bug — check extension version and file an issue.
3. Tool was previously denied in this session — that denial is remembered. New session clears it.If any layer disagrees, replace the "No layer drift detected" line with a specific flagged issue.
$CLAUDE_PROJECT_DIR is unset, fall back to git rev-parse --show-toplevel.© pedrohcgs, 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 .claude/skills/permission-check of pedrohcgs/claude-code-my-workflow.
Open the folder on GitHubat commit ae72617
Permission Check 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 |
|---|---|---|---|---|---|---|
| Permission Check this skillpedrohcgs/claude-code-my-workflow | 1.7k | — | ~2.6k | Automated safety check: Notes | 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 | |
| Microsoft Skill CreatorMicrosoftDocs/mcp | 1.9k | 3 repos | ~2.1k | Automated safety check: Pass | CC-BY-4.0 | |
| Evals Contextzgsm-ai/costrict | 4.5k | 1 repos | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| Ketch1broseidon/ketch | 702 | 1 repos | ~3.9k | 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.
MicrosoftDocs/mcp
Create agent skills for Microsoft technologies using official documentation.
zgsm-ai/costrict
Provides context about the CoStrict evals system structure in this monorepo.
1broseidon/ketch
Research skill for ketch — a fast stateless CLI for web search, OSS code search, curated library docs, page scraping, and site crawling; an optional MCP server exists for operators who want it, but…
dotnet/efcore
Create custom GitHub Copilot agents. An agent skill from dotnet/efcore.
pedrohcgs/claude-code-my-workflow
Adversarial 5-7 question challenge to a deck's pedagogical choices — ordering, prerequisites, cognitive load, motivation.
pedrohcgs/claude-code-my-workflow
Qualify a check before it is allowed to clear anything — prove it can detect the failure it is meant to catch.
pedrohcgs/claude-code-my-workflow
Compile a Beamer LaTeX slide deck with XeLaTeX (3 passes + bibtex).
pedrohcgs/claude-code-my-workflow
Show current context status and session health. An agent skill from pedrohcgs/claude-code-my-workflow.
pedrohcgs/claude-code-my-workflow
Snapshot the computational environment for a replication package — detects the analysis stack (R / Stata / Python) and emits the right lockfiles (renv.lock + sessionInfo.txt, requirements.txt /…
pedrohcgs/claude-code-my-workflow
Save a structured state snapshot before stopping or handing off.
Works with
Diagnose why Claude Code is (or isn't) prompting for permission. Permission Check is an agent skill from pedrohcgs/claude-code-my-workflow. Diagnose why Claude Code is (or isn't) prompting for permission.
Permission Check fits situations like: explicitly confirms — those files may contain unrelated paths; user says why is it asking me to approve?; permission check; why am I getting prompts?.
Run `npx skills add pedrohcgs/claude-code-my-workflow --skill permission-check -a claude-code`. Or copy the skill folder (.claude/skills/permission-check in pedrohcgs/claude-code-my-workflow) into .claude/skills/permission-check in your project. Claude Code loads it when a task matches its description.
Run `npx skills add pedrohcgs/claude-code-my-workflow --skill permission-check -a codex`. Or copy the skill folder (.claude/skills/permission-check in pedrohcgs/claude-code-my-workflow) into .agents/skills/permission-check 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 pedrohcgs/claude-code-my-workflow --skill permission-check -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/permission-check, .gemini/skills/permission-check, .github/skills/permission-check and .opencode/skills/permission-check in your project.
Going by SKILL.md and its folder, Permission Check needs the command-line tools its instructions call (git). Its frontmatter pre-approves these tools: Read, Bash, Glob.
SKILL.md contains no URLs. Its commands use 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 notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Permission Check 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.6k tokens (SKILL.md is roughly 10k 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 Permission Check: Agent Browser CLI (vercel-labs/agent-browser, 44k stars), Electron App Automation (vercel-labs/agent-browser, 44k stars), Microsoft Skill Creator (MicrosoftDocs/mcp, 1.9k stars) and Evals Context (zgsm-ai/costrict, 4.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
pedrohcgs (a GitHub user) maintains it in pedrohcgs/claude-code-my-workflow, which has 1,655 GitHub stars. The repository holds 59 skills in this directory. The repository was last updated on September 27, 2026.
Source: pedrohcgs/claude-code-my-workflow on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.