Skip to main content
Give your agents the live web from your terminal. Try it with no key:
Results print as rows, or as JSON with --json.

Install

The installer puts the binary in ~/.local/bin. On Windows, use PowerShell:
With Node.js 20 or later, npm install -g @stophy/cli works too.

Set up your agent

init logs you in with your browser, installs the Stophy skills with npx -y skills add stophydotdev/stophy, and adds the MCP server. With Claude Code on your PATH it runs claude mcp add. For any other agent it prints the command or snippet to use, and leaves your config files alone.

Log in

The CLI prints a code and opens stophy.dev. Check that the page shows the same code, then click Approve. On a server with no browser, open the printed link on any other device. To use an API key from the dashboard instead, run this and paste the key when it asks, so it stays out of your shell history. In CI, set STOPHY_API_KEY from your secret store.
Each computer gets its own key, and logging in again replaces it. stophy logout logs out and revokes the key. Without a login you can run the commands stophy endpoints marks free, within a small free allowance.

Get data

stophy <command> --help lists every option.
  • Give a list as --urls a,b or --urls a --urls b.
  • Turn a yes-or-no option on with --flag and off with --no-flag.
  • Options that take JSON, like --formats '["markdown","links"]', take it as one quoted argument.
  • A value the command doesn’t take stops the CLI before it calls Stophy, and it prints the values that work.
crawl, batch scrape and extract answer with an id. Read the result with status <id> and stop a running job with cancel <id>. A status answer holds up to 100 finished pages. Wait until the status is completed. When it has a next link, run it again with --cursor and the cursor from that link.

Read a site with a parser

A parser returns a site’s own data as JSON: posts, videos, places, products, jobs, listings and more. stophy parsers [word] lists them, with the kind of page each one takes:
If the output ends with a cursor, get the next page with --parserOptions '{"cursor":"<cursor>"}'. --json prints the data as JSON and the cost to stderr. --raw prints the full response. -o <path> writes the output to a file. A failed call ends with Request id: <id>, which support will ask for.

Commands

The CLI tells you when a newer version is out. Set STOPHY_NO_UPDATE_CHECK=1 to turn that off.