Tabstack CLI
Use the full Tabstack API from your terminal. The Tabstack CLI is a single, dependency-free binary for browser automation, web research, and structured extraction, built for shell workflows and CI.
The Tabstack CLI brings every Tabstack capability to your terminal: markdown and structured extraction, AI generation, browser automation, and web research. It’s a single static binary with no runtime dependencies, so it drops cleanly into shell scripts, Makefiles, and CI pipelines.
Output is human-readable when you run it in a terminal and switches to JSON automatically when piped, so the same command reads well by hand and parses cleanly in a script.
The CLI is open source on GitHub.
Install
Section titled “Install”Install the latest release with the install script:
curl -fsSL https://tabstack.ai/install.sh | shThis downloads the right prebuilt binary for your platform (macOS, Linux, Windows) and puts tabstack on your PATH.
Verify the install:
tabstack --versionAuthenticate
Section titled “Authenticate”You’ll need a Tabstack API key first (get one at tabstack.ai).
Log in once and the key is saved to your config file:
tabstack auth login # prompts for your API keytabstack auth status # shows how the key is being resolvedThe CLI resolves your API key in this order of precedence:
--api-keyflagTABSTACK_API_KEYenvironment variable- Config file at
~/.config/tabstack/config.toml(created with0600permissions)
For CI and scripts, set the environment variable instead of logging in:
export TABSTACK_API_KEY="sk_..."Commands
Section titled “Commands”Extract markdown
Section titled “Extract markdown”Convert any URL to clean markdown:
tabstack extract markdown https://example.com --metadataExtract structured JSON
Section titled “Extract structured JSON”Pull structured data from a page against a JSON schema:
tabstack extract json https://example.com --schema @schema.jsonGenerate with AI
Section titled “Generate with AI”Generate structured output from a page using natural-language instructions plus a schema:
tabstack generate json https://example.com \ --instructions "Extract the product name, price, and availability" \ --schema @schema.jsonBrowser automation
Section titled “Browser automation”Drive a browser with a natural-language task:
tabstack agent automate "Find the price of the Pro plan" --url https://example.comWeb research
Section titled “Web research”Run a multi-source research task:
tabstack agent research "latest developments in quantum computing" --mode balancedInteractive automation
Section titled “Interactive automation”Pause an automation to supply input mid-run (logins, forms), then resume by request ID:
tabstack agent automate "Log in and download the latest invoice" \ --url https://example.com --interactive
tabstack agent input <request-id> \ --data '{"fields":[{"ref":"field1","value":"yes"}]}'See the interactive mode guide for the full pause/resume flow.
Common options
Section titled “Common options”These flags work across the commands above:
| Flag | Description |
|---|---|
--effort {min|standard|max} | Trade speed against capability. See effort levels. |
--geo <CC> | Route the request through a country (ISO 3166-1 alpha-2). See geotargeting. |
--nocache | Bypass the cache and fetch fresh. |
-o, --output {pretty|json} | Force the output format (auto-detected by default). |
--timeout <dur> | Request timeout, e.g. 30s. |
--no-color | Disable colored output. |
Input handling
Section titled “Input handling”The --schema, --instructions, and --data flags all accept three input forms:
- A literal string, like
--instructions "Extract the title" - A file with
@, like--schema @schema.json - stdin with
-(like curl), as in--schema -
cat schema.json | tabstack extract json https://example.com --schema -Output and exit codes
Section titled “Output and exit codes”Output auto-detects context: pretty for terminals, JSON when piped. Pipe straight into jq:
tabstack extract markdown https://example.com | jq .Exit codes make the CLI safe to branch on in scripts:
| Code | Meaning |
|---|---|
0 | Success |
1 | Runtime / network error |
2 | Usage / invalid input (e.g. missing API key) |
3 | API error or task failure |
if tabstack extract json "$URL" --schema @schema.json > out.json; then echo "extracted"else echo "failed with exit $?"fiNext steps
Section titled “Next steps”- API Reference. Full parameter and response details for every endpoint.
- Schema design. Write schemas for
extract jsonandgenerate json. - Effort levels. Tune speed vs. capability.
- Interactive mode. Handle logins and forms mid-automation.