First Commands
Five commands. Start here, branch out from the recipes.
Extract: page as data
# Clean markdown — 4KB of signal, not 400KB of HTML
tabstack extract markdown https://bun.sh/docs/api/spawn
# Structured JSON — declare the shape you want
tabstack extract json https://news.ycombinator.com
--schema '{"type":"object","properties":{"stories":{"type":"array","items":{
"type":"object","properties":{"title":{"type":"string"},
"url":{"type":"string"},"points":{"type":"number"}}}}}}' The schema is JSON Schema. You can pass it inline, from a file (--schema @schema.json), or from stdin (--schema -).
When piped, output is JSON automatically. On a TTY, it’s pretty-printed. No flag needed.
# Pipe it into jq
tabstack extract markdown https://example.com | jq -r .content | wc -w Generate: AI transform a page
tabstack generate json https://github.com/sveltejs/kit/releases
--instructions "I'm on @sveltejs/kit 2.x. Any recent releases that break me?"
--schema '{"type":"object","properties":{"breaking":{"type":"boolean"},"verdict":{"type":"string"}}}' generate sends the page content through the API with your instructions. Extract fetches and structures; generate fetches, reasons, and transforms.
Research: multi-source answer with citations
tabstack research "CRDTs vs operational transforms for collaborative editing in 2026" Progress goes to stderr. The final markdown report goes to stdout. Redirect cleanly:
tabstack research "EU vs US AI regulation" > report.md In JSON mode (piped), you get NDJSON — one event per line:
tabstack research "competitor pricing"
| jq -r 'select(.event=="complete") | .data.metadata.citedPages[]' Automate: browser, in plain English
tabstack automate "find the top 3 trending repos and their star counts"
--url https://github.com/trending Read-only by default. Add --allow-actions for form fills and clicks. Add --interactive for human-in-the-loop pauses.
Recipes: the cookbook
Ten worked examples, light to hard, already built into the CLI:
tabstack recipes # browse all ten with descriptions
tabstack recipes 3 # one recipe, copy-paste ready
tabstack recipes 3 --json | jq .command # agents use this The recipes cover: typed news feeds, price watches, changelog diffing, star drift detection, ADRs with citations, CI fact-checking, geo pricing diff, interactive form automation, and a blog post that fact-checks itself.
All ten are also in RECIPES.md if you want the full prose version with example outputs.