Individual skill
vibesurfer
Agent-native headless browser. 26 primitives over a Unix-socket wire protocol. Real WKWebView (macOS), WebKitGTK 6 (Linux), or WebView2 (Windows) — all three engines verified per-commit by a real-browser integration suite. Optimistic concurrency via state tokens; tree-delta wire format; durable session/page/auth state in SQLite.
crates/vs-cli/SKILL.md
Source commit 4851123193006a26cda3836fcad5a9bf96fb9c9c
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- No
- Repository scan complete
- No
- Skill scan complete
- No
- Observed behavior
- Not checked yet
- Last checked
- Nov 5, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 17
- Repository last updated
- Sep 24, 2026
- License
- Apache-2.0
Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.
- gemini-cli-extension Repository topic
- agentic-ai Repository topic
- ai-agents Repository topic
- browser-automation Repository topic
- claude Repository topic
- cli Repository topic
- headless-browser Repository topic
- llm Repository topic
- mcp Repository topic
- mcp-server Repository topic
- engineering Derived category
- data Derived category
- data-databases Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
Cargo.tomlasset · 2,193 bytesREADME.mddoc · 20,532 bytesSKILL.mdcore · 24,742 bytesSKILL.mdcore · 24,742 bytesSKILL.mdcore · 24,742 bytesSKILL.mdcore · 24,742 bytesbuild.rsasset · 1,733 bytessrc/active_session.rsasset · 2,363 bytessrc/caller.rsasset · 7,427 bytessrc/client.rsasset · 5,215 bytessrc/commands/dispatch.rsasset · 25,437 bytessrc/commands/mod.rsasset · 41,122 bytessrc/commands/render.rsasset · 1,495 bytessrc/flow.rsasset · 5,891 bytessrc/lib.rsasset · 752 bytessrc/main.rsasset · 3,479 bytessrc/mcp/content.rsasset · 4,537 bytessrc/mcp/live-panel.htmlasset · 2,870 bytessrc/mcp/mod.rsasset · 14,117 bytessrc/mcp/tools.rsruns · 34,308 bytessrc/paths.rsasset · 2,206 bytessrc/serve.rsasset · 36,732 bytessrc/skill_install.rsasset · 22,533 bytessrc/spawn.rsasset · 2,404 bytestests/alias_parity.rsasset · 7,419 bytestests/auto_spawn.rsasset · 4,674 bytestests/e2e_cli.rsasset · 11,974 bytestests/m6/act.rsasset · 21,115 bytestests/m6/auth.rsasset · 16,998 bytestests/m6/challenge.rsasset · 3,361 bytestests/m6/download.rsasset · 5,791 bytestests/m6/extract.rsasset · 3,936 bytestests/m6/fingerprint.rsasset · 2,009 bytestests/m6/helpers.rsasset · 2,755 bytestests/m6/inspect.rsasset · 12,744 bytestests/m6/lifecycle.rsasset · 16,902 bytestests/m6/main.rsasset · 1,144 bytestests/m6/memory.rsasset · 6,477 bytestests/m6/visual.rsasset · 6,258 bytestests/m6/wait.rsasset · 6,111 bytestests/m6/webentry.rsasset · 19,485 bytestests/m6_smoke.rsasset · 1,231 bytestests/support/fixture_server.rsasset · 10,562 bytestests/support/mod.rsasset · 11,268 bytes
Read excerpt
# vibesurfer (binary: `vs`)
`vs` is a stateless CLI that talks to a daemon (`vs serve`, auto-spawned on first call) over a Unix socket. Not installed? `npx vibesurfer <args>` runs the same binary (downloaded and cached on first use); `vs skill install` wires it into every detected agent. The daemon owns one long-lived browser engine on the OS main thread and a SQLite store at `~/.vibesurfer/state.db`. Every primitive writes one audit row before returning — there's no opt-out, no untracked operation.
## Short forms are the default in agent contexts
Every primitive has a short alias. Long forms exist for human-readable documentation; agent invocations should use the shorter form to save tokens. `vs o https://...` is the canonical shape for `vs open https://...`, not the other way around. The 19-primitive tables below lead with the short form and show the long form in parens; both work identically.
Frequent flags also have short forms: `-S` (`--session`), `-j` (`--json`), `-F` (`--full`), `-s` (`--since`), `-n` (`--limit`), `-P` (`--page`). The `--token` flag stays verbose because it's never typed by hand — you paste it from the previous read.
## Use this tool when
- You need to drive a real browser to read or interact with a web app (login, scrape behind auth, click through SPA state).
- You need stable refs across snapshots so you can plan a multi-step interaction without scraping coordinates.