Skip to main content

Help

CLI

The SquirrelStack CLI lets you manage errors from the command line. It’s designed for quick triage and is particularly useful as part of automated workflows and Claude Code skills.

Install

Install via Homebrew:

brew tap futuremill/squirrelstack
brew install squirrelstack

Or download directly:

curl -fsSL https://raw.githubusercontent.com/futuremill/squirrelstack-cli/main/squirrelstack \
  -o /usr/local/bin/squirrelstack
chmod +x /usr/local/bin/squirrelstack

Authentication

On first use, the CLI will prompt you to authenticate. You can log in via your browser (recommended) or paste an existing personal access token.

squirrelstack login

The token is stored securely in the macOS Keychain. To remove it:

squirrelstack logout

You can also set the SQUIRRELSTACK_TOKEN environment variable to override the stored token, which is useful for CI or automation.

Accounts

Your PAT identifies you as a user, not an account — so if you belong to multiple SquirrelStack accounts, you need to tell the CLI which one to use. The CLI looks for the account in this order:

  1. --account <slug> flag
  2. SQUIRRELSTACK_ACCOUNT environment variable
  3. Nearest .squirrelstack file, walked up from the current directory
  4. ~/.squirrelstack (global default)
  5. Server default (only works when your user has exactly one account)
squirrelstack accounts                       # list accounts (marks the current one)
squirrelstack accounts use <slug>            # pin account for the current directory tree
squirrelstack accounts use <slug> --global   # set a global default in ~/.squirrelstack
squirrelstack accounts use --clear           # remove the local .squirrelstack
squirrelstack accounts current               # show resolved account and its source

The pinned-account file is plain text — a single line of account=<slug>. Commit it if your team should share the project’s default, or gitignore it if it’s personal.

Listing Errors

View all unresolved errors with:

squirrelstack errors

This shows severity, priority, environment, occurrence count, assignee, error type, message, and when the error was last seen.

Filtering

Narrow results by status, severity, or environment:

squirrelstack errors --status resolved
squirrelstack errors --severity critical
squirrelstack errors --env production

Valid statuses: unresolved (default), resolved, ignored, all.

JSON Output

Add --json to get raw JSON, useful for piping to other tools or Claude Code skills:

squirrelstack errors --json

Viewing Error Details

Get the full details of an error including message, backtrace, occurrence data, and notes:

squirrelstack errors show <ID>

App frames in the backtrace are highlighted with >> to help you find your code quickly. Add --json for raw JSON output.

Updating Errors

Change the status, priority, or assignee of an error:

squirrelstack errors update <ID> --status resolved
squirrelstack errors update <ID> --priority high
squirrelstack errors update <ID> --assign <USER_ID>

You can combine multiple updates in one command:

squirrelstack errors update <ID> --status resolved --priority low --assign none

Valid statuses: unresolved, resolved, ignored, always_ignored.

Valid priorities: critical, high, medium, low, none.

Use --assign none to unassign.

Adding Notes

Add a comment to an error for context or to document your investigation:

squirrelstack errors comment <ID> "Root cause: nil user in session after timeout"

Notes are visible in the web UI and in squirrelstack errors show.

Team Members

To find user IDs for the --assign option:

squirrelstack errors members

Environment Variables

Variable Description
SQUIRRELSTACK_TOKEN PAT token (overrides Keychain)
SQUIRRELSTACK_ACCOUNT Account slug to send as X-Account-Slug (overrides .squirrelstack)
SQUIRRELSTACK_URL API base URL (default: https://squirrelstack.app)

Requirements

The CLI requires macOS with Ruby, curl, and openssl — all pre-installed. Token storage uses the macOS Keychain.