Ecosystem
CLI
Scrape, map, crawl and get brands from your terminal, scripts or agent with the vermin command.
The vermin command line calls the same API as the SDKs and prints the same Markdown as the MCP server. It's built for scripts and agents: results go to stdout, everything else to stderr, and exit codes tell you what went wrong.
npx @vermin/cli scrape https://example.comOr install it globally (Node.js 18.3+):
npm i -g @vermin/cliSource: github.com/reshapify/vermin-cli (MIT).
Sign in#
Create a key on the API keys page, then:
vermin login # paste the key; input is hidden
echo "$KEY" | vermin login # or pipe it in
vermin whoami # which key is in use, and from wherevermin login checks the key against the API (free) and saves it to ~/.config/vermin/config.json (%APPDATA%\vermin\config.json on Windows), readable only by you. In CI, set VERMIN_API_KEY instead; it takes precedence over the saved key.
Commands#
| Command | What it does | Credits |
|---|---|---|
vermin scrape <url> | One page as Markdown. -f picks formats (markdown,html,links,chunks,screenshot,…), -o writes a file. | 1, browser included |
vermin map <url> | Every URL on a site, one per line. --search ranks them, --include/--exclude filter paths. | 3 per 10 fetches |
vermin crawl <url> | Crawls a site and streams each page. -o dir writes one file per page; --no-wait prints the crawl id and exits. | 1 per page |
vermin crawl status <id> | Progress and pages so far. | free |
vermin crawl cancel <id> | Stops a crawl. | free |
vermin brand <domain> | Logo, colours, fonts and socials. | 5, 1 cached |
Failed pages cost 0 credits. vermin <command> --help lists every flag.
vermin scrape https://docs.example.com/guide -o guide.md
vermin map https://docs.example.com --search "rate limits" --limit 10
vermin crawl https://docs.example.com --limit 200 --include "/guides/**" -o ./docs
vermin brand stripe.com --json | jq .data.colorsOutput#
- stdout: the result only. Markdown by default, or the full API response with
--json. - stderr: credits used, request id and progress.
-qsilences it. - Crawls with
--jsonprint NDJSON: one{"type":"page","data":{…}}line per page, then{"type":"done","data":{…}}. - Errors with
--jsonprint{"success":false,"error":{"code":…,"message":…},"exit_code":…}on stdout.
Exit codes#
| Code | Meaning | What to do |
|---|---|---|
| 0 | Success | |
| 1 | Unexpected error | Retry once; report it with the request id if it persists. |
| 2 | Bad command line | Check vermin <command> --help. |
| 3 | No key, invalid key, or the key lacks the permission | vermin login, or ask an admin to change the key's permissions. |
| 4 | Out of credits, spend cap reached, or the key's budget is used up | Top up, raise the cap, or wait for the budget to reset. |
| 5 | Rate limited or busy | Wait and retry. |
| 6 | The page couldn't be read | Blocked, unreachable, timed out or unsupported. Try --tier render. |
| 7 | Not found | Check the crawl id. |
Agents#
Give an agent its own key with a credit budget and only the permissions it needs, set it as VERMIN_API_KEY, and let it call vermin like any other tool. If your agent speaks MCP, the MCP server exposes the same operations as tools.