- Home
- Plugins
- Vision, Voice & Multimodal
- onekey-models
onekey-models
du-yuxuan/onekey-models
TokenDance gateway integration with OAuth PKCE sign-in, DSH credential-store support, live model discovery, per-model visibility, image generation and multimodal input.
Install
dsh plugin --profile web add github:du-yuxuan/onekey-modelsREADME
OneKey-Models
One-click access to all 108 latest models on TokenDance
inside DeepSeek Harness
English · 简体中文
Install · Features · What is TokenDance? · How it works · Testing · Video
API support provided by TokenDance. This plugin is an independent client of the TokenDance API platform; it is not affiliated with or endorsed by TokenDance.
Install
Clone the repository, then install it as a DSH bundle:
git clone https://github.com/du-yuxuan/OneKey-Models.git
In the DSH chat, ask the agent to install it:
install_bundle target=/absolute/path/to/OneKey-Models
Or with npm:
npm install onekey-models
node <dsh>/lib/bin.js plugin --profile <profile-name> add ./node_modules/onekey-models
Restart DeepSeek Harness (or the profile session) after installing. The settings page appears under Settings → Plugins → OneKey-Models.
Requires Node.js ≥ 22.19.0. Distributed through the DSH plugin markets,
install_bundle, npm (onekey-models) and this GitHub repository — the same bundle from every channel.
Features
| Feature | What it does | |
|---|---|---|
| 1 | API key management | OAuth (PKCE) sign-in opens the TokenDance authorization page; the returned key is stored locally in DSH's credentials store and never appears in source code or logs. |
| 2 | Model list configuration | Fetches the live catalog from https://tokendance.space/gateway/v1/models, lets you select multiple models, and choose which ones show up in the model picker (empty selection = show everything). |
| 3 | Special model configuration | Image-generation models are wired to their matching application (openai:image-generations / ark:image-generations); Jev judgment models are wired to the typesafe:systemone protocol — plus video, speech, audio, music, search, embedding and rerank models. |
| 4 | Core capabilities | Chat, image generation, video generation and multimodal (text + image) input work out of the box, exposed both to the model picker and as five agent tools (tokendance_models, tokendance_chat, tokendance_image, tokendance_video, tokendance_jev). |
Enrichment data (logos, pricing, context windows, release dates, modalities) is synced automatically from models.dev.
Catalog at a glance
catalog: 108 models from https://tokendance.space/gateway/v1/models
jev 2 · image 3 · video 18 · embedding 2 · rerank 1
speech 3 · audio 3 · music 2 · search 3
routable 71 models
✓ catalog check passed (108 models, 71 routable)
routable = models whose protocol maps onto a DSH wire protocol (openai-completions / openai-responses / anthropic-messages) and therefore appear in the model picker.
What is TokenDance?
TokenDance is an AI model aggregation gateway — think of it as one front door to many large models:
- 1 key, 1 base URL — sign up once, get one API key, point any compatible SDK at one address.
- 108 of the latest, hottest models — GLM, DeepSeek, Kimi, Qwen, MiniMax, Seedance, Doubao and more, kept up to date.
- Pay as you go — no per-vendor accounts, no juggling separate keys and billing pages.
New to all this? The short version: instead of registering with a dozen AI vendors and copying a dozen keys, you register once with TokenDance and this plugin wires every model straight into DeepSeek Harness's model picker.
This plugin does the wiring for you: install → sign in once → pick your models → they appear in the picker.
How it works
┌─────────────────┐ OAuth (PKCE) ┌──────────────────────┐
│ DeepSeek Harness │ ───────────────▶ │ tokendance.space │
│ OneKey-Models │ ◀─────────────── │ authorization page │
└────────┬────────┘ API key (local) └──────────────────────┘
│ ▲
│ write provider block │ GET /gateway/v1/models
▼ │ (live catalog)
┌─────────────────┐ │
│ llm-pi-ai │ ────────────────────────────────┘
│ providers. │
│ tokendance │ ──▶ model picker: 108 models, 71 routable
└─────────────────┘
- Sign in — the plugin opens the TokenDance authorization URL, receives a one-time code on a loopback callback, exchanges it for an API key, and stores it via DSH's credentials service (
~/.dsh/.credentials.yaml, mode600). - Pick models — the live catalog is fetched, enriched with models.dev metadata, and written into the
llm-pi-aisettings namespace as a provider block. - Use them — selected models show up in the model picker; image and Jev models additionally get dedicated tools, and any picture or video can be requested from a chat prompt.
All local HTTP endpoints are guarded by a loopback + sec-fetch-site trust fence (inbound requests must come from the local origin, never a cross-site page).
Testing
npm test # 71 unit tests (node:test)
npm run check:catalog # live catalog acceptance (108 models, 71 routable)
The unit suite covers config normalization, catalog mapping, the settings patch whitelist, Jev question validation, the five video protocols' submit-and-poll shapes, PKCE/OAuth URL construction, the trust fence, credential helpers, and the HTTP layer (exercised against a local stub gateway — no real key required).
Video

90-second intro (1920×1080, 30 fps) in nine scenes: the pain of a dozen keys, the gateway, the reveal, the three steps, the agent tools (image + video), Jev decisions, the install command, and the TokenDance credit. Rebuild it with npm run render inside video/.
Plugin page
The settings page shows the “API support provided by TokenDance” credit, the TokenDance brand mark, and a plain-language introduction of what TokenDance is. Sign-in, the balance card, redeem/top-up (as centered dialogs) and the model list all live on that one page.
Agent tools
Five tools are registered into the DSH agent registry, so a chat prompt such as “generate a video of a whale swimming” becomes a real call:
| Tool | What it does |
|---|---|
tokendance_models | Lists the live catalog, optionally filtered by capability (image, video, chat…) |
tokendance_chat | One message to one model, with optional images attached |
tokendance_image | Generates an image and returns it straight into the conversation |
tokendance_video | Submits a video task and polls it; resumable by taskId |
tokendance_jev | Asks a Jev model for typed decisions (yes/no + probability, choice, score) |
A companion skill, tokendance-media (installed to ~/.agents/skills/), teaches the agent which tool to reach for and how to read the pending / taskId outcomes. Each tool has its own on/off switch in the plugin's advanced settings.
Repository layout
index.js Host half: settings, OAuth, catalog, HTTP routes, tools
client.js Client half: settings page (slot + locale registration)
src/ config, catalog, credentials, http, image, jev, oauth,
patch, pi-ai, tools, trust, video (submit-and-poll for
seedance / kling / minimax / wan3 / happyhorse)
locale/ zh + en metadata
test/ node:test suites
scripts/ check-catalog.mjs, oauth-once.mjs
logo/ brand assets
video/ Remotion project
out/ intro.mp4 + poster
License
MIT. “TokenDance” is a trademark of its respective owner; this project is not affiliated with or endorsed by TokenDance. The API access it configures is provided by TokenDance.
Related plugins
dsh-web-ui (dsh-tool-describe-image)
zhu1090093659/dsh-web-ui
modlens
liustack/modlens
ipollowork
devin-axis/ipollowork
dsh-vision-router
ysr666/dsh-vision-router