Quickstart

View as Markdown

Get a running session in under a minute. You need an API key from the Chaser dashboard.

Download the CLI

$curl -fsSL https://get.chaser.sh | sh

This installs chaser and the chaser-sh compatibility shim.

Or install via npm:

$npm i -g @chaser.sh/cli
$chaser --version

Login

$chaser login

Use Local Project Mode

If you already have a local project and want to keep local files authoritative while code runs remotely:

$cd ~/code/my-project
$chaser dev

This creates or reuses a project-scoped sandbox workspace, mirrors the project into /workspace, and opens a synced shell. Use this when you want your editor, local Git workflow, and local filesystem to remain the source of truth.

Useful follow-up commands:

$chaser dev status
$chaser dev log
$chaser dev doctor

Use The Remote-First CLI

Use the remote-first surfaces when the sandbox or workspace itself should be the canonical environment:

$# Open an interactive shell
$chaser shell
$
$# Or run a one-shot command
$chaser shell -c "ls -la"

Targetless shell/session creation follows the same account rules everywhere:

  • Free tier auto-spawns ephemeral sandboxes.
  • Paid accounts use the default workspace for that session type.
  • If a paid account has no default yet, Chaser creates one automatically.

Add persistence with workspaces

Create a named workspace so your files survive across sessions:

$# Create a workspace
$chaser workspaces create --session-type sandbox --name my-project --json
$chaser workspaces default set my-project --sandbox
$
$# Create a session attached to it
$chaser sandbox --workspace my-project --json
$
$# Run commands against it -- Chaser reuses the existing session
$curl -sS "$CHASER_API_URL/v1/exec" \
> -H "Authorization: Bearer $CHASER_API_KEY" \
> -H "Content-Type: application/json" \
> -d '{"workspace": "my-project", "command": "pwd && ls /workspace"}' | jq

Using the REST API

$export CHASER_API_URL="https://api.chaser.sh"
$export CHASER_API_KEY="sk_your_key_here"

Create a browser session

Spin up an ephemeral Chromium instance:

$curl -sS "$CHASER_API_URL/v1/sessions" \
> -H "Authorization: Bearer $CHASER_API_KEY" \
> -H "Content-Type: application/json" \
> -d '{"session_type": "browser", "ephemeral": true}' | jq

The response includes an endpoints.control URL. Connect to it with any CDP client. We recommend rebrowser-puppeteer-core — a drop-in replacement for puppeteer-core that plays cleanly with Chaser’s custom-patched Chromium. Stock Puppeteer and Playwright both fight our stealth patches in subtle ways; rebrowser-puppeteer-core does not.

$npm i rebrowser-puppeteer-core
1import puppeteer from "rebrowser-puppeteer-core";
2
3const browser = await puppeteer.connect({
4 browserWSEndpoint: "wss://<session_id>.chaser.sh/"
5});
6const page = await browser.newPage();
7await page.goto("https://example.com");
8console.log(await page.title());
9await browser.close();

Browser sessions also automatically solve captchas out of the box — no API keys, no per-page setup. See Browser Sessions for details.

Create a sandbox session

Spin up a Linux environment and run a command:

$curl -sS "$CHASER_API_URL/v1/exec" \
> -H "Authorization: Bearer $CHASER_API_KEY" \
> -H "Content-Type: application/json" \
> -d '{
> "ephemeral": true,
> "command": "uname -a && python3 --version"
> }' | jq

This auto-provisions a sandbox, runs the command, and returns the output. No session management required.

Use MCP tools

For AI agent integration, use the MCP endpoint with the high-level terminal and browser tools:

$curl -sS "$CHASER_API_URL/v1/mcp" \
> -H "Authorization: Bearer $CHASER_API_KEY" \
> -H "Content-Type: application/json" \
> -d '{
> "jsonrpc": "2.0",
> "id": 1,
> "method": "tools/call",
> "params": {
> "name": "terminal",
> "arguments": {
> "workspace": "my-project",
> "command": "echo hello from MCP"
> }
> }
> }' | jq

Install local MCP server entries for agents

Keep credentials in environment variables (no secrets written to config files):

$export CHASER_API_KEY=\"sk_your_key_here\"
$export CHASER_API_URL=\"https://api.chaser.sh\"

Install MCP configuration for Codex, Claude Code, and OpenCode in one step:

$chaser mcp install --agent all

You can also run the stdio bridge directly with npm:

$npx chaser-mcp --help