deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:HandsYe/dsh-llm-motomoto
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
A DeepSeek Harness bundle that adds MotoMoto to the model selector through the built-in llm-pi-ai adapter, plus a status card in Settings - Plugins modelled on the AgentRouter bundle.
Probing settled three facts, and the bundle is built around them:
| Probe | Result |
|---|---|
POST /v1/chat/completions (any User-Agent) |
Hangs — the path is not wired |
POST /v1/responses + harness User-Agent |
Rejected: bad_response_status_code / openai_error |
POST /v1/responses + Codex CLI User-Agent |
Streams: response.created ... |
So the route speaks api: openai-responses, and the runtime half fences globalThis.fetch to give relay requests the Codex client identity:
User-Agent is rewritten to the Codex CLI value (default codex_cli_rs/0.46.0 (Windows 10.0.26200; x86_64) WindowsTerminal) — the harness's own attribution header cannot be suppressed any other way: the pi-ai adapter strips configured headers colliding with it before appending its own.originator: codex_cli_rs is added, matching the official client.max_output_tokens — the official client never sends it, and the backend answers 400 Unsupported parameter otherwise). The list is the stripBodyParams setting: the next upstream complaint is a settings edit, not a release.fetch.An upstream server_is_overloaded / 502 Upstream service temporarily unavailable is the relay's OpenAI pool being briefly busy — retry.
dsh-settings resolves the llm-pi-ai section as mergeLayers(base, user): this bundle's patch is the base, the llm-pi-ai: section of ~/.dsh/settings.yaml merges over it — objects merge per key, arrays replace wholesale. A route you edit in the models settings page therefore wins field by field, while a fresh install still serves the default route before any user configuration exists.
The default route:
https://motomoto.lol/v1 (OpenAI Responses API)gpt-5.6-terra (text input; low/medium/high reasoning efforts)MOTOMOTO_API_KEYRoute compat notes: the Responses protocol takes only supportsDeveloperRole, supportsStrictMode, supportsLongCacheRetention — completions-only keys (thinkingFormat, supportsReasoningEffort, chatTemplateKwargs, ...) on the same route crash the whole adapter at load.
MotoMoto group.The API key is never stored in this package. Provide it as the MOTOMOTO_API_KEY credential.
git clone https://github.com/HandsYe/dsh-llm-motomoto
dsh plugin --profile desktop add "file:<克隆下来的仓库路径>"
Then fully restart the desktop app. Verify the load:
Select-String -Path "$env:APPDATA\DSH Desktop\logs\dsh-*.log" -Pattern 'llm-motomoto' | Select-Object -Last 5
npm install
npm test
18 offline checks: patch shape, manifest, secret scan, the client bundle's registration and rendering, and the fence's identity rewrite, body strip, and unload behavior.
dsh plugin --profile desktop remove dsh-llm-motomoto CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。