Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add vibesurf-ai/claude-surf --skill surfgit clone --depth 1 https://github.com/vibesurf-ai/claude-surfWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/vibesurf-ai/claude-surf/surf)<a href="https://agentmods.dev/skills/vibesurf-ai/claude-surf/surf"><img src="https://agentmods.dev/badge/skills/vibesurf-ai/claude-surf/surf/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/vibesurf-ai/claude-surf/surf"><img src="https://agentmods.dev/badge/skills/vibesurf-ai/claude-surf/surf.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00043 | $0.03806 |
| Opus 5 | $0.00022 | $0.01903 |
| Sonnet 5 | $0.00009 | $0.00761 |
| Haiku 4.5 | $0.00004 | $0.00381 |
Grade A, and why
surf scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
> **Check manually:** `curl $VIBESURF_ENDPOINT/health` (default: http://127.0.0.1:9335) How it starts
The opening of the file, as written. The whole thing — 311 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Surf - VibeSurf Browser Automation
Overview
Control real browsers through VibeSurf. This skill delegates to specialized sub-skills.
🚨 VIBESURF STATUS (Auto-detected at session start)
Check the
<SURF_SKILLS>status at the TOP of this context:
- ✅ Status: running → Proceed with surf skills
- ❌ Status: not_running → Ask user to run
vibesurf(NEVER run it yourself)Check manually:
curl $VIBESURF_ENDPOINT/health(default: http://127.0.0.1:9335)
How to Call VibeSurf API
VibeSurf exposes three core HTTP endpoints. All requests go to the configured endpoint (check the status line above for the actual endpoint):
1. List Available Actions
GET $VIBESURF_ENDPOINT/api/tool/search?keyword={optional_keyword}
Returns all available VibeSurf actions.
2. Get Action Parameters
GET $VIBESURF_ENDPOINT/api/tool/{action_name}/params
Returns JSON schema for the action's parameters.
3. Execute Action
POST $VIBESURF_ENDPOINT/api/tool/execute
Content-Type: application/json
{
"action_name": "action_name_here",
"parameters": {
// action-specific parameters
}
}
Workflow:
- Search for action → Get action name
- Get params schema → See required/optional parameters
- Execute → Call with parameters
⚠️ CRITICAL: Parameter Error Handling
ALWAYS call
GET /api/tool/{action_name}/paramsbefore executing ANY action if you are unsure about parameters.When you encounter a parameter error:
- STOP - Do not guess or make up parameters
- CALL
GET /api/tool/{action_name}/paramsto get the exact schema- READ the response to identify required vs optional parameters
- RETRY with correct parameters
Never blindly retry with incorrect parameters. Always fetch the schema first!
Which Skill to Use
| Task Type | Use Skill | Action Name |
|---|---|---|
| AI web search | search |
skill_search |
| Fetch URL content as markdown | fetch |
skill_fetch |
| Extract lists/tables | js_code |
skill_code |
| Extract page content | crawl |
skill_crawl |
| Summarize page | summary |
skill_summary |
| Stock/financial data | finance |
skill_finance |
| Trending news | trend |
skill_trend |
| Screenshot | screenshot |
skill_screenshot |
| Precise browser control | browser |
browser.* actions |
| Task-oriented automation (sub-agent) | browser-use |
execute_browser_use_agent |
| Social Media Platform APIs | website-api |
get_website_api_params, call_website_api |
| Pre-built workflows | workflows |
search_workflows, execute_workflow |
| Gmail/GitHub/Slack | integrations |
get_all_toolkit_types, execute_extra_tool |
| LLM profile settings | config-llm |
config/llm-profiles/* |
| MCP server config | config-mcp |
config/mcp-profiles/* |
| VibeSurf key/workflows | config-vibesurf |
vibesurf/verify-key, vibesurf/import-workflow |
| Composio key/toolkits | config-composio |
composio/verify-key, composio/toolkits |
| Schedule workflows | config-schedule |
schedule/* |
| File upload/download | file |
/api/files/* |
| Voice/ASR configuration | config-voice |
/api/voices/* |
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago First seen · 311 lines · 43 tokens per session scan A a822b42b99e3
surf is a skill published in the GitHub repository vibesurf-ai/claude-surf (24 stars, last pushed 7mo ago), licensed MIT. It adds 43 tokens to every session and 3,806 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
moai-platform-chrome-extension
Chrome Extension Manifest V3 development specialist covering service workers, content scripts, message passing, chrome. APIs, side panel, declarativeNetRequest, and Chrome Web Store publishing. Use when building browser extensions.
memstack-development-webapp-testing
Use when the user says 'write browser tests', 'test this page', 'playwright test', 'e2e test', 'end to end test', 'browser test', 'test the UI', or needs Playwright-based browser testing for a web application. Do NOT use for unit tests, API tests, or non-browser testing.
browser-tools
Security wrapper over the upstream agent-browser skill, adding URL blocklisting, rate limiting, robots.txt enforcement, and scraping guardrails. Use when automating browser workflows that need safety limits.
browser-automation-agent
Automate web browsers for AI agents using agent-browser CLI with deterministic element selection.
using-web-scraping
Search and scrape public web content with headless Chrome and DuckDuckGo using safe practices.
webapp-testing
Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.