HiSeax
dsh-codely
DSH in-process LLM adapter for the Codely LiteLLM gateway (codely.tuanjie.cn). No login state bundled — bring your own registered account credentials.
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 15, 2026
- Updated
- Aug 15, 2026
Introduction
dsh-codely
English | 简体中文
In-process DSH (DeepSeek Harness) LLM adapter: use the Codely LiteLLM gateway (codely.tuanjie.cn) directly as a model backend inside DSH — no local proxy process needed.
⚠️ Unofficial integration based on the Codely CLI protocol; may break when the gateway changes. No login state is bundled with this package — you must register your own account and provide your own credentials.
Before you start: register & obtain your own login state
- Register an account at https://codely.tuanjie.cn.
- Provide credentials to the plugin in one of two ways:
Way A — static API key (simplest)
Get an sk- API key from your Codely account (or from the official Codely CLI), then provide it through:
- plugin config
apiKey, or - environment variable
CODELY_API_KEY.
The plugin uses the key directly and never touches any local login files.
Way B — official CLI login state
Install the official Codely CLI, launch it and log in with your own registered account. The login writes the state files the plugin reads:
~/.codely-cli/oauth_creds.json
~/.codely-cli/org.json
The plugin reads these by default; point it at your own login directory with the codelyHome config if yours lives elsewhere. This also enables automatic OAuth token refresh when the gateway returns 401/403.
On first launch without any credentials, the plugin fails with a clear error pointing to this README — it never falls back to anyone else's login state.
Install (web profile)
dsh plugin --profile web add dsh-codely
Then register the row in $DSH_HOME/profiles/web/cordis.patch.yml:
- insert:
- id: codely
name: 'dsh-codely'
config:
apiKey: 'sk-...' # optional if CODELY_API_KEY is set
# codelyHome: 'C:\\Users\\you\\.codely-cli' # optional login-state dir
DSH hot-reloads the patch. The codely provider appears in the model list.
Configuration
| Field | Default | Meaning |
|---|---|---|
apiKey | CODELY_API_KEY env | Static sk- key from your own Codely account |
codelyHome | ~/.codely-cli | Directory holding your own oauth_creds.json + org.json (official CLI login state) |
baseURL | https://codely-litellm.tuanjie.cn/v1 | LiteLLM gateway base URL |
models | GLM-5.3 only | Model list exposed to DSH |
sessionId | random UUID | litellm session id |
clientHeaders | gateway-required headers | UA / X-Stainless / litellm_session_id |
retryPolicy | resolved default | LLM retry policy |
Verify
cd <package>
node test/smoke.mjs
# expects your credentials; prints the exchanged key prefix and a model reply
Development & publishing
npm pack --dry-run
npm publish
No credentials are ever included: the published tarball contains only lib/ plus docs. Add your own secrets at runtime via config or environment variables.
Notes
- Login credentials are resolved in this order: config
apiKey→CODELY_API_KEY→codelyHomelogin state. - The adapter caches the exchanged
sk-key and OAuth access token in-process, and refreshes once on 401/403. - Unofficial reverse-engineered protocol — gateway updates may break it.