browser-automation
Use when controlling web pages with the QuietCore browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.
Skill by liuda1999
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/liuda1999-browser-automation
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/browser-automation
What's inside
- Skill name
browser-automation- Description
- Use when controlling web pages with the QuietCore browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.
- License
- MIT
- Instructions
- 85 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Browser Automation
Use this skill when you need the `browser` tool for anything beyond a single page check.
## Operating Loop
1. Check browser state before acting:
- `quiet-core-bot browser doctor` or `action="status"` when the browser/plugin setup itself may be broken.
- `action="status"` for availability.
- `action="profiles"` if login state or profile choice matters.
- `action="tabs"` before opening a new tab if retries/timeouts may have left windows behind.
2. Prefer stable tab handles:
- Open important tabs with `label`, for example `label="meet"`.
- After `action="tabs"` or `action="open"`, store `suggestedTargetId` and pass it as `targetId` in later calls.
- `suggestedTargetId` is the label when one exists, otherwise the stable `tabId` handle like `t1`.
- Avoid relying on raw DevTools `targetId` except for immediate diagnostics; it can change under Chromium target replacement.
3. Read before you click:
- Use `action="snapshot"` on the intended `targetId`.
- Use the same `targetId` for follow-up actions so refs stay on the same tab.
- For durable Playwright refs, request `refs="aria"` when supported. If you receive `axN` refs from `snapshotFormat="aria"`, use them only after that same snapshot call; stale or unbound `axN` refs fail fast and need a fresh snapshot.
- Use `urls=true` when link text is ambiguous or a direct navigation target would avoid brittle clicks.
- Use `labels=true` on snapshot or screenshot when visual position matters. On Playwright-backed profiles, the response includes an `annotations` array (`{ref, number, role, name?, box}`) with each ref's bounding box in the captured image's coordinate space, so you can reason about position without re-snapshotting; screenshot labels can also combine with `fullPage=true` (CLI: `--full-page`) to label the whole document, or `ref` / `element` to clip to one element. `profile="user"` and other existing-session (chrome-mcp) profiles render an overlay into page screenshots but do not attach `annotations` or use the Playwright full-page/ref/element projection helper, so read positions from the labeled image itself on those profiles. The raw-CDP fallback (no Playwright) does not support labeled screenshots at all and returns a 501, so only request `labels` when Playwright is available.
4. Act narrowly:
- Prefer `action="act"` with a ref from the latest snapshot.
- After navigation, modal changes, or form submission, snapshot again before the next action.
- Avoid blind waits. Wait for visible UI state when possible.
5. Report real blockers:
- If the page needs login, permission, captcha, 2FA, camera/microphone approval, or another manual step, stop and tell the user exactly what is needed.
- Do not claim the browser is not logged in just because the current page shows a permission or onboarding dialog. Inspect the visible UI first.
## Tab Hygiene
Before creating a tab for a named task, list tabs and reuse an existing matching label or URL when it is still usable.
Example:
```json
{ "action": "tabs" }
```
If no suitable tab exists:
```json
{ "action": "open", "url": "https://example.com", "label": "task" }
```
Then target it by label:
```json
{ "action": "snapshot", "targetId": "task", "refs": "aria" }
```
If a retry creates duplicates, close the extras by `tabId`:
```json
{ "action": "close", "targetId": "t3" }
```
Do not pass bare numbers like `"2"` as `targetId`. Numeric tab positions are only for the CLI `quiet-core-bot browser tab select 2` helper; browser tool calls need a `suggestedTargetId`, label, `tabId`, or raw target id.
## Stale Ref Recovery
If an action fails with a missing or stale ref:
1. Snapshot the same `targetId` again.
2. Find the current visible control.
3. Retry once with the new ref.
4. If the UI moved to a blocker state, report the blocker instead of looping.
## Existing User Browser
Use `profile="user"` only when existing cookies/login matter. This attaches to the user's running Chromium-based browser.
For `profile="user"` and other existing-session profiles, omit `timeoutMs` on `act:type`, `evaluate`, `hover`, `scrollIntoView`, `drag`, `select`, and `fill`; that driver rejects per-call timeout overrides for those actions.
## Google Meet Notes
When creating or joining a Meet:
- Treat camera/microphone permission screens as progress, not login failure.
- If asked whether people can hear you, click the microphone option when voice is required.
- If Google asks for sign-in, 2FA, account chooser confirmation, or permission that needs user approval, report the exact manual action.
- Use one labeled tab per meeting flow, for example `label="meet"`, and reuse it during retries.From liuda1999/Quiet-Core-bot, MIT.
More from liuda1999/Quiet-Core-bot
- 0.589score
claw-score
liuda1999
Audit or refresh Quiet Core bot maturity scorecard docs from root taxonomy, maturity scores, and QA evidence artifacts without using maintainer discrawl data…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
control-ui-e2e
liuda1999
Use when testing, fixing, or extending the Quiet Core bot Control UI GUI with Vitest + Playwright end-to-end checks, mocked Gateway WebSocket flows, mocked…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
acp-router
liuda1999
Route plain-language requests for Claude Code, Cursor, Copilot, QuietCore ACP, OpenCode, Gemini CLI, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
clawdtributor
liuda1999
Use for Quiet Core bot clawtributors PR/issue triage: Discrawl discovery, live-open rechecks, deep review, topic grouping, and compact…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
discord-user-post
liuda1999
Post an approved message as the logged-in Discord user through the Discord desktop app.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
tag-duplicate-prs-issues
liuda1999
Use gitcrawl to search duplicate Quiet Core bot PRs/issues, group related work in prtags, and sync duplicate state to GitHub.
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
canvas
liuda1999
Present HTML on connected QuietCore node canvases, navigate/eval/snapshot, and debug canvas host URLs.
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
security-triage
liuda1999
Triage Quiet Core bot security advisories, drafts, and GHSA reports with shipped-tag and trust-model proof.
SkillAFreshness: A★ 1Claude Code +9 - 0.577score
github
liuda1999
Use gh for GitHub issues, PR status, CI/logs, comments, reviews, releases, and API queries.
SkillAFreshness: A★ 1Claude Code +9 - 0.576score
wiki-maintainer
liuda1999
Maintain the QuietCore memory wiki vault with deterministic pages, managed blocks, and source-backed updates.
SkillAFreshness: A★ 1Claude Code +9 - 0.575score
crabbox
liuda1999
Use the Crabbox wrapper for Quiet Core bot remote validation across Linux, macOS, Windows, and WSL2, including delegated Blacksmith Testbox proof.
SkillAFreshness: A★ 1Claude Code +9 - 0.559score
prose
liuda1999
OpenProse VM skill pack.
SkillAFreshness: A★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 1, 2026 (27 days ago)
- Last release
- Oct 7, 2026 (21 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/liuda1999/Quiet-Core-bot
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from liuda1999
- 0.589score
claw-score
liuda1999
Audit or refresh Quiet Core bot maturity scorecard docs from root taxonomy, maturity scores, and QA evidence artifacts without using maintainer discrawl data…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
control-ui-e2e
liuda1999
Use when testing, fixing, or extending the Quiet Core bot Control UI GUI with Vitest + Playwright end-to-end checks, mocked Gateway WebSocket flows, mocked…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
acp-router
liuda1999
Route plain-language requests for Claude Code, Cursor, Copilot, QuietCore ACP, OpenCode, Gemini CLI, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
clawdtributor
liuda1999
Use for Quiet Core bot clawtributors PR/issue triage: Discrawl discovery, live-open rechecks, deep review, topic grouping, and compact…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
discord-user-post
liuda1999
Post an approved message as the logged-in Discord user through the Discord desktop app.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
tag-duplicate-prs-issues
liuda1999
Use gitcrawl to search duplicate Quiet Core bot PRs/issues, group related work in prtags, and sync duplicate state to GitHub.
SkillAFreshness: A★ 1Claude Code +9
Cite this page
browser-automation skill. Agent Mart. https://agentmart.dev/skills/liuda1999-browser-automation (last updated 2026-10-24)