---
title: Use a Volcano Ark Coding Plan
nav: Volcano Ark
summary: Run Agent J in mainland China on ByteDance's Volcano Ark Coding Plan: start with Lite, paste the key into the phone key card, use OpenCode or Claude Code; the default Doubao Seed 2.1 Pro reads screenshots.
order: 40
---
# Use a Volcano Ark Coding Plan

Volcano Ark is the model platform on ByteDance's Volcano Engine cloud (the company behind Douyin and Doubao). Its Coding Plan is a monthly plan for coding tools: one key opens 16 models from five vendors, Doubao, Kimi, Zhipu GLM, DeepSeek and MiniMax.

Not sure which vendor to pick? Start at [Choose by your model](/docs/models/). Installing and pairing your phone are the same for every vendor: see [Install](/docs/install/) and [Using it on your phone](/docs/phone/).

## Who it is for {#who}

- Mainland China, Claude Code and Codex not available, none of the three plans yet: **our first recommendation; start with Lite**.
- You already have an Ark Coding Plan: use it; there is nothing else to buy.
- Hong Kong or abroad: Ark's overseas edition, BytePlus, has older models and no Kimi K3, and Agent J has no one-step setup for it yet. Abroad we suggest [Kimi](/docs/kimi/).

## Sign up and pick a plan {#plan}

1. Open the official Coding Plan page https://www.volcengine.com/activity/codingplan , sign up to Volcano Engine with your phone number and complete identity verification.
2. Subscribe to the Coding Plan, **Lite to start**. Lite and Pro have exactly the same models and tools (Kimi K3 included); Pro only gives five times Lite's usage. Upgrade when you run short.

The order page is authoritative for prices: [Coding Plan promotion](https://docs.volcengine.com/docs/ark/coding-plan-personal-universal-promotion?lang=zh). When we checked on 2026-10-16, new subscribers paid a promotional price for the first two months, until 2026-11-08. Lite is the entry plan; Pro has 5 times the usage of Lite and costs more. How usage is counted: the official [Coding Plan FAQ](https://docs.volcengine.com/docs/ark/coding-plan-personal-faq?lang=zh).

## Get the key {#key}

1. Open the Ark console https://console.volcengine.com/ark/ and create a key under API Key management.
2. **Do not copy it to anyone yet.** Wait for the key card on your phone and paste it there.

## Hand the key to Agent J {#hand-over}

Tell the Agent on your computer: connect my Volcano Ark Coding Plan. It will:

1. Run this to add the plan's 16 models to OpenCode's settings. Nothing you already set is changed.

```bash
agentj provider ark
```

2. Run the key card command it prints. A key card named `ARK_CODING_PLAN_API_KEY` opens on your phone; paste the key there and nowhere else.
3. Restart the background service, then switch to Ark's default model:

```bash
agentj service restart
```

```bash
agentj agent switch opencode --model ark-coding-plan/doubao-seed-2.1-pro
```

Ark has no read-only check, so the key cannot be tested the moment you paste it. **The first reply after switching is the check**: ask which model it is; Doubao means it works.

How the key card works: [Admin rights and API keys, from your phone](/docs/phone-admin/).

## AI coding tools {#tools}

Ark has no coding command-line tool of its own. Use one of these two:

- **OpenCode (the default)**: the steps above. OpenCode not installed yet? See [Set up AI command-line tools](/docs/setup-agents/#opencode).
- **Claude Code**: if Claude Code is what you are used to. Ask the Agent to run the line below; it prints three steps to run in order: save an Ark profile, open the key card, use the profile. The last step sends one real test message and changes the settings only if it works.

<details>
<summary>Technical details: the Claude Code command</summary>

```bash
agentj provider ark --harness claude
```

</details>

Agent J points Claude Code's Haiku, Sonnet and Opus models and its subagent model at the same Ark model, so background work never asks Ark for a Claude model name and fails.

## Models and screenshots {#models}

| Use | Model | Reads screenshots |
|---|---|---|
| Default, everyday work and screenshots | `doubao-seed-2.1-pro` | Yes (tested) |
| Strongest, but uses quota fast | `kimi-k3` | Yes (tested) |
| Cheaper, fast, reads images too | `deepseek-v4-1-flash` | Yes (tested) |
| Text-only coding | `glm-5.3`, `deepseek-v4-pro`, `deepseek-v4-flash` | No |

Tested means: on 2026-10-16 we sent a software screenshot and asked the model for the dialog title, the error code, the button text and an amount in a table; it got all of them right. Send `/model` on your phone to see every model. In the OpenCode settings Agent J writes, image input is on only for models confirmed to read images; the rest are treated as text only.

With a text-only model, a screenshot from your phone or a page the browser automation needs to look at never reaches the model, and it says it got no image. Switch back to `doubao-seed-2.1-pro`.

## Common problems {#pitfalls}

- **401 or 403**: usually a mistyped key, or the plan is not active yet. Create a new key in the console and open the key card again.
- **Kimi K3 runs out quickly**: Ark says it uses quota fast and recommends it to Pro users. Lite can choose it too; switch back to Doubao before you run out.
- **A message about separate billing**: the wrong address is in use. Agent J writes the plan's own address; do not change it by hand.
- **No image generation**: the Coding Plan has no image-generation model.
- **Scheduled tasks, support bots**: the plan is for you, working interactively in a coding tool. Unattended work needs a pay-as-you-go Ark key; Agent J never hands the Coding Plan key to them.

## Switch back {#switch-back}

Tell the Agent at any time: switch back to Claude Code (or Codex). It checks first and switches only if that works. Or run it on the computer yourself:

```bash
agentj agent switch claude
```

To go straight back to the tool you used before the last switch:

```bash
agentj agent switch --undo
```

Details: [Switch AI coding tool](/docs/switch-harness/).

<details>
<summary>Technical details: addresses and names</summary>

- In OpenCode the provider is `ark-coding-plan`; models are written `ark-coding-plan/<model>`.
- OpenAI-compatible address: `https://ark.cn-beijing.volces.com/api/coding/v3`; the Anthropic-compatible address Claude Code uses: `https://ark.cn-beijing.volces.com/api/coding/v1`. Both are the plan's own addresses.
- Key variable: OpenCode reads `ARK_CODING_PLAN_API_KEY`; the Claude Code profile keeps its own private key file, whose location Agent J prints in step two.

</details>
