설치
npx -y @deepseek-ai/dsh plugin --profile web add github:cradler-ai/dsh-plugin이 설치 명령은 GitHub 저장소 주소에서 생성된 확인되지 않은 시작점입니다.
README
유지 관리자가 작성한 문서 스냅샷입니다.
@cradler/dsh-plugin
Cradler Router as a provider inside DeepSeek Harness (dsh).
One API key, and Claude, GPT, Gemini, DeepSeek and Grok all show up in the dsh model picker. The model list is read live from your account, so a model added to Router appears in dsh without touching this plugin.
Install
Install into the profile you boot (dsh plugin forwards its arguments to pnpm
in that profile's directory, and --profile is required):
dsh plugin --profile web add @cradler/dsh-plugin
export CRADLER_ROUTER_KEY="sk-cr-…" # get one at https://cradler.ai/dashboard/router
Then add it to that profile's patch layer — $DSH_HOME/cordis.patch.yml for
every profile, or the profile's own layer for just one:
- id: cradler-router
name: '@cradler/dsh-plugin'
Boot dsh and pick cradler as the provider. The key is read from the
environment by default, so no secret needs to be written into a config file.
Configuration
Every field has a default; the entry above needs no config: block at all.
| Field | Default | What it is |
|---|---|---|
apiKey | $CRADLER_ROUTER_KEY | Your Router key (sk-cr-…) |
baseURL | https://router.cradler.ai/v1 | Router endpoint, /v1 included |
provider | cradler | Route name shown in model selectors |
- id: cradler-router
name: '@cradler/dsh-plugin'
config:
provider: cradler
Without a key the plugin logs where to get one and registers nothing, rather than failing the harness at boot.
What it does
Registers one LlmAdapter on ctx.llm. Requests go to Router's OpenAI chat
endpoint, which carries the whole catalog — including Claude and Gemini, whose
native protocols dsh custom providers cannot express.
The adapter honors the harness streaming contract:
usageis emitted immediately before the terminalfinish, and nothing follows it- block indices are allocated in first-seen order and reused across deltas
- tool-call arguments stay raw JSON strings, streamed as
argumentsDelta - token counts are disjoint — cache reads and cache writes are split out of the prompt total
options.signalcancels in flight- unsupported input (images) raises
LlmError('UNSUPPORTED')instead of being dropped - every request carries
attributionHeaders()
Text and tool calls are supported. Image input is not: this provider advertises text-only modality and refuses image blocks rather than silently discarding them.
Alternative: no plugin
A plain custom provider works too, since Router speaks the OpenAI protocol:
llm-pi-ai:
providers:
cradler:
apiKeyEnv: CRADLER_ROUTER_KEY
api: openai-completions
baseURL: https://router.cradler.ai/v1
models:
- id: claude-sonnet-4-6
- id: gpt-5.5
npx @cradler/router-setup <key> writes that block for you, along with configs
for Claude Code, Codex, Gemini CLI and others. The plugin adds a live model
list and first-class provider identity on top.
Development
pnpm install
pnpm build
pnpm test # contract tests over the chunk protocol
License
MIT
프로젝트 파일 및 신호
표시된 항목은 디렉터리 스냅샷에서 감지된 공개 저장소 신호입니다.
저장소 정보
- 언어
- TypeScript
- 라이선스
- 보고되지 않음
- 마지막 업데이트
- 2026. 8. 16. 오전 12:35
신중하게 설치하기
소스 코드, 권한, 수명 주기 스크립트, 의존성 및 네트워크 접근을 검토하고 신뢰하지 않는 플러그인은 격리 환경에서 테스트하세요.