Skip to main content
claude-code-router lets you run Claude Code while routing requests to Firmware. It’s handy when you want one API key for many models.

Acknowledge

Setup notes are adapted from guidance by AlexGS74. Big thanks for sharing the original walkthrough.

Install

Install Claude Code and the router.
npm install -g @anthropic-ai/claude-code
npm install -g @musistudio/claude-code-router
Verify the router is available.
ccr --help

Configure

Edit ~/.claude-code-router/config.json and add a Firmware provider. Keep api_base_url pointed at the chat completions endpoint.
{
  "HOST": "127.0.0.1",
  "PORT": 3456,
  "Providers": [
    {
      "name": "firmware",
      "api_base_url": "https://app.firmware.ai/api/v1/chat/completions",
      "api_key": "YOUR_FIRMWARE_API_KEY",
      "models": ["gpt-4o", "claude-opus-4-5"]
    }
  ],
  "Router": {
    "default": "firmware,gpt-4o"
  }
}
Restart after you change the config.
ccr restart

Pick a model

Use any model ID from the models list. If you want separate defaults, add router keys like think or background.
{
  "Router": {
    "default": "firmware,gpt-4o",
    "think": "firmware,claude-opus-4-5"
  }
}

Run

Start the router, then launch Claude Code through it.
ccr start
ccr code
Use the interactive model picker to switch models.
ccr model

Troubleshoot

Use ccr status to confirm the server is running. Check ~/.claude-code-router/logs/ if requests fail.

Learn more

claude-code-router

View upstream install and config details