Installing Claude Code takes one line, but it is not the same everywhere: curl -fsSL https://claude.ai/install.sh | bash in the macOS, Linux, or WSL terminal, irm https://claude.ai/install.ps1 | iex in PowerShell, and a line install.cmd in the Windows Command Prompt. The real question comes at first launch: who pays for the requests? A Pro, Max, Team, Enterprise, or Console account lets you sign in (the free Claude.ai plan does not include Claude Code). Without a subscription, an API key is sufficient: six variables, including ANTHROPIC_BASE_URL without /v1 and ANTHROPIC_AUTH_TOKEN, followed by a quick look at /status. The Kunavo balance can be paid for by card, Apple Pay, Google Pay, Link, or, in Belgium, Bancontact, starting at $10, with no subscription.
Where this information comes from: the commands and variables are drawn from the official Claude Code documentation (installation, environment variables, connecting to a gateway), which we reviewed on October 3, 2026; Kunavo prices and payment methods were checked on October 3, 2026. According to Anthropic's list of supported countries (checked on October 3, 2026), Claude.ai and the API are available in France, Belgium, Switzerland, Luxembourg, and Canada, as well as Morocco, Tunisia, Algeria, Senegal, and Côte d’Ivoire. The same guide is available in English and, for Flanders, in Dutch.
Which command to type: it depends on the window
| Where you are | Command | Updates |
|---|---|---|
| macOS, Linux, or WSL terminal | curl -fsSL https://claude.ai/install.sh | bash | Automatic |
Windows, PowerShell (prompt PS C:\…>) | irm https://claude.ai/install.ps1 | iex | Automatic |
Windows, Command Prompt (C:\…> without PS) | The install.cmd line below | Automatic |
| Homebrew, WinGet | brew install --cask claude-code, winget install Anthropic.ClaudeCode | Run yourself |
| apt, dnf, apk (Debian, Ubuntu, Fedora, RHEL, Alpine) | Anthropic-signed repositories; see the installation page | With system updates |
# macOS, Linux, WSL
curl -fsSL https://claude.ai/install.sh | bash# Windows PowerShell
irm https://claude.ai/install.ps1 | iex:: Invite de commandes Windows (CMD)
curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmdThe first three lines install the native version, which Anthropic recommends: a standalone binary stored in ~/.local/bin (%USERPROFILE%\.local\bin on Windows), which downloads updates in the background and applies them at the next startup. Once installation is complete, close the terminal and reopen one: the terminal used for installation does not yet know about the new PATH.
On Windows, using the wrong window is the number-one cause of failure, and the message says so unambiguously. The token '&&' is not a valid statement separator: you pasted the CMD line into PowerShell. 'irm' is not recognized as an internal or external command: the opposite is true. On a French-language Windows system, this second message may appear translated; the cause does not change. The other messages are in the error table at the end of the guide.
Requirements
| Item | What the official documentation requires (read on October 3, 2026) |
|---|---|
| System | macOS 13.0 or later; Windows 10 1809 or later, or Windows Server 2019 or later; Ubuntu 20.04+, Debian 10+, Alpine Linux 3.19+ |
| Hardware | At least 4 GB of RAM, x64 or ARM64 processor (no 32-bit Windows) |
| Shell | Bash, Zsh, PowerShell, or CMD |
| Countries | A country supported by Anthropic (France, Belgium, Switzerland, Luxembourg, Canada…) |
| Account | Sign-in: Pro, Max, Team, Enterprise, or Console; the free plan does not include Claude Code. With an API key, neither a subscription nor sign-in is required. |
| Node.js | Only for installation via npm, version 22 or later |
Windows: what old tutorials say and what is true
Many French-language tutorials date back to the early versions of Claude Code. Here are their most common instructions, checked against the current installation documentation and the troubleshooting page (reviewed on October 3, 2026):
| What you still read | What is true today |
|---|---|
| “Install WSL first” | Claude Code runs natively on Windows. WSL 2 is justified only for Linux tools or to run commands in a sandbox. |
| “Open PowerShell as administrator” | Unnecessary: the documentation specifies that it is not required. |
| “Git is required” | Optional but recommended: Git for Windows provides Git Bash, which Bash and Monitor tools depend on. Without Git, Claude Code runs its commands with PowerShell. |
| “Node.js 18 is required” | Node.js is needed only for installation via npm, in which case version 22 or later is required. |
“curl … | bash works everywhere” | Not in Windows PowerShell, where curl is an alias for Invoke-WebRequest: the command fails on the fsSL parameter. |
If you install Git for Windows, Claude Code uses Git Bash and keeps the PowerShell tool alongside it. Sometimes it cannot find bash.exe; in that case, specify its path in the CLAUDE_CODE_GIT_BASH_PATH variable within the env block of ~/.claude/settings.json (the documentation gives C:\Program Files\Git\bin\bash.exe as an example). One last pitfall: the “Windows PowerShell (x86)” shortcut launches a 32-bit version, which Claude Code does not support.
Native or WSL: the choice depends on where your projects live:
| Mode | What to have | Sandbox | For whom |
|---|---|---|---|
| Native Windows | Nothing; Git for Windows optional | No | Windows projects and tools |
| WSL 2 | WSL 2 enabled | Yes | Linux toolchain, isolated commands |
| WSL 1 | WSL 1 enabled | No | Machines where WSL 2 is unavailable |
On the WSL side, everything happens inside the Linux distribution: that is where you paste the curl … | bash line, and where you then type claude. If launched from PowerShell or CMD, it would not see this installation.
Homebrew, WinGet, apt, or npm
Package managers work, with one trade-off: Claude Code is not updated automatically through them. For Homebrew and WinGet, the CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE=1 variable tells Claude Code to update itself; without it, you must do so yourself:
# Homebrew (macOS)
brew install --cask claude-code
brew upgrade claude-code # pas de mise à jour automatique
# WinGet (Windows)
winget install Anthropic.ClaudeCode
winget upgrade Anthropic.ClaudeCode # pas de mise à jour automatiqueOn Debian, Ubuntu, Fedora, RHEL, and Alpine, Anthropic also publishes signed apt, dnf, and apk repositories that are updated with the rest of the system; instructions are on the installation page.
That leaves npm, which is convenient if Node.js is already part of your toolkit. The package requires Node.js 22 at minimum. On an older version, npm merely issues an EBADENGINE warning and completes, because the package installs the same native binary, which does not need Node.js to run. Two rules: no sudo npm install -g, and update with @latest, because npm update -g stays within the original version range and may leave you behind.
node -v # v22 ou plus récent
npm install -g @anthropic-ai/claude-code # jamais avec sudo
# mise à jour : avec @latest, pas avec npm update -g
npm install -g @anthropic-ai/claude-code@latestVerify the installation and repair the PATH
claude --version # affiche le numéro de version, suivi de (Claude Code)
claude doctor # diagnostic de l’installation et des réglages, sans ouvrir de sessionA version number returned means it is installed. claude doctor goes further without starting a session: installation status, errors in settings files, and the result of the latest update. When something is wrong, this is the first command to run.
command not found: claude on macOS or Linux, claude “not recognized” on Windows: the program is installed, but the shell does not know where to find it. Opening a new window is usually enough. Otherwise, add ~/.local/bin to PATH in ~/.zshrc or ~/.bashrc. On Windows, the official troubleshooting page gives these three PowerShell steps:
# 1. Le dossier d'installation est-il déjà dans le PATH ?
$env:PATH -split ';' | Select-String '\.local\\bin'
# 2. Aucun résultat ? Ajoutez-le au PATH de l'utilisateur, puis ouvrez une nouvelle fenêtre
$currentPath = [Environment]::GetEnvironmentVariable('PATH', 'User')
[Environment]::SetEnvironmentVariable('PATH', "$currentPath;$env:USERPROFILE\.local\bin", 'User')
# 3. Dans la nouvelle fenêtre : deux chemins = deux installations concurrentes
where.exe claudeInstalled via npm, and PowerShell responds with npm.ps1 cannot be loaded? Its execution policy blocks npm scripts. Switch to the native installer, or allow local scripts for your account only:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUserWho pays for requests: Claude subscription or API key
The choice is made not during installation but at first launch, and it remains reversible. A key defined in the environment takes precedence over a saved claude.ai connection, which remains dormant; remove the variable, and the connection takes over again at the next launch.
| Claude subscription | Kunavo API key, without a subscription | |
|---|---|---|
| You need | A Pro, Max, Team, Enterprise, or Console account | A sk-kn-… key |
| Cost | Pro: $20 per month, or $200 paid upfront for the year; Max: starts at $100 per month; prices exclude taxes (claude.com/pricing, checked on October 3, 2026). Console: billed per token by Anthropic | Per token, charged from a prepaid balance; no monthly fees |
| Payment | On the web, credit or debit card only | Card, Apple Pay, Google Pay, Link; Bancontact in Belgium |
| Remote Control, voice dictation | Yes, with the claude.ai connection | No |
| Setup | Browser sign-in | Six environment variables |
With a Claude subscription
Nothing to configure: claude in the project directory, then sign in through the browser. One exception is an ANTHROPIC_API_KEY that happens to be present in your environment. Claude Code then asks once whether it should use it; a refusal is remembered, and the key is subsequently ignored without a message, making it seem as though the variable is not being read. To change this choice: /config → Use custom API key.
Without a subscription: the Kunavo API key
Pointing Claude Code somewhere other than Anthropic is a supported configuration. The official list of environment variables identifies ANTHROPIC_BASE_URL as the way to route requests through a proxy or gateway. Kunavo responds using the Anthropic Messages API format, so you can keep the official Claude Code without an extension or modified version.
- Open an account: Kunavo sign-up.
- Fund the balance in Billing, $10 minimum (payment methods below).
- Generate a key at /app/keys. It starts with
sk-kn-and is shown only when it is created: copy it immediately. - Enter the six variables below.
| Variable | Value | Why, and what breaks otherwise |
|---|---|---|
ANTHROPIC_BASE_URL | https://api.kunavo.com | The domain alone. Claude Code adds /v1/messages itself: with an extra /v1, the request goes to /v1/v1/messages and returns a 404. |
ANTHROPIC_AUTH_TOKEN | Your sk-kn-… key | Sent in the Authorization: Bearer header and taken into account immediately. ANTHROPIC_API_KEY uses the x-api-key header, which Kunavo also accepts, but requires approval on the first interactive launch. |
ANTHROPIC_MODEL | claude-sonnet-5 | The main model, written exactly as it appears in the Kunavo catalog; an unknown name returns a 404. |
ANTHROPIC_DEFAULT_OPUS_MODEL | claude-opus-5-5 | Sets what the opus alias refers to, and opusplan in plan mode. Opus 5.5 requires Claude Code v2.1.280 or later; otherwise, claude update. |
ANTHROPIC_DEFAULT_SONNET_MODEL | claude-sonnet-5 | Sets what the sonnet alias refers to, and opusplan outside plan mode. Without it, /model sonnet and subagents configured for sonnet request Sonnet 5.5 and receive a 404. |
ANTHROPIC_DEFAULT_HAIKU_MODEL | claude-haiku-4-5 | Behind a gateway, background tasks (session titles…) otherwise use the main model. Without this line, the haiku alias also requests an ID that Kunavo does not serve (Haiku 5.5 from v2.1.293 onward): /model haiku and subagents configured with haiku receive 404s. |
Why pin four models? Claude Code's aliases track Anthropic's releases. According to the model configuration documentation (checked on October 3, 2026), for an API account, the default setting and opus currently point to Opus 5.5, while sonnet points to Sonnet 5.5, which Kunavo does not serve: without ANTHROPIC_DEFAULT_SONNET_MODEL, /model sonnet, the execution phase of opusplan, and subagents configured with sonnet return a 404. The opus alias is pinned to Opus 5.5 (claude-opus-5-5), which requires Claude Code v2.1.280 or later; if you have an older version, run claude update. A newly released model may also not be available on Kunavo the same day. With full model names, every request goes to a served model at a known price. The gateway protocol documentation (checked on October 3, 2026) confirms the point about background tasks: with Claude Haiku 4.5, they cost little.
Where to enter the variables
| Location | Scope | What to know |
|---|---|---|
env block in ~/.claude/settings.json | All your projects, regardless of the terminal | The best choice. On Windows: %USERPROFILE%\.claude\settings.json. If it conflicts with the shell, this file takes precedence. |
export in ~/.zshrc or ~/.bashrc | Terminals opened afterward | An editor launched from the Dock or Start menu does not see them. |
$env: in PowerShell | The current window | Perfect for a first test, lost when the window closes. |
claudeCode.environmentVariables (VS Code) | The VS Code extension | The extension checks credentials here before starting; settings.json reaches the process, not this check. |
A project’s .claude/settings.json | The entire repository | Never for the key: the file is versioned and shared with anyone who clones the repository (gateway documentation, read on October 3, 2026). |
The recommended version, to merge with the file’s existing content if there is any (add only the env block):
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.kunavo.com",
"ANTHROPIC_AUTH_TOKEN": "sk-kn-...",
"ANTHROPIC_MODEL": "claude-sonnet-5",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-5-5",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-5",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-5"
}
}The same values in the shell on macOS and Linux:
export ANTHROPIC_BASE_URL=https://api.kunavo.com # le domaine seul, sans /v1
export ANTHROPIC_AUTH_TOKEN=sk-kn-...
export ANTHROPIC_MODEL=claude-sonnet-5
export ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-5-5
export ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-5
export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5For a quick test in a PowerShell window:
# Valable uniquement dans cette fenêtre PowerShell
$env:ANTHROPIC_BASE_URL = "https://api.kunavo.com"
$env:ANTHROPIC_AUTH_TOKEN = "sk-kn-..."
$env:ANTHROPIC_MODEL = "claude-sonnet-5"
$env:ANTHROPIC_DEFAULT_OPUS_MODEL = "claude-opus-5-5"
$env:ANTHROPIC_DEFAULT_SONNET_MODEL = "claude-sonnet-5"
$env:ANTHROPIC_DEFAULT_HAIKU_MODEL = "claude-haiku-4-5"
claudeAnd for the VS Code extension, in the editor’s user settings (command Preferences: Open User Settings (JSON)):
{
"claudeCode.environmentVariables": [
{ "name": "ANTHROPIC_BASE_URL", "value": "https://api.kunavo.com" },
{ "name": "ANTHROPIC_AUTH_TOKEN", "value": "sk-kn-..." },
{ "name": "ANTHROPIC_MODEL", "value": "claude-sonnet-5" },
{ "name": "ANTHROPIC_DEFAULT_OPUS_MODEL", "value": "claude-opus-5-5" },
{ "name": "ANTHROPIC_DEFAULT_SONNET_MODEL", "value": "claude-sonnet-5" },
{ "name": "ANTHROPIC_DEFAULT_HAIKU_MODEL", "value": "claude-haiku-4-5" }
]
}The Claude desktop app is an exception: it reads neither ANTHROPIC_BASE_URL nor settings.json. A variable changed in the shell that still has no effect? First look for the same variable in a settings.json, which takes precedence.
Prices per million tokens from the Kunavo catalog, alongside Anthropic’s public price listed on claude.com/pricing (read on October 3, 2026):
| Model | Kunavo (input / output) | Anthropic public price (input / output) | Difference | Typical usage |
|---|---|---|---|---|
claude-haiku-4-5 | $0.70 / $3.50 | $1.00 / $5.00 | ~30% less | Background tasks (session titles…), small fixes |
claude-sonnet-5 | $1.40 / $7.00 | $2.00 / $10.00 | ~30% less | The everyday model, configured by ANTHROPIC_MODEL |
claude-opus-5-5 | $2.80 / $14.00 | $4.00 / $20.00 | ~30% less | Refactoring an entire module, architecture planning |
To switch to Opus for the duration of a task: /model opus during the session (the alias pinned to claude-opus-5-5), or claude --model claude-opus-5-5 at startup. The monthly budget based on your usage, and the threshold at which the subscription becomes more advantageous, are quantified in the price of Claude Code. The Claude token cost calculator calculates it for your own volumes, and the pricing page lists all models.
Verify with /status
The first sign, even before /status: with ANTHROPIC_AUTH_TOKEN in place, Claude Code starts without a login screen. If this screen appears, no key was read, often because it exists only in the project settings (.claude/settings.json or .claude/settings.local.json). In an interactive session, this env block is applied only after the first-launch assistant and the folder trust prompt. Move the key to your shell or to ~/.claude/settings.json.
Once in the session, /status opens on the Status tab. Here’s how to read it, according to the gateway documentation (read on October 3, 2026):
| What you see | What it means |
|---|---|
Anthropic base URL : https://api.kunavo.com | The requests are indeed going to Kunavo. |
No Anthropic base URL line | This line exists only when a gateway is defined: ANTHROPIC_BASE_URL did not reach the session. |
Auth token naming ANTHROPIC_AUTH_TOKEN | Your Kunavo key is paying. |
Login method with a claude.ai account | The variable was not read: the session is using your subscription. |
Were you already signed in with a subscription? Claude Code may then report two active authentication sources at startup, in a warning that ends with auth may not work as expected. This is the key used for requests; /logout removes the old connection and makes the warning disappear.
To find out whether a problem comes from Kunavo or your configuration, test without Claude Code. The documentation provides a request limited to a single output token, which costs a fraction of a cent. The two commands below take the address and key from the shell: if they are defined only in settings.json, they would not be visible here.
curl -sS -w '\n%{http_code}\n' -X POST "$ANTHROPIC_BASE_URL/v1/messages" \
-H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model": "claude-sonnet-5", "max_tokens": 1, "messages": [{"role": "user", "content": "."}]}'Invoke-RestMethod -Method Post -Uri "$env:ANTHROPIC_BASE_URL/v1/messages" `
-Headers @{ "Authorization" = "Bearer $env:ANTHROPIC_AUTH_TOKEN"; "anthropic-version" = "2023-06-01" } `
-ContentType "application/json" `
-Body '{"model": "claude-sonnet-5", "max_tokens": 1, "messages": [{"role": "user", "content": "."}]}'A JSON object starting with {"id":"msg_, or in PowerShell an object whose id starts with msg_: the address and key work. A 401: the key is rejected.
What changes with an API key
- Remote Control and voice dictation disappear. Both rely on a claude.ai account and remain unavailable as long as
ANTHROPIC_AUTH_TOKENis defined. Remote Control is also disabled as soon asANTHROPIC_BASE_URLpoints to a host other than Anthropic. - Fast mode (
/fast) appears disabled, because its verification requires a claude.ai connection or an Anthropic key, not a simple bearer token. - MCP tool search is disabled by default when
ANTHROPIC_BASE_URLpoints outside Anthropic. /contextdisplays estimates. Kunavo does not offer/v1/messages/count_tokens, and in that case Claude Code counts based on the number of characters (gateway protocol documentation).
For everything else (reading and writing code, tools, sub-agents, MCP servers, hooks, prompt caching), nothing changes. The technical details, in English, are in the Claude Code integration documentation.
Paying from France or Belgium
Two payment channels not to confuse. A Claude subscription purchased on the web can be paid for only by credit or debit card (Anthropic billing FAQ, read on October 3, 2026); subscriptions purchased in the mobile app are billed through the App Store or Google Play. The amounts on claude.com/pricing exclude taxes.
Kunavo balance, by contrast, is topped up on a Stripe checkout page. The price is set in US dollars, but from France or Belgium Stripe shows you the amount in euros, at a rate guaranteed for 24 hours that includes 2 to 4% in conversion fees charged to you (Stripe documentation on Adaptive Pricing, read on October 3, 2026). You can pay in dollars to avoid these fees, but your bank will then apply its own exchange rate, and Bancontact is available only in euros. Available payment methods:
| Payment method | Where it appears | What you need |
|---|---|---|
| Visa or Mastercard | Everywhere | A debit card is sufficient; a co-badged CB card works like a Visa or Mastercard |
| Apple Pay | Safari on Mac, iPhone, and iPad | A card saved in the Cards app (Wallet) |
| Google Pay | Chrome and Android | Google Pay set up with a card |
| Link | Everywhere except India | A card saved in Link, Stripe's wallet |
| Bancontact | Belgium, amount displayed in euros | Your bank’s Bancontact app or card |
- French CB card? According to the Stripe documentation on Cartes Bancaires (read on October 3, 2026), more than 95% of CB cards are co-badged with Visa or Mastercard. They therefore go through checkout as Visa or Mastercard, and a basic debit card will do.
- Bancontact is offered to buyers located in Belgium. Stripe sends you to the Bancontact website or app to authorize the payment, and the result is known immediately (Stripe documentation on Bancontact, read on October 3, 2026).
- Pay by Bank, payment from your online bank, is not offered from France or Belgium: checkout displays it only to buyers located in the United Kingdom, Ireland, and Finland. The Stripe documentation on Pay by Bank (read on October 3, 2026) classifies it as a private preview for France and does not mention Belgium.
- From Switzerland or Canada, the amount is displayed in Swiss francs or Canadian dollars, with card and Link, plus Apple Pay and Google Pay, which rely on a card.
Not offered: PayPal, SEPA direct debit, Klarna, reserved for buyers located in the United States (paying in dollars is not enough).
- Sign up for Kunavo; no card is required at this stage.
- In Billing, choose the amount: $10 minimum. Higher amounts qualify for a bonus ($100 paid, $110 credited; $1.000 paid, $1.200 credited; $5.000 paid, $6.250 credited).
- On the Stripe page, select the payment method; the amount in euros is displayed before confirmation. With Bancontact, confirm in the app or with the card.
- Create the key at /app/keys and place it in
ANTHROPIC_AUTH_TOKEN.
The balance is prepaid: no monthly fees, no expiration date, and a failed request is not charged. Automatic top-ups require a saved card or Link. Bancontact does not support recurring payments with Stripe, so each Bancontact top-up must be initiated manually. Kunavo does not issue VAT invoices, whether French, Belgian, or from any other country; top-up history can be viewed in Billing. Finally, these payment methods are used only for the Kunavo API balance and do not pay for a Claude Pro or Max subscription. All other options, including the App Store and Google Play, are reviewed in paying for Claude without a bank card.
Common errors
| Message or symptom | Explanation and remedy |
|---|---|
The token '&&' is not a valid statement separator | The CMD line was pasted into PowerShell. Use irm … | iex. |
'irm' is not recognized as an internal or external command, or the same message in French | The PowerShell line was pasted into CMD. Use the install.cmd line. |
A parameter cannot be found that matches parameter name 'fsSL' | The macOS/Linux line was pasted into Windows PowerShell, where curl refers to Invoke-WebRequest. Use the PowerShell line. |
'bash' is not recognized as the name of a cmdlet | The macOS/Linux line was run on Windows. Use the PowerShell line. |
| The script text is displayed, but nothing is installed | The second half of the command is missing: | iex in PowerShell, the part after -o install.cmd in CMD. Copy the entire line again. |
syntax error near unexpected token '<' or 403 error | A web page arrived instead of the script. According to the official troubleshooting page, a 403 most often comes from a proxy or network filtering (corporate network) or from an unsupported region (if the received page says “App unavailable in region,” it is the country). Check the network before switching to Homebrew or WinGet: the documentation notes that they contact the same servers. |
Claude Code does not support 32-bit Windows | The window opened is Windows PowerShell (x86). Open standard Windows PowerShell. |
npm.ps1 cannot be loaded | PowerShell’s execution policy blocks npm: the Set-ExecutionPolicy line above, or the native installer. |
command not found: claude, or claude not recognized | The installation directory is missing from PATH. Open a new window first; on Windows, use the PowerShell commands in the PATH section. |
| Login screen despite the key | No key was read: it is probably only in the project settings. Put it in the shell or in ~/.claude/settings.json, then restart in a new window. |
Warning ending with auth may not work as expected | Key and previous login active together. Use /logout to keep the key, or remove the variable to return to the subscription. |
401 | Key rejected. Check that it is complete (including sk-kn-, with no spaces), that it still exists in /app/keys, and that it is correctly set in ANTHROPIC_AUTH_TOKEN. |
402 | Insufficient balance for the request: top up in Billing. Another possible cause is that the monthly spending limit set on the key has been reached. |
404 | An extra /v1 at the end of ANTHROPIC_BASE_URL, or a model that Kunavo does not serve, often because the four model variables were not pinned. |
429 or “limit reached” | Plan quota on a subscription, rate limit on a key. Case-by-case diagnosis: Claude Code: limit reached. |
Getting started in a project
In a repository that Claude Code discovers, start with /init: it explores the code and writes a CLAUDE.md documenting the test commands and conventions it finds. Review and trim this file, since it is reloaded in every session. To change the subject, /clear starts a blank conversation; to continue a long task, /compact summarizes its history.
API key limits
- You pay based on usage, not for a Claude Pro or Max plan. For several hours of Claude Code per day, every day, the subscription often wins; for irregular use, token-based billing is more flexible, and quiet months cost nothing. Figures are in Claude Code pricing.
- No Remote Control or voice dictation while the key is active.
- Kunavo capacity is shared, with no reserved quota or contractual commitment; if you need that, contract directly with Anthropic.
- Bancontact allows only manual top-ups; automatic top-ups use a saved card or Link.
- Euro amounts include Stripe’s conversion fees, and Kunavo does not issue VAT invoices.
Frequently asked questions
How do you install Claude Code on Windows?
Open PowerShell (the prompt starts with PS) and type irm https://claude.ai/install.ps1 | iex. In the standard Command Prompt (CMD), the line is different: curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd. No administrator rights or WSL are required: Claude Code runs natively starting with Windows 10 1809. Git for Windows is recommended because it provides Git Bash, but it is not required. Then close the window, open a new one, and type claude --version. Avoid Windows PowerShell (x86): Claude Code does not support 32-bit Windows.
Is Claude Code free?
The installation is, but usage is not. The free Claude.ai plan does not provide access to Claude Code: you need a Pro, Max, Team, Enterprise, or Console account, or an API key billed by usage. With Kunavo, the key is paid for from a prepaid balance starting at $10, with no monthly fees, and a month without coding costs nothing. To find out which of the two costs less at your pace, see the price of Claude Code.Which version of Node.js is required for Claude Code?
None with the native installer, Homebrew, or WinGet. Node.js is needed only if you use npm, in which case version 22 or later is required; version 18 cited by some tutorials is outdated. With an older Node.js version, npm displays an EBADENGINE warning but completes the installation because the package installs the same native binary. Do not use sudo.
How do you update Claude Code?
The native installation updates itself: the new version downloads in the background and is applied at the next launch; claude update forces the update immediately. Homebrew and WinGet do not do this themselves: brew upgrade claude-code, winget upgrade Anthropic.ClaudeCode, or the CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE=1 variable. With npm, use npm install -g @anthropic-ai/claude-code@latest, not npm update -g.
How do you use Claude Code without a subscription?
With an API key. SetANTHROPIC_BASE_URL=https://api.kunavo.com and ANTHROPIC_AUTH_TOKEN with your Kunavo key: Claude Code no longer shows the login screen and bills each request per token from your balance. Two features require a claude.ai account and then disappear: Remote Control and voice dictation. If you code for several hours every day, compare it with a subscription in the price of Claude Code.Where do you enter the API key in Claude Code?
In the env block of ~/.claude/settings.json (%USERPROFILE%\.claude\settings.json on Windows): it applies to all your projects and takes precedence over the shell. Put six lines there: ANTHROPIC_BASE_URL=https://api.kunavo.com (without /v1, otherwise 404), ANTHROPIC_AUTH_TOKEN with the key, then ANTHROPIC_MODEL=claude-sonnet-5, ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-5-5, ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-5, and ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5. These four model names prevent Claude Code’s aliases, which follow Anthropic’s new releases, from targeting a model Kunavo does not serve: the sonnet alias requests Sonnet 5.5, and without /model sonnet pinning, the execution phase of opusplan and subagents configured for sonnet receive a 404. Opus 5.5 (claude-opus-5-5) requires Claude Code v2.1.280 or later; on an older version, run claude update. Kunavo reads the key from both Authorization: Bearer and x-api-key; ANTHROPIC_AUTH_TOKEN is simply accepted without a confirmation prompt, unlike ANTHROPIC_API_KEY. Never put it in a project’s .claude/settings.json, which is committed to Git.
How do you know whether Claude Code is using your API key?
Run /status. Two lines in the Status tab are definitive: Anthropic base URL, which must show https://api.kunavo.com, and Auth token, which must name ANTHROPIC_AUTH_TOKEN. A Login method line with your claude.ai account means the session is still using the subscription. And if Claude Code opens the login screen at startup, it found no key.
Can you pay for Claude Code with Bancontact, PayPal, or SEPA direct debit?
The Kunavo API balance, yes with Bancontact: Stripe Checkout offers it to buyers located in Belgium, in euros, alongside Visa or Mastercard, Apple Pay, Google Pay, and Link. PayPal and SEPA direct debit are not supported. The price is in dollars; Stripe converts it to euros with a 2 to 4% conversion fee paid by the buyer. Minimum $10, no subscription, balance with no expiration date. Because automatic top-ups require a saved card or Link, each Bancontact top-up must be made manually. A Claude Pro or Max subscription purchased on claude.ai, however, can be paid for only by card.
What should I do when Claude Code says “limit reached”?
Start with/status to find out who is billing the session. With a subscription, the plan quota is what gets used up. With a Kunavo key, the HTTP status code decides: 402 for insufficient balance or a monthly spending limit reached, 401 for a rejected key, 429 for a rate limit. Note: ANTHROPIC_BASE_URL alone, without ANTHROPIC_AUTH_TOKEN, leaves the session on your claude.ai connection. All cases are detailed in Claude Code: limit reached.