To use Claude Code without buying a Pro/Max subscription, do three things: install it using the official native command (one line for each terminal, immediately below), set ANTHROPIC_BASE_URL=https://api.kunavo.com (without /v1) together with ANTHROPIC_AUTH_TOKEN and the four model-pinning variables, then type /status to confirm Claude Code is running with the key. Token charges are deducted from the prepaid balance, topped up from 10 USD with a Visa/Mastercard card or Link; MoMo, ZaloPay, and VNPay are not available. If you install with npm, the machine needs Node.js 22 or later.
# macOS, Linux, WSL
curl -fsSL https://claude.ai/install.sh | bash# Windows PowerShell
irm https://claude.ai/install.ps1 | iex:: Windows Command Prompt (CMD)
curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmdThe installation commands and variable names in this article are taken from Claude Code's official documentation, including the installation page and environment variables list, reviewed on October 3, 2026. Anthropic does not have Vietnamese versions of these pages (the /docs/vi/setup URL returned 404 on the same day), so error messages in the article are kept in English to make them easier to search for. Kunavo prices and payment methods were verified on October 10, 2026.
Choose the installation command for the terminal you have open
All installation methods install the same claude program; the difference is who handles updates. The official documentation places the native method under the “Native Install (Recommended)” tab, and it is also the only method that automatically updates to new versions without you having to do anything.
| You are using | Use the command | Updates |
|---|---|---|
| macOS, Linux, or WSL terminal | install.sh (first line above) | Automatic, runs in the background |
Windows PowerShell, with a prompt like PS C:\Users\TenBan> | irm https://claude.ai/install.ps1 | iex | Automatic, runs in the background |
Windows CMD, with a prompt like C:\Users\TenBan> (without PS) | The line with install.cmd | Automatic, runs in the background |
| Already familiar with Homebrew or WinGet | brew install --cask claude-code, winget install Anthropic.ClaudeCode | Does not update automatically by default; upgrade using the package manager itself |
| Requires npm | npm install -g @anthropic-ai/claude-code, requires Node.js 22+ | Run again with @latest |
# Homebrew (macOS, Linux) – mặc định không tự cập nhật
brew install --cask claude-code
# WinGet (Windows) – mặc định không tự cập nhật
winget install Anthropic.ClaudeCodeThe machine must meet the following requirements (according to the installation page, read on October 3, 2026):
- Operating system: macOS 13.0 or later; Windows 10 version 1809 or later or Windows Server 2019 or later; Ubuntu 20.04+, Debian 10+, or Alpine Linux 3.19+.
- At least 4 GB RAM, with an x64 or ARM64 CPU. 32-bit Windows is not supported.
- The shell must be Bash, Zsh, PowerShell, or CMD, and an Internet connection is required.
- Node.js is needed only when installing through npm, and must be version 22 or later.
After installation, do not type claude immediately in the old window: that window has not received the new PATH yet. Open another terminal and run:
claude --version # in ra số phiên bản, kèm chữ (Claude Code)
claude doctor # chẩn đoán cài đặt và file cấu hình, không mở phiên làm việcIf claude --version prints a version number, installation is complete; all later errors are configuration issues. claude doctor is useful when you are unsure where the problem is, because it checks both the installation and the settings files without opening a work session.
Windows: five common stumbling blocks
- Wrong command line pasted. PowerShell will report
The token '&&' is not a valid statement separatorwhen given the CMD line; CMD will report'irm' is not recognized as an internal or external commandwhen given the PowerShell line. Look at the prompt: if it containsPS, use theirmline; otherwise, use theinstall.cmdline. - Opened “Windows PowerShell (x86)” by mistake. This entry in the Start menu is a 32-bit process, so even on a 64-bit machine it reports
Claude Code does not support 32-bit Windows. Choose the entry without (x86). - Running as Administrator is unnecessary. The documentation does not require it, and the native version installs in the user's folder:
%USERPROFILE%\.local\bin\claude.exe. - Typing
claudereports “not recognized”. The folder above has not been added toPATH. Try a new terminal first; if it still fails, use the PowerShell snippet below to check and add the path. On macOS/Linux, the equivalent error iscommand not found: claude, and the program is located at~/.local/bin/claude. - npm reports
npm.ps1 cannot be loaded because running scripts is disabled on this system. PowerShell's execution policy is blocking the.ps1script created by npm. The documentation gives three ways out: allow the current user to run local scripts with theSet-ExecutionPolicycommand below, callnpm.cmdandclaude.cmdinstead of the.ps1version, or skip npm and use the native command.
# 1. Kiểm tra thư mục cài đặt đã có trong PATH chưa
$env:PATH -split ';' | Select-String '\.local\\bin'
# 2. Không có kết quả nào? Thêm vào PATH của người dùng, rồi đóng và mở lại terminal
$currentPath = [Environment]::GetEnvironmentVariable('PATH', 'User')
[Environment]::SetEnvironmentVariable('PATH', "$currentPath;$env:USERPROFILE\.local\bin", 'User')
# 3. Trong terminal mới
claude --versionSet-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUserNative or WSL? If your project is on Windows, running natively is sufficient. In that case, Git for Windows is optional: with it, Claude Code runs commands through Git Bash; without it, Claude Code uses PowerShell. If Git is installed but Claude Code cannot find Git Bash, set CLAUDE_CODE_GIT_BASH_PATH in the env block of ~/.claude/settings.json, pointing to bash.exe (the documentation gives C:\Program Files\Git\bin\bash.exe as an example). Choose WSL 2 when you need Linux tools or want commands to run in a sandbox, because the sandbox is only available on WSL 2; neither native Windows nor WSL 1 supports it. WSL 1 is only an option if your machine cannot enable WSL 2. If you choose WSL, install it with the install.sh command and run claude entirely in the WSL terminal.
Installing through npm: requirements and three notes
npm makes sense if you already manage command-line tools with Node, or if your company network only allows package downloads through the npm registry. The requirement is Node.js 22 or later; the Node 18 requirement mentioned in many older articles is no longer correct. Notably, an older Node version will not prevent installation: npm only prints a EBADENGINE warning, because the program that actually runs is a native executable downloaded by the npm package and does not depend on Node. If your machine does not have Node, get version 22 or later from nodejs.org.
node -v # cần v22 trở lên
npm install -g @anthropic-ai/claude-code # không dùng sudo
# nâng cấp bằng @latest, không dùng npm update -g
npm install -g @anthropic-ai/claude-code@latest- Do not use
sudo npm install -g: the documentation warns that this causes permission errors and is a security risk. - Upgrade with
npm install -g @anthropic-ai/claude-code@latest;npm update -gis not the recommended method. - The native program comes from an optional dependency (the
@anthropic-ai/claude-code-*package corresponding to your platform). The--omit=optionalflag, theoptional=falseline in.npmrc, or--ignore-scriptswill omit it, and on macOS/Linux you will getclaude native binary not installed.
Is a VPN required? Errors while downloading the installation script
No. Vietnam is on the list of countries supported by Anthropic for both Claude.ai and the API (checked on October 3, 2026). VPNs are more often the cause of problems: according to the installation troubleshooting page (accessed on October 3, 2026), when the installation address returns App unavailable in region, Claude Code is unavailable in the location where your connection appears to be. If you see this message in Vietnam, turn off any VPN or proxy set to another country and try again.
The two remaining errors have the same root cause: syntax error near unexpected token '<' or curl: (22) The requested URL returned error: 403 means that instead of the script, you received an HTML page or an error code. A corporate network with a proxy or firewall blocking file downloads is the first suspect. Do not immediately switch to Homebrew, WinGet, or npm: the documentation recommends checking the network connection first, because the alternative installation methods also download from the same server. Try another network or ask IT to unblock it.
API key configuration: run Claude Code without a Pro/Max subscription
Claude Code authenticates in one of two ways. The table below provides a quick comparison; the rest of the article follows the right-hand column.
| Sign in to a Claude account | Kunavo API key | |
|---|---|---|
| Requirements | Pro, Max, Team, Enterprise plan, or Console account. The free Claude.ai plan does not include Claude Code. | A sk-kn-… key set in an environment variable. No subscription, no login. |
| Pricing | Monthly: Pro is USD 20/month (USD 17/month with annual billing, or USD 200 charged once), and Max starts at USD 100/month; taxes are not included (claude.com/pricing, accessed on October 3, 2026). | Based on the tokens actually used, deducted from the prepaid balance topped up from 10 USD. No monthly fee, balance never expires, failed requests are not charged. |
| Pay with | Purchases on Anthropic's website can be made only with a credit or debit card (Claude billing FAQs, accessed on October 3, 2026). | Visa, Mastercard, or Link; Apple Pay or Google Pay if the device supports it. MoMo, ZaloPay, and VNPay are not available. |
| What is missing | — | Remote Control and voice input. No VAT invoices. |
Pointing Claude Code to a service other than Anthropic is not a hack: the official documentation describes ANTHROPIC_BASE_URL as the variable used to override the API endpoint when going through a proxy or gateway. Kunavo uses the Anthropic Messages API protocol exactly, so you use Claude Code as-is, with no plugin or patch. Exactly six variables are required:
| Variable | Value | Purpose and failure mode |
|---|---|---|
ANTHROPIC_BASE_URL | https://api.kunavo.com | Domain name only. Claude Code appends /v1/messages automatically; adding /v1 makes the request /v1/v1/messages and returns 404. |
ANTHROPIC_AUTH_TOKEN | Key sk-kn-… | Sent in the Authorization: Bearer header, effective immediately, with no confirmation step. |
ANTHROPIC_MODEL | claude-sonnet-5 | Primary model (Claude Sonnet 5). The name must match Kunavo's list character for character; old-style names with date suffixes are not automatically converted. |
ANTHROPIC_DEFAULT_OPUS_MODEL | claude-opus-5-5 | Pin the opus alias (and opusplan while in plan mode) to Claude Opus 5.5, so it does not move to the latest Opus version. Claude Code v2.1.280 or later is required; on older versions, run claude update. |
ANTHROPIC_DEFAULT_SONNET_MODEL | claude-sonnet-5 | The sonnet alias points to Sonnet 5.5 by default, a model Kunavo does not provide. Without pinning, /model sonnet, the execution phase of opusplan, and subagents set to model: sonnet all return 404. |
ANTHROPIC_DEFAULT_HAIKU_MODEL | claude-haiku-4-5 | The haiku alias and Claude Code's background tasks all use this model. If it is not pinned, this alias requests an ID that Kunavo does not offer (Haiku 5.5 from v2.1.293 onward), so /model haiku and subagents set to model: haiku both receive 404s. |
Where to set the variables
The simplest way to use it long term is the env block in the user's settings file, ~/.claude/settings.json (Windows: %USERPROFILE%\.claude\settings.json). This file applies to every project; if it already contains content, only add 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"
}
}If you prefer to keep it in the shell, add it to ~/.zshrc or ~/.bashrc. On Windows, the second snippet below (the $env: lines) is suitable for a quick test, but the variables disappear as soon as you close the PowerShell window.
export ANTHROPIC_BASE_URL=https://api.kunavo.com # chỉ tên miền, không thêm /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-5# Chỉ có hiệu lực trong cửa sổ PowerShell này, đóng cửa sổ là mất
$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"
claudeThree things to know before you run into trouble:
- Do not put a key in the project's
.claude/settings.json. The gateway connection documentation notes that this file is committed, so anyone who clones the repository can access it. - Settings files take precedence over the shell. If a variable exists in both places, the value in the
envblock of the settings file is used. If you change it in the shell and nothing changes, check the settings file first. - The first run requires a user-level key. In interactive mode, the
envblock in.claude/settings.jsonor.claude/settings.local.jsonat the project level only takes effect after the initial wizard and the question asking whether you trust the folder. If the key is only there, the login screen still appears at first launch.
ANTHROPIC_AUTH_TOKEN or ANTHROPIC_API_KEY, and the “403 error” issue
Kunavo reads the key from both Authorization: Bearer and x-api-key, so either variable can connect. The difference is on Claude Code's side. According to the environment variables documentation (accessed on October 3, 2026), ANTHROPIC_AUTH_TOKEN goes in the Authorization header with the Bearer prefix and takes effect immediately. ANTHROPIC_API_KEY goes in the X-Api-Key header, and in interactive mode Claude Code asks once whether you want to use this key instead of your subscription. If you answer “no,” the key is ignored and Claude Code will not ask again; to enable it, go to /config, then Use custom API key. This article uses ANTHROPIC_AUTH_TOKEN only to skip that prompt.
Some Vietnamese guides say that ANTHROPIC_API_KEY makes Claude Code ignore ANTHROPIC_BASE_URL, call api.anthropic.com directly, and receive a 403. Neither the environment variables documentation nor the gateway connection documentation (accessed on October 3, 2026) says this: the two variables are two ways to pass the key to the same gateway in ANTHROPIC_BASE_URL. If you actually get a 403 after changing the variable, check the base URL and key instead of switching back and forth between variable names.
Why pin models, and how much each model costs
Claude Code aliases do not stay fixed. According to the model configuration documentation (accessed on October 3, 2026), for API users the default model and the opus alias currently point to Opus 5.5, while the sonnet alias points to Sonnet 5.5; the documentation also says aliases “are updated over time” and recommends using full names or the ANTHROPIC_DEFAULT_*_MODEL variables when you need to pin a model. As of October 3, 2026, Kunavo has Opus 5.5 but not Sonnet 5.5. If you skip pinning, the default session runs Opus 5.5, which costs more than Claude Sonnet 5; /model sonnet, the execution phase of opusplan, and subagents set to model: sonnet return 404; and the next time the opus alias switches to a new Opus version, that version may not yet be available on Kunavo. That is why the configuration above pins the sonnet alias to claude-sonnet-5 with ANTHROPIC_DEFAULT_SONNET_MODEL, and pins the opus alias to Opus 5.5 (claude-opus-5-5). Opus 5.5 requires Claude Code v2.1.280 or later; on an earlier version, run claude update.
Kunavo prices, calculated per million tokens (input / output): Claude Sonnet 5 1.40 USD / 7.00 USD (Anthropic pricing: 2.00 USD / 10.00 USD); Claude Opus 5.5 2.80 USD / 14.00 USD; Claude Haiku 4.5 0.70 USD / 3.50 USD.
Check with /status
When ANTHROPIC_AUTH_TOKEN has been read, the claude command goes straight into the work session, with no login screen (according to the gateway connection documentation, read on October 3, 2026); the first run still has a few setup steps, such as the folder trust prompt. If you see the login screen, the key has not reached the right place. In the session, type /status and look for:
Anthropic base URL:https://api.kunavo.com. This line appears only when a gateway address is present; its absence meansANTHROPIC_BASE_URLdid not reach the session.Auth token:ANTHROPIC_AUTH_TOKEN. If this showsLogin methodtogether with a claude.ai account, the session is still using the saved login.
To make sure the key and address are correct before opening Claude Code, send a test request asking for exactly 1 output token (this costs a very small amount from the balance). The command reads the variable from the current shell, so if the key is only in the settings file, export it in this terminal first. A result beginning with {"id":"msg_ is good; 401 means the key was rejected.
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": "."}]}'The PowerShell version of the same test; on success, the id field in the result begins with msg_:
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": "."}]}'What you lose by using an API key
- Remote Control and voice input require a claude.ai identity, so they do not run when
ANTHROPIC_AUTH_TOKENis active. Remote Control is also disabled whenANTHROPIC_BASE_URLpoints to a server other thanapi.anthropic.com. /fastreportsFast mode has been disabled by your organization: according to the gateway connection documentation, the fast mode check requires a claude.ai login or an Anthropic API key, so with a bearer token Claude Code treats it as disabled and does not query the server.- MCP tool search is disabled by default when the base URL is not Anthropic's.
- The figures in
/contextare estimates: Kunavo does not have a/v1/messages/count_tokensendpoint, and according to the gateway protocol documentation (accessed on October 3, 2026), when this endpoint is unavailable Claude Code estimates token counts based on character counts.
Integration details are in the Claude Code integration documentation (in English); the corresponding English article is Install Claude Code.
Adding funds from Vietnam: cards or Link, no local e-wallets
To be direct: Kunavo does not accept MoMo, ZaloPay, VNPay, or bank transfers. Domestic ATM cards that only use the Napas network also cannot be used because they are not Visa or Mastercard cards. Kunavo's Stripe checkout page offers the following options for buyers in Vietnam:
- Visa or Mastercard cards, including international credit or debit cards.
- Link, Stripe's wallet, saves your payment method to make future payments faster (Link documentation, accessed on October 3, 2026).
- Apple Pay or Google Pay appears only on devices and in browsers where a wallet is set up, since payments are made using a card stored in the wallet. Apple Pay has been available in Vietnam since 08/08/2023 and can be used for online purchases (Apple Newsroom Vietnam, accessed on October 3, 2026).
The same applies to Anthropic: Claude subscriptions purchased on the website accept only credit or debit cards (Claude billing FAQs, accessed on October 3, 2026), so Vietnamese digital wallets cannot be used to pay there directly. Subscriptions purchased through the iOS or Android app use the payment method for the App Store or Google Play. The difference is that money added to Kunavo becomes an API balance, and Claude Code deducts the cost per token after you configure a key as described above.
Paying in VND or USD
Kunavo lists prices in USD. Because Vietnam is among the markets covered by Stripe Adaptive Pricing (accessed on October 3, 2026), checkout may show an amount converted to VND, and the exact amount is always displayed before you confirm. Stripe's exchange rate includes a 2–4% conversion fee, paid by the buyer. Choosing to pay in USD avoids this fee, but your card issuer may apply its own exchange rate and fees.
Paying in VND is not necessarily cheaper: some banks charge a fee when a card pays in VND to a merchant registered abroad. For example, Techcombank charges a “domestic-currency transaction fee abroad” of 1.1% of the transaction amount (including VAT) for Visa debit cards, effective from 13/08/2023 (Techcombank FAQs, accessed on October 3, 2026). This is only one bank's example, and Kunavo has not verified whether the bank classifies Kunavo transactions this way. Check your card's fee schedule before choosing VND or USD.
A declined card is usually caused by online or international payments not being enabled in the banking app. Enable them and try again, or switch to Link or Apple Pay/Google Pay with a card supported by that wallet.
From registration to getting a key
- Sign up for Kunavo with an email address or Google account; this step does not ask for a card.
- Open Billing and select a top-up amount (minimum 10 USD). Larger amounts include an additional: top up 100 USD to receive 110 USD in your balance; top up 1.000 USD to receive 1.200 USD in your balance; top up 5.000 USD to receive 6.250 USD in your balance.
- On the Stripe page, choose a card, Link, or a wallet available on your device, review the amount, and confirm.
- Go to API Keys and create a
sk-kn-…key. The key is shown only once, so copy it intoANTHROPIC_AUTH_TOKENimmediately.
To automatically top up when the balance is low, you must use a saved card or Link. Balances do not expire, and failed requests are not charged. Kunavo does not issue VAT invoices, including electronic invoices required under Vietnamese regulations; view your top-up history in Billing. This balance can only be used for Kunavo's API; it cannot pay for Claude Pro, Claude Max, or ChatGPT Plus.
How much does a coding session cost?
Each time, Claude Code sends the entire conversation context back, so the cost depends heavily on caching: repeated context is charged at the much lower cache-read price. The following table is a paper calculation based on the stated assumptions, not an actual measurement or a cap:
- each request has 40,000 input tokens: 36,000 tokens (90%) read from cache and 4,000 tokens written to cache;
- each request has 1,000 output tokens;
- a session has 50 requests, excluding background Claude Haiku 4.5 runs;
- with Claude Sonnet 5 on Kunavo, cache reads use 10% times the input price and cache writes use 1.25 times the input price; each model in the table uses its own rate.
| Model | One request | 50 requests | 50 requests, with no cache hits |
|---|---|---|---|
| Claude Sonnet 5 | 0.019 USD | 0.95 USD | 3.15 USD |
| Claude Opus 5.5 | 0.033 USD | 1.65 USD | 6.30 USD |
The final column shows how important caching is. Long context, long answers, or forgetting /clear between different tasks all increase the figure. A subscription-versus-API comparison and monthly estimates are available in How much does Claude Code cost?; see the Claude API pricing table or pricing page for per-model prices; to enter your own figures, use the Claude token cost calculator (in English).
Troubleshooting by message
| When | What you see | Resolution |
|---|---|---|
| Installation | The token '&&' is not a valid statement separator | You pasted a CMD command into PowerShell. Use irm … | iex. |
| Installation | 'irm' is not recognized as an internal or external command | You pasted a PowerShell command into CMD. Use the install.cmd command. |
| Installation | syntax error near unexpected token '<', 403, App unavailable in region | You receive an HTML page instead of the script. Disable a VPN/proxy in another country and try a different network before changing the installation method (the other methods download from the same server). |
| Installation | Claude Code does not support 32-bit Windows | You have PowerShell (x86) open. Open regular “Windows PowerShell”. |
| Installation (npm) | EBADENGINE warning | Node.js is below 22. Installation still completes, but upgrading Node is recommended. |
| Installation (npm) | claude native binary not installed | An optional dependency is missing because of --omit=optional, optional=false, or --ignore-scripts. Remove that setting and reinstall. |
| Installation (npm) | npm.ps1 cannot be loaded | The execution policy is blocking the script. Run Set-ExecutionPolicy above, use npm.cmd, or switch to the native command. |
| After installation | command not found: claude, 'claude' is not recognized | The installation directory is not yet in PATH. Open a new terminal; on Windows, run the PowerShell snippet to add it to PATH. |
| Configuration | The login screen still appears | The key has not been read. Set it in the shell or the user's ~/.claude/settings.json, not just in the project configuration; open a new terminal. |
| Configuration | 401 | The key was rejected: it was copied incompletely, has extra spaces, was deleted in /app/keys, or is in the wrong variable. |
| Configuration | 404 | The base URL has an extra /v1, or the model is unavailable on Kunavo (usually the unpinned sonnet alias, which currently points to Sonnet 5.5). |
| Adding funds | Card declined | Enable online and international payments in the banking app; cards that only support Napas cannot be used. Or try Link, Apple Pay, or Google Pay. |
Before adding funds
- Only Visa/Mastercard cards, Link, and card-based wallets are supported; not MoMo, ZaloPay, VNPay, or bank transfers.
- Automatic top-ups work only with a saved card or Link. Kunavo does not issue VAT invoices.
- This is a token-based pay-as-you-go API, not a Claude Pro/Max plan: Remote Control and voice input are unavailable,
/fastis reported as disabled, and MCP tool search is disabled by default. - As of October 3, 2026, Kunavo does not have Sonnet 5.5, so the unpinned
sonnetalias will return 404. - Claude Code's documentation and Kunavo's integration documentation are currently available only in English.
Frequently asked questions
Is Claude Code free? What does “Claude Code does not require a subscription” mean?
Downloading and installing Claude Code is free, but for it to respond you need one of two things: sign in with a paid Claude plan (Pro, Max, Team, Enterprise) or a Console account, or use an API key. The free Claude.ai plan does not include Claude Code. “No subscription required” means the second option: set ANTHROPIC_BASE_URL=https://api.kunavo.com and ANTHROPIC_AUTH_TOKEN, and Claude Code skips the login step and charges for the tokens actually used from your prepaid Kunavo balance, with a minimum of 10 USD and no monthly fee.
What is the Claude Code installation command on Windows? Do I need to install WSL or run it as Administrator?
Open PowerShell (the prompt starts with PS) and run irm https://claude.ai/install.ps1 | iex; if you are in CMD, use curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd. Administrator privileges, WSL, and Git are not required. If Git for Windows is installed, Claude Code runs commands through Git Bash; otherwise, through PowerShell. WSL 2 is worth installing only when you need Linux tools or want commands to run in a sandbox. Be sure to open “Windows PowerShell”, not the entry containing (x86), because Claude Code does not run on 32-bit Windows.
Which Node.js version is required to install Claude Code with npm?
Node.js 22 or later, according to the official installation documentation read on October 3, 2026. Many older articles still say Node 18; that figure is outdated. An older Node version only causes npm to print an EBADENGINE warning; installation still completes because the npm package actually downloads a native program that runs without Node. The installation command is npm install -g @anthropic-ai/claude-code (without sudo); to upgrade to the latest version, run it again with @latest instead of using npm update -g. If you have no specific reason to use npm, the native command is simpler.
Where do I enter the API key for Claude Code? Should ANTHROPIC_BASE_URL include /v1?
The most durable place is the env block in the user's ~/.claude/settings.json file (Windows: %USERPROFILE%\.claude\settings.json), which applies to every project; you can also export it in ~/.zshrc, ~/.bashrc, or PowerShell's $PROFILE. The base URL is only https://api.kunavo.com, without /v1, because Claude Code adds /v1/messages automatically; an extra /v1 becomes /v1/v1/messages and returns 404. Do not put the key in the project's .claude/settings.json: that file is in the repository and is included every time it is cloned.
An article says using ANTHROPIC_API_KEY results in 403. Is that true?
That is not correct according to the official documentation. Both ANTHROPIC_API_KEY and ANTHROPIC_AUTH_TOKEN are sent to the address in ANTHROPIC_BASE_URL; they differ in the header (X-Api-Key versus Authorization: Bearer) and in that ANTHROPIC_API_KEY must be approved by you once in interactive mode. Kunavo reads the key from both headers. This article recommends ANTHROPIC_AUTH_TOKEN only because it works immediately. If you accidentally click reject in that prompt, the key is ignored without asking again; go to /config and enable Use custom API key.
Which model does Claude Code run if ANTHROPIC_MODEL is not set?
It runs by alias, and aliases gradually change over time. The model configuration documentation (read on October 3, 2026) says that for API users, the default and the opus alias are currently Opus 5.5, while the sonnet alias is Sonnet 5.5. Kunavo has Opus 5.5 but not Sonnet 5.5, so an unpinned session runs Opus 5.5 at a higher price of Claude Sonnet 5, while /model sonnet, the execution phase of opusplan, and subagents with model: sonnet all return 404. Pin 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 so you know which model each turn is being charged for. Pinning the opus alias to Opus 5.5 requires Claude Code v2.1.280 or later; on older versions, run claude update.
What should /status show to confirm that it is running with an API key?
Two lines: “Anthropic base URL” is https://api.kunavo.com, and “Auth token” says ANTHROPIC_AUTH_TOKEN. If it instead shows “Login method” with a claude.ai account, the session is still using the previous login; log out, open a new terminal, and check where the variable was set. You can test the key before opening Claude Code with a curl command sent to /v1/messages with max_tokens set to 1: a JSON response beginning with {"id":"msg_ is good; 401 means the key was rejected.
Do I need a VPN to install or use Claude Code in Vietnam?
No. Vietnam is on Anthropic's list of supported countries for both Claude.ai and the API (checked on October 3, 2026). Conversely, if a VPN routes the connection through an unsupported country, the installation address may return an “App unavailable in region” page instead of the script. If you encounter that error while in Vietnam, turn off the VPN or proxy and run the installation command again.
Can I top up with MoMo, ZaloPay, or VNPay? Are VAT invoices available?
Neither is available. Kunavo's Stripe payment page lets buyers in Vietnam choose Visa, Mastercard, or Link, and Apple Pay or Google Pay if the device already has it set up; MoMo, ZaloPay, VNPay, and bank transfers are not available. The amount may be shown in VND, in which case Stripe's exchange rate includes a 2–4% conversion fee paid by the buyer; if you choose to pay in USD, there is no such fee, but your bank may charge its own exchange rate and fees. The minimum top-up is 10 USD, the balance does not expire, and automatic top-up works only with a saved card or Link. Kunavo does not issue VAT invoices, including electronic invoices.