@genee/omp-ark-coding-plan
v1.0.0
Published
Pi Extension: Ark Coding Plan provider with OpenAI v3 protocol, dynamic model fetching, and Chinese display names
Downloads
125
Maintainers
Readme
@genee/omp-ark-coding-plan
OMP extension plugin for Volcengine Ark Coding Plan provider. Registers the ark-coding-plan provider with dynamic model fetching, Chinese display names, and OAuth-based API key authentication.
Features
- Automatic provider registration - Runtime auto-registration via
pi.registerProvider - Dynamic model fetching - Fetches 36 usable models from Ark API, plus the
ark-code-latestauto model - Chinese display names - All models display as "火山方舟 · {friendly}" with rule-based friendly names
- OAuth authentication - Use
/loginto paste your API key; credentials stored in authStorage - OpenAI v3 protocol - Compatible with
openai-completionsAPI format
Installation
This plugin is intended for local development use. Install via symlink:
ln -s ~/Codes/ai/genee-teams/plugins/omp-ark-coding-plan ~/.omp/plugins/node_modules/omp-ark-coding-planRestart OMP to load the plugin.
Authentication
- Run
/loginin OMP - Select "火山方舟(编程)" from the provider list
- Paste your Ark Coding Plan API key (format:
ark-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) - Your API key will be stored securely in OMP's authStorage
Migration from old npm package
/loginto authenticate with the new plugin- Edit
~/.omp/agent/models.ymland delete the entireArkCodingPlan:section (you must delete this, otherwise /models will show two providers with duplicate models)
Why delete the old models.yml section?
The old ArkCodingPlan.apiKey from models.yml creates a separate provider entry with the old ArkCodingPlan id. Without deleting this section, /models will show two providers (ArkCodingPlan and ark-coding-plan) with duplicate models, and your new /login credentials won't be used for the new provider.
- Run
omp models refresh(or restart OMP) to verify the new model list
Models
The plugin fetches 36 usable models from Ark API, filtered by:
- Excludes Shutdown models
- Excludes Embedding and 3DGeneration domains
- Excludes models with "seedance", "seedream", or "embedding" in name
- Excludes models without text output modality
Plus the fixed ark-code-latest auto model, which routes to the best available model server-side.
Example models
| ID | Display Name |
| --------------------- | ------------------------------ |
| deepseek-v4-pro | 火山方舟 · DeepSeek V4 Pro |
| deepseek-v4-flash | 火山方舟 · DeepSeek V4 Flash |
| deepseek-v4-pro-ga | 火山方舟 · DeepSeek V4 Pro GA |
| glm-5-2 | 火山方舟 · GLM 5.2 |
| glm-4-7 | 火山方舟 · GLM 4.7 |
| qwen3-32b | 火山方舟 · Qwen3 32B |
| doubao-1-5-lite-32k | 火山方舟 · Doubao 1.5 Lite 32K |
| doubao-seed-2-1-pro | 火山方舟 · Doubao Seed 2.1 Pro |
| doubao-smart-router | 火山方舟 · Doubao Smart Router |
| ark-code-latest | 火山方舟 · Auto |
See omp models ls for the full list.
Naming Rules
Model display names are generated from the model ID (or name field) using these rules:
- Strip trailing date suffix:
-[0-9]{6,8}$ - Split by hyphens
- Apply vendor aliases:
deepseek→DeepSeek,doubao→Doubao,glm→GLM,qwen→Qwen,ark→Ark - Vendor prefixes with numeric suffixes preserve the suffix:
qwen3→Qwen3 - Capitalize first letter of each word
- Transform:
-ga→GA,-32k/-128k→32K/128K,-32b→32B - Separate consecutive numbers with dots:
5-2→5.2 - Prefix with "火山方舟 · "
See lib/naming.ts for the implementation and tests for examples.
Protocol
This plugin uses the OpenAI v3 protocol (openai-completions):
- Base URL:
https://ark.cn-beijing.volces.com/api/coding/v3 - Endpoints:
/chat/completions(primary),/responses(available but not configured) - Provider ID:
ark-coding-plan(matches omp naming convention)
Note: The /responses endpoint is confirmed available but not enabled via openai-responses API. Use /chat/completions for standard completions.
Note: The /responses endpoint is confirmed available but not enabled via openai-responses API. Use /chat/completions for standard completions. Anthropic protocol endpoints are not implemented.
Development
# Type check
npm run typecheck
# Run tests
bun testLicense
MIT
