Install
$ agentstack add skill-timurgaleev-vibestack-scrape ✓ 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.
About
When to invoke
Use to extract data from a page — "scrape", "get data from", "pull", "extract from", "what's on this page". Read-only: for form fills, clicks, or submissions use the browse daemon's interaction verbs, not this skill.
/scrape — Pull data from a page
{{include lib/snippets/browse-setup.md}}
If BROWSE_NOT_AVAILABLE: fall back to curl + an HTML parse for static pages (note that JS-rendered content and screenshots are unavailable), or stop and tell the user the browse shim is needed.
1. Pin the target
Confirm the URL and exactly which fields the user wants (single record, or a list with per-item fields). If it's ambiguous, ask once with AskUserQuestion.
2. Navigate and inspect
"$B" goto
"$B" text # full visible text — orient yourself
For structured values, pull them by selector with js (the stateless shim evaluates against a fresh load) — e.g. a list of prices:
"$B" js "Array.from(document.querySelectorAll('.price')).map(e => e.textContent.trim())"
If the page is interactive (needs a click to reveal data), start the daemon and use a chain or refs: "$B" daemon & then "$B" chain "goto " "click " "text".
3. Extract to JSON
Assemble a JSON object (single record) or array (list) of the requested fields, mapping each item's selectors. Verify the count matches what's visible. Quote selectors exactly — never guess a value that isn't on the page.
4. Return
Print the JSON. Name any requested field that couldn't be found rather than fabricating it. If JS-heavy content is missing, retry once via the daemon with a short wait ("$B" chain "goto " "wait 1500" "text").
Discipline
- Read-only. No form submits or destructive clicks here.
- One pass, gently. Don't hammer the site. If the target is behind a login or
looks protected (ToS / robots), ask the user before proceeding; for an authenticated page, /connect-chrome reuses their real session.
{{include lib/snippets/capture-learnings.md}}
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: timurgaleev
- Source: timurgaleev/vibestack
- 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.