Plugins
The DeepSeek Harness plugin layer: Cordis bundles, patch layers, permissions, and building your own capability plugins.
Loop guards in DeepSeek Harness: timeouts and the repeat-tool reminder
Two plugins that stop an agent burning budget in a loop — a zero-config tool-call timeout enforcer reading each tool's declared timeoutMs, and an advisory repeat detector that nudges rather than blocks. Config, chain semantics and why cooperative cancellation is not a kill.
The DeepSeek Harness sandbox: modes, backends and what it does not protect
How dsh confines process execution — the three sandbox modes, per-session overrides as log events, the bwrap/Landlock/Seatbelt/Windows-ACL backends, fail-closed behaviour, and the partial-enforcement limits the project documents honestly.
The DeepSeek Harness workflow engine: contract, error codes and Ralph config
ctx.workflowEngine runs model-authored orchestration scripts over sub-agents. The start request, the run and result contracts, observe-only events, the nine WorkflowError codes, and every tunable on the ralph tool.
Add a custom model provider to DeepSeek Harness
Register an OpenAI-compatible gateway, self-hosted endpoint or third-party model in dsh: the settings.yaml shape, what apiKeyEnv means, declaring model capabilities, and why the provider ID is permanent.
“Everything is a plugin”: the Cordis architecture behind DeepSeek Harness
What the plugin-kernel claim actually means in dsh — bundles as distributable config rows, the dsh-base foundation, how plugins are resolved and installed, and why the UI itself is swappable.
Patching plugin config in DeepSeek Harness: the config catalog explained
How to change a plugin's settings in dsh — find the row identifier in the config catalog, target it from cordis.patch.yml, and verify the composed result. With real package IDs and patch YAML.
Write your first DeepSeek Harness plugin
A dsh plugin is a Cordis plugin with named exports. The module contract, declaring services with inject, config via schemastery, registering a tool with defineTool, appending session events, and mounting the row in cordis.patch.yml.