Skip to content
Back to skills

Webq

ASecurity

Web pages as token-budgeted markdown via the `webq` CLI: one call fetches and renders a URL, prunes the chrome, prints what fits your budget and saves the whole page. Use for docs pages, crawling a docs site into files, query-focused extraction, and any page WebFetch returns empty. Not for pages behind a sign-in.

  • 69 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 3, 2026
developmentshell

Works with

  • cli

Security analysis

A100/100

Scanned September 20, 2026

npx -y skills add intentic/intentic --skill webq --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Webq?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Webq
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/intentic-webq/badge)](https://www.skillsdirectory.com/skills/intentic-webq)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: webq
description: Web pages as token-budgeted markdown via the `webq` CLI: one call fetches and renders a URL, prunes the chrome, prints what fits your budget and saves the whole page. Use for docs pages, crawling a docs site into files, query-focused extraction, and any page WebFetch returns empty. Not for pages behind a sign-in.
---

# webq: the web as markdown, sized for context

One page:

```
webq fetch https://docs.example.com/guide
```

Read the capsule first: `title · final URL · token cost · fit|raw · cache|network|browser`, then `saved:`
(the whole page as a file), then the content up to `--budget` (default 4000 tokens). If it was cut, the cut
line names the file to `Read` for the rest — prefer that over refetching with a bigger budget.

| I want… | Run |
|---|---|
| one page, clean | `webq fetch <url>` |
| just the parts about X | `webq fetch <url> --query "rate limits"` |
| the whole page, chrome and all | `webq fetch <url> --raw` |
| a docs site as files | `webq crawl <url> --max-pages 30` |
| the pages about X, best first | `webq crawl <url> --query "webhooks" --max-pages 10` |
| seed from the site's sitemap | `webq crawl <url> --sitemap` |
| force/skip JS rendering | `--browser force` / `--browser never` |
| bypass the 15-min cache | `--fresh` |

Crawls write one markdown file per page plus `index.md` / `index.json`; read the index, then `Read` only
the files whose titles matter. Skip counts (`robots`, `offsite`, `beyond-cap`, `http-errors`) tell you what
the crawl did NOT cover — a capped crawl is not a complete one.

When to reach for what:

- **webq** — public pages, docs, articles; anything you'd otherwise WebFetch repeatedly or that WebFetch
  returns empty (JS app shells render through the image's Chromium automatically).
- **WebFetch** — a one-off page where a summary is enough.
- **Browser tools** — pages needing sign-in, clicks, or form input; webq is read-only and credential-free.

Notes in the capsule are honesty, not noise: "byte cap hit", "no Chromium in this image", "query matched
too little: kept the whole page" each change what you should conclude from the output.

Exit codes: 0 content, 1 none (HTTP error / empty crawl), 2 broken invocation or install. A broken install
says so on stdout — never read it as an empty page.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.