Model guidesBeginnersUpdated

How to use Doubao Seed 2.1 Turbo with Claude Code

Configure your I Code Easy API Key, root URL https://api.icodeeasy.cc, and model doubao-seed-2.1-turbo in Claude Code to use Doubao Seed 2.1 Turbo. This guide covers macOS, Linux, Windows, verification, and troubleshooting.

Distinguish the model, client, and account

Doubao Seed 2.1 Turbo is a text model; Claude Code is Anthropic’s coding client. This setup selects Doubao and does not imply a Claude model handles the request. Seed text models are separate from Seedream image generation and Seedance video generation.

Use an I Code Easy API Key here, not a Volcengine / Ark official key, official plan, or login for the Doubao consumer app. Keys and URLs from different services are not interchangeable.

Before you start

  1. Install the client using the Claude Code guide; see environment setup for system and terminal preparation.
  2. Register and copy your service Key from API Keys. Store it only in your local configuration.
  3. Check current pricing and usage and the model capability catalog for publicly supported features.

Use doubao-seed-2.1-turbo directly in new configurations. The old name doubao-seed-2.0-pro is transparently upgraded to Seed 2.1 Turbo and no longer selects a separate older model. The three ANTHROPIC_DEFAULT_*_MODEL variables also map the Haiku, Sonnet, and Opus aliases to this model.

Linux / MacOS

Paste this configuration into the terminal where you will run Claude Code. Replace the placeholder with your service Key. These values initially apply to the current terminal session:

export ANTHROPIC_AUTH_TOKEN="your I Code Easy API Key"
export ANTHROPIC_BASE_URL="https://api.icodeeasy.cc"
export ANTHROPIC_MODEL="doubao-seed-2.1-turbo"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="doubao-seed-2.1-turbo"
export ANTHROPIC_DEFAULT_SONNET_MODEL="doubao-seed-2.1-turbo"
export ANTHROPIC_DEFAULT_OPUS_MODEL="doubao-seed-2.1-turbo"
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC="1"

To persist the settings, add the same export lines to your shell’s startup file: ~/.zshrc for zsh or ~/.bashrc for bash. Run only the line that matches your shell:

source ~/.zshrc
source ~/.bashrc

You can also open a new terminal. An existing Claude Code process will not pick up changed environment variables; exit it and launch it again from the configured terminal.

Windows

To configure only the current PowerShell session, run:

$env:ANTHROPIC_AUTH_TOKEN = "your I Code Easy API Key"
$env:ANTHROPIC_BASE_URL = "https://api.icodeeasy.cc"
$env:ANTHROPIC_MODEL = "doubao-seed-2.1-turbo"
$env:ANTHROPIC_DEFAULT_HAIKU_MODEL = "doubao-seed-2.1-turbo"
$env:ANTHROPIC_DEFAULT_SONNET_MODEL = "doubao-seed-2.1-turbo"
$env:ANTHROPIC_DEFAULT_OPUS_MODEL = "doubao-seed-2.1-turbo"
$env:CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC = "1"

For persistence at user level, run this code in the same window after setting the variables above. It saves those seven values to your user environment:

$names = @(
  "ANTHROPIC_AUTH_TOKEN",
  "ANTHROPIC_BASE_URL",
  "ANTHROPIC_MODEL",
  "ANTHROPIC_DEFAULT_HAIKU_MODEL",
  "ANTHROPIC_DEFAULT_SONNET_MODEL",
  "ANTHROPIC_DEFAULT_OPUS_MODEL",
  "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC"
)
foreach ($name in $names) {
  $value = [Environment]::GetEnvironmentVariable($name, "Process")
  [Environment]::SetEnvironmentVariable($name, $value, "User")
}

User environment values are read by processes launched later. Open a new PowerShell window after saving. If you use VS Code or another integrated terminal, restart its host application too, then launch Claude Code.

Verify locally, then send a real request

First confirm the client is installed. This command prints its version without making a model request:

claude --version

Check whether the Key exists using a boolean result; do not print the Key itself:

macOS / Linux:

test -n "$ANTHROPIC_AUTH_TOKEN" && echo true || echo false

PowerShell:

[bool]$env:ANTHROPIC_AUTH_TOKEN

Run claude from the configured terminal, then enter /status in the client to inspect the model and connection settings. The status screen is a configuration clue. Seeing Claude Code, Haiku, Sonnet, or Opus in the interface alone does not prove that a Claude model handled a request.

Next, send a short prompt yourself in Claude Code, such as “Reply only OK.” This makes a real request and is billed under current rules. Check request logs for success, the recorded model, and charges. Do not rely on the model’s self-identification in its reply.

Common errors and troubleshooting

SymptomFirst checks
401 / authentication failedUse your service Key without extra spaces; check whether it was rotated and whether the URL and Key belong to the same service. Do not share the Key for inspection.
403 / access deniedCheck account status and current model access. Send support the error text and time without the Key.
429 / request limitedRead the full error and dashboard status; reduce concurrency and retry later. A 429 does not always mean insufficient balance.
Claude names still appearCheck ANTHROPIC_MODEL and all three default variables. Client names, model aliases, and the request model are distinct; cross-check request logs.
Settings do not applyExit the old client and launch from a new terminal. Check startup files, user environment, and client settings for conflicting values; ensure you edited the shell you actually use.
Timeout / network errorCheck your local proxy and connection. Try the JP/SG URLs below, then see connection troubleshooting.

If the main domain is slow, replace only ANTHROPIC_BASE_URL; keep other variables unchanged. The backup URLs also omit /v1:

https://jp.icodeeasy.cc
https://sg.icodeeasy.cc

Restart Claude Code after switching, then repeat verification. For troubleshooting, share the error code, time, and redacted logs, never the raw Key.