# Create and add a Claude API key

> Create a Claude Console key with billing set up, store it in the Keychain, select Claude as the provider, pick a model and reasoning level, and test it.
>
> Verified against the current RoughCut app on 3 October 2026
> https://www.roughcuteditor.com/docs/claude-api-key

Claude by Anthropic is the third AI provider RoughCut supports for the AI editing pass, alongside OpenAI, the default, and Google Gemini. You create an API key in the Claude Console under Settings, API keys, set up billing there because Anthropic bills API usage separately, paste the key into RoughCut Settings where it is saved to the macOS Keychain, then set LLM provider to anthropic and click Save Configuration. The default Claude model is Claude Opus 5.5, and Choose Model & Estimate lets you pick another model and its reasoning level. Test it with a short clip that has Bad-take removal enabled. Only transcript text and word timing reach Anthropic, under your own key, never your video or audio. Anthropic's Console changes independently of RoughCut, so treat Anthropic's own documentation as authoritative for the exact screens.

## Prerequisites

- A Claude Console account. This is separate from a Claude chat subscription, which does not fund API usage.
- Billing set up in the Claude Console.
- RoughCut 1.10 or later. You do not need the speech model for this step.

> Anthropic controls this flow and changes it from time to time. The steps below describe the current shape of the process; if a button is named differently, follow the equivalent action rather than looking for exact wording. Anthropic's [API key documentation](https://platform.claude.com/docs/en/get-api-key) is authoritative.

## Steps

1. Open the [Claude Console](https://platform.claude.com/) and sign in, or create an account. RoughCut's welcome tour names it too, in the line that begins `Prefer Gemini or Claude?` on its key page.
2. Set up billing in the Console. Anthropic bills API usage separately from any Claude subscription, and from RoughCut and RoughCut Pro.
3. Go to `Settings → API keys` and click `Create key`. Give it a name and an expiration, and set `Linked account` to yourself. Recommended: scope the key to a single workspace. Anthropic's own guidance is to create a key for the specific workspace an integration uses, and a key kept just for RoughCut can be disabled or deleted without touching your other keys.
4. Copy the key. It starts with `sk-ant-`, and the Console shows it only once; if you lose it, create a new one.
5. In RoughCut, open `Settings`. On the `Basic` tab (or `Full → LLM`) find `Claude API key`.
6. Paste the key into the field and click its `Save` button. RoughCut confirms with `Claude API key saved to the Keychain.` This button saves only the key.
7. Set `LLM provider` to `anthropic` and click `Save Configuration` at the top of the window.
8. Optional: next to `Claude model`, click `Choose Model & Estimate…`, click `Refresh Models` to list the Claude models your key can reach, choose a model and a `Reasoning level`, click `Use Model`, then click `Save Configuration`. The default is `claude-opus-5-5` with the reasoning level `default`.
9. Test it: create a short job with `Bad-take removal` on. If the key and billing are correct, the job completes and the review list shows an editor summary such as `Editor: Anthropic (claude-opus-5-5) — 12 spans`.

## Expected result

The `Claude API key` field shows a green confirmation with the value masked and the caption `Saved in Keychain`, plus `Replace…` and `Remove` buttons. `LLM provider` reads `anthropic`, and the `Claude model` row reads `claude-opus-5-5 · reasoning default` until you choose otherwise. A test job completes with AI-proposed cuts rather than a silence-only result.

## Models and reasoning levels

`Choose Model & Estimate…` lists Claude Opus 5.5, Claude Sonnet 5.5 and Claude Fable 5.1, followed by any other Claude models your key can reach after `Refresh Models`, ordered by release date. The setting's own help text is candid about where Claude stands: `Opus 5.5 is the starting choice; Claude models have not been scored on RoughCut's evaluation set yet.`

On Claude, the reasoning level `default` sends no level, so the model's own default applies; the picker shows it as `Default (medium)` for Claude Opus 5.5 and `Default (high)` for Claude Sonnet 5.5 and Claude Fable 5.1. The three listed models offer `low`, `medium`, `high`, `xhigh` and `max`. Higher levels are slower and cost more, and they do not always cut better. See [Choose OpenAI, Gemini or Claude](/docs/choose-ai-provider#choose-a-reasoning-level) for how the level works.

## Privacy and cost note

The key is stored in the macOS Keychain, encrypted by the system, and is sent only to Anthropic. When Claude is the provider, the AI editing pass sends transcript text and word timing directly to Anthropic under your key — never your video or audio. RoughCut has no servers in this path and never sees your usage or your bill.

Anthropic bills your key at its published rates. Long recordings cost more, a higher reasoning level costs more because reasoning tokens are billed as output, and [Second Look](/docs/second-look) adds another call. RoughCut does not publish a per-video figure; `Choose Model & Estimate…` estimates a job with your own assumptions, and `Help → API Costs` links `Claude API pricing`.

## Managing and rotating the key

- **Replace** swaps in a new key without exposing the old one.
- **Remove** deletes it from the Keychain. RoughCut then behaves as if no key exists: silence-only cuts still work, and `Bad-take removal` fails preflight with a message telling you to add a key or turn the feature off.
- If a key ever leaks, delete it in the Claude Console and create a new one. Rotation takes seconds and there is nothing to migrate.

## Common mistakes

- **Expecting a Claude subscription to pay for API usage.** It does not. API usage needs billing in the Claude Console.
- **Saving the key but leaving the provider on OpenAI or Gemini.** The key's `Save` stores the key only. Set `LLM provider` to `anthropic` and click `Save Configuration`.
- **Reusing a key you created for something else.** Create a separate key for RoughCut, scoped to one workspace, so you can disable or rotate it on its own.
- **Pasting a key with surrounding whitespace or quotes.** Paste the raw value.
- **Expecting the key to appear in a settings file.** It never does — secrets live in the Keychain only, and are stripped before configuration is written to disk.

## Troubleshooting

RoughCut shows Claude's own error text after the prefix `Claude`, so the end of the message usually names the cause.

| Message or symptom | Likely cause | Fix |
|---|---|---|
| `No API key for provider 'anthropic'. Add it in Settings, or disable bad-take removal for a silence-only cut.` | No key saved | Save a key, or turn `Bad-take removal` off |
| `Claude HTTP 401: …` | Wrong value pasted, or the key was deleted or expired | Create a new key and use `Replace…` |
| `Claude HTTP 400: …` mentioning credit or billing | No billing or no credit balance on the Console account | Set up billing in the Claude Console, then retry |
| `Claude HTTP 400: …` mentioning `anthropic-workspace-id` | The key is not scoped to a single workspace | Create a key scoped to one workspace in the Claude Console and use `Replace…` |
| `Claude HTTP 400: …` mentioning `max_tokens` on Claude Haiku 4.5 | Claude Haiku 4.5 allows at most 64,000 output tokens, below RoughCut's default of 65536 | Set `Settings → Full → LLM editor max output tokens` to `64000`, or choose another model |
| `Claude HTTP 404: …` | The configured model is not available to your key | Check `Claude model` against what `Choose Model & Estimate…` → `Refresh Models` lists |
| `Claude declined this request (stop_reason refusal)` | The model declined to process this transcript | Retry, or choose another model or provider for this recording |
| `Claude: the transcript exceeds this model's context window (stop_reason model_context_window_exceeded)` | The transcript chunk is too long for this model | Choose a model with a larger context window, or lower `LLM editor chunk size (words)` in `Settings → Full` |
| `Claude stream ended before the response completed`, `Claude: no HTTP response` | The connection dropped | Check the connection and retry |
| Timeout | No data from Claude for longer than `Claude timeout (sec)` | The limit is 600 seconds by default and measures silence, not total time; raise it, or retry |
| `… does not support reasoning level …` | The selected model does not offer the saved level | Choose a supported level in `Choose Model & Estimate…` and click `Save Configuration` |
