dsh-vibe-mode
omp-style vibe mode for DeepSeek Harness: the session becomes a read-only director that drives persistent fast/good worker subagents 适合需要通过一个主会话协调多个子任务Agent协同工作的复杂开发任务。
Install
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:inrainbws/dsh-vibe-modeREADME
Read the full README ↗Usage
/vibe enter vibe mode (run again to leave)
/vibe enter vibe mode and send to the director
/vibe off leave vibe mode
While vibe mode is on:
-
The director's toolset is cut down to
read(plusread_imageandtodo_writewhen the preset has them) and five worker tools:Tool Input Behavior vibe_spawn{ cli: fast|good, prompt, name? }Starts a persistent worker with a self-contained brief. Returns immediately. vibe_send{ session, message }Steers a running worker, or starts the next turn of an idle one. vibe_wait{ sessions?, timeout? }Blocks until the first watched turn finishes (default 30 s). Returns that result, which is then not delivered again. vibe_kill{ session }Cancels the worker's turn and releases it. Its transcript stays in its child session. vibe_list{}Roster: tier, state, turn and queue counts, model, recent activity. -
When a worker finishes a turn, its result arrives in the director's conversation as a `` block. The block holds the worker's tool-call trace and its closing message, trimmed to
resultPreviewChars. -
Leaving vibe mode restores the director's tools and stops every worker.
-
Vibe mode won't start while plan mode is on or a goal is active or paused.
-
The web composer shows a Vibe chip with the live worker count. Clicking it runs
/vibe off.
Configuration
Override any option on the bundle's row in your profile's cordis.patch.yml:
- id: vibe-mode
config:
fastAgentOptions: { provider: llm-serve, model: qwen3.8-flash-next }
goodAgentOptions: { provider: llm-serve, model: DeepSeek-v4.1-Flash-EXL3, reasoningEffort: high }
| Option | Default | Meaning |
|---|---|---|
fastAgentOptions / goodAgentOptions | inherit | Model route for each tier (provider, model, reasoningEffort, maxTokens). Any field left unset is inherited from the director's route. |
fastProvider / goodProvider | spawn | Subagent provider for each tier. |
fastPersona / goodPersona | none | Persona for each tier's workers. |
includeTodo | true | Keep todo_write in the director's toolset. |
workerToolDeny | [send_message] | Tools taken away from workers, so results come back as turn results instead of relayed messages. |
waitTimeoutSeconds | 30 | Default vibe_wait timeout. |
resultPreviewChars | 4000 | How much of a worker's closing message goes into a `` block. |
traceLimit | 12 | Tool calls listed in a `` block. |
section | built-in | Replaces the director's instructions. |