/wigolo-agent
Autonomous data gathering across sources — plans search queries and URLs from a natural-language prompt, executes in parallel within a time budget, optionally extracts structured fields via JSON Schema, and synthesizes results with full step transparency. Use when the user needs
$ npx -y skills add KnockOutEZ/wigolo --skill wigolo-agent --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/wigolo-agent
Context preview
The summary Claude sees to decide when to auto-load this skill.
Autonomous data gathering across sources — plans search queries and URLs from a natural-language prompt, executes in parallel within a time budget, optionally extracts structured fields via JSON Schema, and synthesizes results with full step transparency. Use when the user needs
SKILL.md
wigolo-agent.SKILL.mdname: wigolo-agent
description: |
Autonomous data gathering across sources — plans search queries and URLs from a natural-language prompt, executes in parallel within a time budget, optionally extracts structured fields via JSON Schema, and synthesizes results with full step transparency. Use when the user needs data collected from the web with a specific shape, says "gather data", "find pricing for", "collect information about", "extract from multiple sites", or provides a JSON schema for web data.
license: AGPL-3.0-only
metadata:
author: KnockOutEZ
version: 0.1.43-beta.2
homepage: https://github.com/KnockOutEZ/wigolo
repository: https://github.com/KnockOutEZ/wigolo
wigolo agent
Natural-language data gathering with optional JSON Schema output. Local-first: every fetched page lands in the cache for later reuse.
Quick Reference
// Natural language data gathering
{ "prompt": "Find pricing tiers for the top 5 headless CMS platforms" }
// With structured output schema
{
"prompt": "Find pricing for Contentful, Sanity, and Strapi",
"schema": { "type": "object", "properties": { "name": { "type": "string" }, "free_tier": { "type": "string" }, "pro_price": { "type": "string" }, "enterprise": { "type": "string" } } }
}
// With starting URLs
{
"prompt": "Compare features across these CMS platforms",
"urls": ["https://contentful.com/pricing", "https://sanity.io/pricing"],
"max_pages": 6
}Parameters
| Parameter | Type | Default | When to use | |-----------|------|---------|-------------| | `prompt` | string | required | Natural-language task description | | `urls` | string[] | none | Seed URLs to include | | `schema` | object | none | JSON Schema for structured extraction per page | | `max_pages` | number | 10 | Hard cap on pages fetched (max 100) | | `max_time_ms` | number | 60000 | Time budget in ms (max 600000) | | `stream` | boolean | false | Emit progress notifications per step | | `max_tokens_out` | number | none | Token-budget cap (cl100k-base) | | `include_full_markdown` | boolean | false | Pages return evidence excerpts by default | | `citation_format` | string | "numbered" | "numbered" / "json" / "anthropic_tags" |
How It Works
1. **Plans** — interprets prompt, generates search queries and URLs. 2. **Executes** — searches and fetches in parallel within budget. 3. **Extracts** — if schema provided, extracts fields from each page and merges. 4. **Synthesizes** — produces natural-language result or structured data. 5. **Reports** — `steps` array shows every action with timings.
Synthesis follows a fallback ladder: host sampling → optional local language model → deterministic extraction.
Output Transparency
Every response includes a `steps` array:
[
{ "action": "plan", "detail": "Generated 3 search queries", "time_ms": 200 },
{ "action": "search", "detail": "Found 8 results", "time_ms": 5000 },
{ "action": "fetch", "detail": "Fetched 5 pages", "time_ms": 8000 },
{ "action": "extract", "detail": "Extracted schema from 5 sources", "time_ms": 3000 }
]Use `steps` to debug weak results — if extraction is poor, check which pages were fetched.
Anti-Patterns
- DON'T use for reports/analysis — use `research` instead.
- DON'T use for single-page extraction — use `extract` instead.
- DON'T set `max_pages` high without time budget — set `max_time_ms` too.
When NOT to use wigolo-agent
- **Per-page interactive flow needed (login, multi-step wizard, click-through pagination)** — handle authentication or interaction externally, then chain with wigolo's `extract`.
See Also
- [wigolo-extract](../wigolo-extract/SKILL.md) — for single-page extraction
- [wigolo-research](../wigolo-research/SKILL.md) — for reports and analysis (not data gathering)
Read more
name: wigolo-agent description: | Autonomous data gathering across sources — plans search queries and URLs from a natural-language prompt, executes in parallel within a time budget, optionally extracts structured fields via JSON Schema, and synthesizes results with full step transparency. Use when the user needs data collected from the web with a specific shape, says "gather data", "find pricing for", "collect information about", "extract from multiple sites", or provides a JSON schema for web data. license: AGPL-3.0-only metadata: author: KnockOutEZ version: 0.1.43-beta.2 homepage: https://github.com/KnockOutEZ/wigolo repository: https://github.com/KnockOutEZ/wigolo
wigolo agent
Natural-language data gathering with optional JSON Schema output. Local-first: every fetched page lands in the cache for later reuse.
Quick Reference
// Natural language data gathering
{ "prompt": "Find pricing tiers for the top 5 headless CMS platforms" }
// With structured output schema
{
"prompt": "Find pricing for Contentful, Sanity, and Strapi",
"schema": { "type": "object", "properties": { "name": { "type": "string" }, "free_tier": { "type": "string" }, "pro_price": { "type": "string" }, "enterprise": { "type": "string" } } }
}
// With starting URLs
{
"prompt": "Compare features across these CMS platforms",
"urls": ["https://contentful.com/pricing", "https://sanity.io/pricing"],
"max_pages": 6
}Parameters
| Parameter | Type | Default | When to use | |-----------|------|---------|-------------| | `prompt` | string | required | Natural-language task description | | `urls` | string[] | none | Seed URLs to include | | `schema` | object | none | JSON Schema for structured extraction per page | | `max_pages` | number | 10 | Hard cap on pages fetched (max 100) | | `max_time_ms` | number | 60000 | Time budget in ms (max 600000) | | `stream` | boolean | false | Emit progress notifications per step | | `max_tokens_out` | number | none | Token-budget cap (cl100k-base) | | `include_full_markdown` | boolean | false | Pages return evidence excerpts by default | | `citation_format` | string | "numbered" | "numbered" / "json" / "anthropic_tags" |
How It Works
1. **Plans** — interprets prompt, generates search queries and URLs. 2. **Executes** — searches and fetches in parallel within budget. 3. **Extracts** — if schema provided, extracts fields from each page and merges. 4. **Synthesizes** — produces natural-language result or structured data. 5. **Reports** — `steps` array shows every action with timings.
Synthesis follows a fallback ladder: host sampling → optional local language model → deterministic extraction.
Output Transparency
Every response includes a `steps` array:
[
{ "action": "plan", "detail": "Generated 3 search queries", "time_ms": 200 },
{ "action": "search", "detail": "Found 8 results", "time_ms": 5000 },
{ "action": "fetch", "detail": "Fetched 5 pages", "time_ms": 8000 },
{ "action": "extract", "detail": "Extracted schema from 5 sources", "time_ms": 3000 }
]Use `steps` to debug weak results — if extraction is poor, check which pages were fetched.
Anti-Patterns
- DON'T use for reports/analysis — use `research` instead.
- DON'T use for single-page extraction — use `extract` instead.
- DON'T set `max_pages` high without time budget — set `max_time_ms` too.
When NOT to use wigolo-agent
- **Per-page interactive flow needed (login, multi-step wizard, click-through pagination)** — handle authentication or interaction externally, then chain with wigolo's `extract`.
See Also
- [wigolo-extract](../wigolo-extract/SKILL.md) — for single-page extraction
- [wigolo-research](../wigolo-research/SKILL.md) — for reports and analysis (not data gathering)
The go-to web for your AI coding agent — local-first search, fetch, crawl & research over MCP. No API keys, no cloud, $0/query. Public beta.
Repo: KnockOutEZ/wigolo
Other skills on wigolo.
- /wigolo-cache
Local-first knowledge cache — full-text and hybrid semantic search over every page wigolo has already fetched, crawled, or searched. Use before any web request: cached hits return instantly and free. Triggers when the user says "check the cache", "have we seen this", "what's on
Open skill - /wigolo-crawl
Local-first multi-page crawl with sitemap, BFS, DFS, and URL-map strategies, anchor-fragment dedup, rate limiting, robots.txt respect, and automatic local cache population. Use when the user wants to index documentation, crawl a docs site, extract all pages under a path, or says
Open skill - /wigolo-diff
Compare two versions of a page and see exactly what changed — a live URL against its cached copy, two URLs, or two markdown blobs. Section-level hunks, word- or line-level granularity, or a summary of counts. Use when the user says "what changed", "diff these", "compare this
Open skill - /wigolo-extract
Local-first structured extraction from any webpage — tables, definition lists, key-value pairs, JSON-LD, microdata, chart hints (SVG titles / aria-labels / figcaptions), brand assets, and metadata. Use when the user wants structured data, pricing tables, feature comparisons, or
Open skill - /wigolo-fetch
Local-first URL fetch with clean markdown, structured metadata, JS-rendered SPA support, authenticated browser sessions, PDFs, and content change detection. Use when the user provides a URL, says "fetch", "get this page", "read this URL", or wants content from a specific
Open skill - /wigolo-find-similar
Hybrid semantic discovery — fuses embeddings + keyword search + live web search via 3-way Reciprocal Rank Fusion. Use when the user has a good source and wants more like it, says "find similar", "related pages", "more like this", or wants to discover content related to a known
Open skill

