一键导入
browser-automation
// Web automation with 4-layer escalation (Fetch, Genesis Browser, On-Demand MCP, Computer Use), anti-detection, and persistent profiles
// Web automation with 4-layer escalation (Fetch, Genesis Browser, On-Demand MCP, Computer Use), anti-detection, and persistent profiles
This skill should be used when developing, debugging, refactoring, or building Genesis itself — tasks like "fix this in Genesis", "add a new MCP tool", "wire up the runtime", "Genesis won't start", "create a worktree", "debug the bridge", or "add a capability". Applies to any task modifying files under src/, .claude/, or tests/. Do NOT load for Genesis-as-tool work ("summarize this", "write a LinkedIn post", "research X") or general questions unrelated to Genesis internals.
Evaluate technologies and competitive developments against Genesis architecture
Evaluate content for personal relevance to the user using the user model
End-to-end content creation and publishing. Takes a topic (or generates one), drafts in the user's voice, gets approval via Telegram, and publishes to Medium via browser automation. Invoke with "publish a post about X", "write and publish to Medium", "content-publish", or when an ego-dispatched session needs to create and distribute content.
Apply the user's voice when writing or editing content. Activate when the user says "use the voice-master skill", "write this in my voice", "make this sound like me", or any equivalent instruction. Use for any content type: professional proposals, long-form writing, social posts, emails, or short-form copy. Do NOT activate for code, technical docs, or any output the user hasn't asked to be written in their voice.
First-run onboarding — guides new users through Genesis setup on their first CC session. Configures user profile, essential API keys, Telegram, GitHub backup, and service verification. Triggered automatically when ~/.genesis/setup-complete is absent. Re-runnable by asking Genesis to "run setup" or "reconfigure [section]".
| name | browser-automation |
| description | Web automation with 4-layer escalation (Fetch, Genesis Browser, On-Demand MCP, Computer Use), anti-detection, and persistent profiles |
| consumer | cc_background_task |
| phase | 7 |
| skill_type | workflow |
| keywords | ["browser","navigate","click","fill","form","submit","login","scrape","automate","web","page","site","url"] |
Reference playbook for web automation tasks. Provides layer selection, error recovery strategies, CSS selector patterns, form filling methodology, and safety gates. Loaded when Genesis performs browser-based tasks.
Genesis has four layers of browser interaction. Choose the lightest layer that can accomplish the task. Token cost increases with each layer.
WebFetch, Firecrawl, genesis.web (SearXNG + Brave)browser_navigate, browser_click, browser_fill,
browser_upload, browser_press_key, browser_screenshot,
browser_snapshot, browser_run_js, browser_sessions,
browser_clear_domainbrowser_fill scales with string length.~/.genesis/camoufox-profile/.
Includes humanized cursor movement, per-keystroke typing with IKI jitter,
and stealth click with hover/jitter.browser_navigate(url, stealth=False) uses Chromium
for sites incompatible with Camoufox (rare). Profile at ~/.genesis/browser-profile/.browser_collaborate(enable=True) switches to fast
timing (0.5-2s delays vs 1-15s stealth). The browser is ALWAYS visible on
VNC — no mode switch or restart needed. Use when a human is actively
watching to speed up interaction. Disabling restores stealth timing.browser_navigate(url, remote=True) — built into genesis-health MCPplaywright.chromium.connect_over_cdp()--remote-debugging-port=9222 --user-data-dir=%USERPROFILE%\chrome-genesis (Windows batch file)GENESIS_CDP_URL=http://<tailscale-ip>:9222 in secrets.env, or
pass cdp_url= parameter directly/activate-browser → adds to .mcp.json → restart session| Need | Layer | Why |
|---|---|---|
| Read a public page | Fetch | No login needed |
| Search the web | Fetch | API-based, fast |
| Fill a form on agent's account | Genesis Browser | Persistent login |
| Site blocks automation | Genesis Browser (stealth) | Anti-detection |
| CAPTCHA / payment / 2FA step | Genesis Browser (collaborate) | User takes VNC control |
| ATS with reCAPTCHA v3 / Ashby | Remote CDP | Real Chrome fingerprint |
| Submit on user's logged-in site | Remote CDP | User's sessions |
| Network inspection / Lighthouse | On-Demand MCP | Chrome DevTools |
| Take action in user's banking app | Remote CDP | MUST confirm |
Try selectors in this priority order:
| Priority | Selector Type | Example | When |
|---|---|---|---|
| 1 | ID | #submit-btn | Element has unique ID |
| 2 | data-testid | [data-testid="login"] | Modern apps with test attributes |
| 3 | name attribute | input[name="email"] | Form fields |
| 4 | type attribute | input[type="submit"] | Standard form elements |
| 5 | Specific class | .btn-primary | Semantic class names |
| 6 | Visible text | text="Sign In" | Buttons and links |
| 7 | Composite | form.login input[type="email"] | When simple selectors aren't unique |
Common patterns:
# Forms
input[name="username"]
input[type="password"]
button[type="submit"]
select[name="country"]
textarea[name="message"]
# Navigation
nav a[href="/dashboard"]
header .menu-item
a:has-text("About")
# E-commerce
.product-card .price
button:has-text("Add to Cart")
.cart-total
| Error | Recovery Steps |
|---|---|
| Element not found | 1. Try alternative selector 2. Try visible text 3. Scroll page 4. Wait for dynamic load |
| Page timeout | 1. Retry navigation 2. Check if URL redirected 3. Verify network connectivity |
| Login required | Inform user. Ask for credentials. Never guess passwords. |
| CAPTCHA | Switch to collaborate mode. User solves via VNC. Resume automation after. |
| Pop-up / modal | Click dismiss/close button. Look for [aria-label="Close"] or .modal-close |
| Cookie consent | Click "Accept" or dismiss. Look for #cookie-accept or text="Accept All" |
| Rate limited | Wait 30 seconds. Retry once. If still limited, back off exponentially. |
| Wrong page | Use page snapshot to verify. Navigate back. Check URL. |
| Stale element | Re-query the selector. Page may have re-rendered. |
<select>, click+text for custom dropdownsMANDATORY before any financial transaction:
MANDATORY for credential entry:
For complex workflows (e.g., fill form → verify → submit → navigate → extract):
task_id: <BROWSER-YYYY-MM-DD-NNN>
pages_visited: <count>
actions_taken:
- action: <navigate | click | type | select | screenshot>
target: <selector or URL>
result: <success | failed | recovered>
errors_recovered: <count>
screenshots: [<file paths>]
result: <task outcome description>
browser_navigate, browser_click, browser_fill,
browser_upload, browser_press_key, browser_screenshot, browser_snapshot,
browser_run_js, browser_sessions, browser_clear_domain,
browser_collaborate (via genesis-health MCP)src/genesis/mcp/health/browser.py — MCP tool implementationssrc/genesis/browser/profile.py — BrowserProfileManager (cookie DB, sessions)scripts/browser.py — Standalone CLI (opens/closes per command, for one-off use)src/genesis/skills/osint/SKILL.md — For web-based investigation/activate-browser command — On-demand Chrome DevTools MCP activation