Fix with your agent

Hand a production error to the agent you already use.

Pick your agent on any issue and paste one command into the service's repository. Claude Code, Codex, opencode, Gemini CLI, Cursor or Amp reads the exception, trace and logs over MCP, and the task tells it to reproduce the bug with a failing test, fix the root cause and open a pull request. It runs on your machine under your plan with its vendor. Unhandled calls no model.

Six agents
claude, codex, opencode, gemini, cursor, amp
No model calls
Unhandled pays for and runs no model
One sign-in
unhandled login over OAuth, no API key
Agent-ready tickets
GitHub and Linear issues carry the prompt
#fix

One command per agent

Fix with your agent sits next to Copy fix prompt on every issue. Pick an agent to copy the command that starts it on that issue, such as claude or codex with a short task, or the matching npx @unhandled/cli fix command. Either names the issue and nothing else. The exception, frames, trace, logs and the deploy behind them reach the agent over MCP through get_fix_context, redacted.

  • Production text never lands on your command line or in your shell history
  • The task asks for a failing test first, a root-cause fix and the issue URL in the pull request
  • Your agent opens the pull request with its own credentials, like any other change
Terminal
# Copied from Fix with your agent on issue 42
npx @unhandled/cli fix https://unhandled.net/o/acme/projects/web/issues/42 --agent claude
npx @unhandled/cli fix https://unhandled.net/o/acme/projects/web/issues/42 --agent codex
#setup

Agent setup, filled in for your server

Settings, Agent setup shows the install command, the config file and the install link for each agent, with your server URL already in them. Cursor and VS Code install in one click. The same page gives you the AGENTS.md section that tells any agent how to use Unhandled, and get_agent_setup returns all of it over MCP.

  • Claude Code, Codex, opencode, Gemini CLI, Cursor, Amp, VS Code, Zed and Windsurf
  • npx @unhandled/cli mcp install --agent cursor writes the config and backs the file up first
  • The page warns you when an admin has turned MCP off for the organization
#cli

Sign in once, fix from the terminal

unhandled login registers the CLI with your Unhandled server over OAuth and opens the consent page in your browser. Then start your agent on an issue by its URL or ID, from the repository it belongs to. The agent takes over the terminal, or runs in its print mode with --headless.

  • Tokens stay in ~/.config/unhandled/, readable only by you
  • unhandled issues lists open issues to pick from, by project and status
  • Works against unhandled.net or your own server with --url
Terminal
npx @unhandled/cli login
npx @unhandled/cli issues --project web --status open
npx @unhandled/cli fix 42 --agent claude
npx @unhandled/cli fix 42 --agent codex --headless
#watch

Let a headless agent take new issues

unhandled watch polls a project for new and regressed issues and starts your agent headless on each one, one issue at a time. It remembers what it handed over, so a restart never runs an issue twice, and a regression runs it once more.

  • --dry-run lists what it would hand over and starts nothing
  • The agent keeps its own permission settings; the CLI passes no flag that skips approvals
  • Run it in a dedicated clone or container, and review every pull request before it merges
Terminal
npx @unhandled/cli watch --agent claude --project web --dry-run
npx @unhandled/cli watch --agent claude --project web --interval 60s --max-runs 5
#faq

Questions

Try it on your own stack.

Every feature is on every plan, priced by the telemetry you send.