설치
npx -y @deepseek-ai/dsh plugin --profile web add github:rainforest888/dsh-plugins-raincode이 설치 명령은 GitHub 저장소 주소에서 생성된 확인되지 않은 시작점입니다.
README
유지 관리자가 작성한 문서 스냅샷입니다.
dsh-raincode
Make raincode the model layer of DeepSeek Harness (dsh): a cheap model pool
with StablePrefix prompt caching, retries, and failover, driven by a local
OpenAI-compatible gateway. Inside dsh you can pick any model from your raincode
pool and browse the raincode skill library with /skills.
The plugin is the "mouth" — it translates dsh's GenerateOptions to the OpenAI
wire format and streams chunks back — while the raincode gateway (Rust) is the
"brain" that owns profile selection, caching, and retries. The plugin holds no
model logic.
Prerequisites
-
Install raincode (
>= 0.1.0with gateway/v1/modelsand/skills):cd raincode cargo install --path crates/rc-cli # or use ./install.sh -
Configure profiles (your model pool):
raincode setup # writes ~/.raincode/profiles.toml -
Start the gateway (keep it running):
raincode proxy --port 8787Verify:
curl http://127.0.0.1:8787/health→{"ok":true,"service":"raincode-gateway"}.
Install in dsh
dsh plugin --profile web add dsh-plugins-raincode
Then add the row to the profile's patch layer
(~/.dsh/profiles/web/cordis.patch.yml, or ~/.dsh/cordis.patch.yml for every
profile):
- insert:
- id: raincode
name: dsh-plugins-raincode
config:
baseURL: http://127.0.0.1:8787
apiKeyEnv: RAINCODE_API_KEY
dsh --profile web --dump-config should show the raincode row; restart
dsh web to load it.
Configuration
| Field | Default | Meaning |
|---|---|---|
baseURL | http://127.0.0.1:8787 | raincode gateway address |
apiKeyEnv | RAINCODE_API_KEY | dsh credential seam only; a loopback gateway does not verify keys (missing credentials don't block it) |
models | [] | optional static catalog override; empty fetches the pool from the gateway's /v1/models |
streamIdleTimeoutMs | 300000 | stream idle timeout (dsh-timeout helper) |
retryPolicy | dsh default | retry policy via RetryPolicySchema |
What you get
- Model selection — dsh's model picker shows the raincode pool (fetched
from the gateway's
/v1/models); the chosen model maps exactly to a gateway profile. /skillsbrowsing — run/skillsto list the raincode skill library,/skills <name>to read a skill's body. Data comes from the gateway's/skillsendpoint (~/.raincode/skills/).- Caching & retries — prompt caching (
sessionId→prompt_cache_key) and retry/failover are handled by the gateway per profile; nothing to configure in dsh. - Parallel tool calls — tool calls stay separate blocks keyed by call index; fragmented arguments accumulate per call.
FAQ
- Gateway not running? You'll see
TRANSPORT-style errors from the model call. Start it withraincode proxy --port 8787. - Why is the API key a formality? A loopback gateway trusts the machine and
resolves real upstream keys from
~/.raincode/profiles.toml(inline, key file, or env). The plugin only demands a credential whenbaseURLpoints at a remote gateway. - How do I add a model?
raincode setup(or edit~/.raincode/profiles.tomland restart the gateway).
License
MIT
中文说明见 README.zh.md.
저장소 정보
- 언어
- TypeScript
- 라이선스
- MIT
- 마지막 업데이트
- 2026. 8. 15. 오후 11:29
신중하게 설치하기
소스 코드, 권한, 수명 주기 스크립트, 의존성 및 네트워크 접근을 검토하고 신뢰하지 않는 플러그인은 격리 환경에서 테스트하세요.