Oopsie CLI
Download CLIManage your exceptions from the command line or with AI bots. The CLI is a single bash script that requires only curl and jq.
Using Claude Code, Codex, Hermes, OpenClaw, or another AI coding agent? Pair the CLI with our agent skills for one-command triage and fix.
Install
curl -fsSL https://raw.githubusercontent.com/theinventor/Oopsie/main/cli/oopsie -o oopsie
chmod +x oopsie
sudo mv oopsie /usr/local/bin/ # optional: add to PATH
Setup
Add a connection — a server URL plus an API key. Use your User API Key (from the Account page) to reach every project with one key:
oopsie config add prod --server https://your-oopsie-instance.com --key YOUR_USER_API_KEY
Or use a Project Key (from project settings) if you only need one project:
oopsie config add myproject --server https://your-oopsie-instance.com --key YOUR_PROJECT_KEY
With a user key, pin the project you work with most so you don't have to pass --project every time:
oopsie config set-project myapp
Everyday Commands
| Command | Description |
|---|---|
oopsie whoami | Show current connection, auth type, and project access |
oopsie projects | List all projects you can access (user key) or the one project (project key) |
oopsie project | Summary of the active project (pinned or --project) |
oopsie errors | List error groups for the active project |
oopsie errors --status resolved | Filter by status (unresolved/resolved/ignored) |
oopsie errors --workflow-state blocked | Filter by agent workflow state |
oopsie show <id> | Show error group details and recent occurrences |
oopsie state <id> in_progress --note "..." | Set workflow state without resolving or ignoring |
oopsie note <id> --body "..." | Add investigation evidence |
oopsie resolve <id> | Mark as resolved |
oopsie ignore <id> | Archive (ignore) an error group |
oopsie reopen <id> | Reopen a resolved or ignored error group |
Global Flags
| Flag | Description |
|---|---|
-p, --project <name> | Scope to a specific project for this command (overrides pinned default) |
-c, --connection <name> | Use a non-default connection |
oopsie errors --project myapp # one-off override
oopsie errors -c staging -p myapp # different server, specific project
Multiple Connections
Add connections for each server/environment. config use picks the default.
oopsie config add prod --server https://oopsie.example.com --key USER_KEY
oopsie config add staging --server https://staging.oopsie.example.com --key USER_KEY
oopsie config use prod
oopsie config list
API Reference
The CLI talks to these JSON API endpoints (Bearer token auth):
| Method | Endpoint | Description |
|---|---|---|
GET | /api/v1/project | One project (project key) or all accessible projects (user key) |
GET | /api/v1/error_groups | List error groups (?status=, ?workflow_state=, ?limit=, ?offset=) |
GET | /api/v1/error_groups/:id | Error group details + occurrences + activity |
PATCH | /api/v1/error_groups/:id/workflow_state | Set workflow state with optional note |
POST | /api/v1/error_groups/:id/notes | Add investigation note |
PATCH | /api/v1/error_groups/:id/resolve | Mark resolved |
PATCH | /api/v1/error_groups/:id/ignore | Archive (ignore) |
PATCH | /api/v1/error_groups/:id/unresolve | Reopen |
All endpoints require Authorization: Bearer YOUR_KEY. When calling project-scoped endpoints with a User API Key, include project_id as a query param or X-Project-Id as a header.
Agent Triage Flow
Use workflow state for coordination and lifecycle status for truth. Agents should set looking or in_progress before work, use blocked when external input is needed, add evidence with oopsie note, and resolve or ignore only when the note trail explains why.
oopsie state 42 looking --note "Reading recent occurrences"
oopsie note 42 --body "Reproduced locally with account 123"
oopsie state 42 ready_to_resolve --note "Fix deployed and verified"
oopsie resolve 42 --note "No new occurrences after deploy"