Install
$ agentstack add skill-mrtrenchtrucker-contak-browser-skills-kasm-browser ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
KASM Browser via CDP
When invoked, drive a persistent KASM Chrome browser using Chrome DevTools Protocol. Use this when a flow needs login state, cookies that persist, captcha/2FA, or React-style synthetic events.
Inputs
action-- one of:navigate,click,type,screenshot,close_tab,evalurl-- target URL (fornavigate)selector-- CSS selector (forclick,type)text-- text to type (fortype)tab_id-- existing tab to target (optional; otherwise pick or create)output_path-- forscreenshotaction, where to save the PNG
Output
screenshotaction: file path to PNG.- Other actions: status + DOM snapshot or evaluated value.
Steps
- Confirm CDP reachable:
docker exec curl -s http://localhost:9222/json/version. - List tabs:
docker exec curl -s http://localhost:9222/json. - Pick or create the target tab; capture its
webSocketDebuggerUrl. - Open a WebSocket to that URL from inside the container.
- Send the CDP commands for the action, applying the Human-Speed Rule between every meaningful step.
- Capture results (DOM, screenshot, console output).
- Close the WebSocket; tidy up any tabs your flow created.
The Human-Speed Rule (mandatory)
Slow IS fast.
- Minimum 1.5-3 seconds between meaningful actions.
- Typing: one key at a time, 80-150 ms between keystrokes with jitter. Do NOT blast a full string via
input.value = "..."on sites that profile typing cadence. - Wait for
Page.loadEventFiredbefore queuing a second navigation. - Self-imposed rate limit: ~20 CDP calls per 10 seconds.
Bot-detection systems flag burst patterns even when intent is benign. Human-speed pacing is free immunity. Apply regardless of how impatient the user is.
Example: navigate + read title
const sock = new ws(tab.webSocketDebuggerUrl);
// ... open WS, set up send() helper ...
await send("Page.navigate", { url: "https://example.com" });
await new Promise(r => setTimeout(r, 3000)); // human-speed wait
const title = (await send("Runtime.evaluate", { expression: "document.title" })).result.result.value;
Notes
- CDP is reachable only from inside the container -- always go via
docker exec. - For full setup, cross-host usage, common recipes, and troubleshooting, see
sops/SOP_Interactive_Browser_via_KASM_CDP.md. - Always check the target site's Terms of Service before automating against it.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: MrTrenchTrucker
- Source: MrTrenchTrucker/contak-browser-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.