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.