Preface¶
The DSH ecosystem emphasizes “everything is a plugin”. If you are already using the dsh CLI to run agents in your daily workflow, what is often missing is not backend capabilities, but an interactive layer that can read, modify, and continue sessions directly in the terminal. DASH (Deepseek Agentic Service Harness) is such a plugin: it is a terminal TUI maintained by songqikong that wraps the official dsh CLI agent kernel into an oh-my-pi style terminal interface, and can be launched via dsh --profile dash.
What is this¶
DASH is a dsh terminal TUI plugin, with the repository at https://github.com/songqikong/dash and an MIT license.
It does not reimplement the DSH kernel but creates real agents on top of the DSH agent kernel:
- Create agents via
ctx.agents.create() - Advance turns via
agent.followup() - Interrupt generation via
agent.cancel() - Render the streaming
session/eventstream
Tool calls, reasoning, session persistence, compaction, and agent presets all go through the official DSH services. The UI uses zero-dependency raw-ANSI terminal rendering and does not use React/Ink.
Core Features¶
Terminal Editing and Input¶
DASH provides an editing experience close to oh-my-pi:
- Multi-line input
- Kill-ring
- Undo
- Char jump
- Round-trip with external editor
@file completion
Keybindings can be remapped in ~/.dash/keybindings.yml. Type /hotkeys to view current bindings.
Streaming Transcript¶
DASH uses Markdown streaming transcript, supporting:
- Reasoning folding
- Tool cards
Status Bar¶
The status bar displays:
- model
- preset
- thinking effort
- tokens
- activity
- queue
- TPS sparkline
- cache hit
- context-window indicator
- git branch
- cwd
- session title
Model Role System¶
DASH provides four model roles:
- default
- smol
- plan
- task
Role values support the provider/model:effort suffix and are persisted to the modelRoles in ~/.dash/config.yml.
Common operations:
Alt+M: Open model pickerCtrl+P: Switch model for the current roleAlt+P: Temporarily replace modelShift+Tab: Switch thinking effort
Session Workflow¶
Session management supports:
/resume/rename/new- persistence
- autoResume
- double Esc time-rewind
The session persistence path is ~/.dsh/sessions. autoResume can restore the most recent session upon startup. Double Esc enters time-rewind, allowing you to send a specific message back to the editor, modify it, and resend.
Official DSH Agent Presets¶
DASH can directly use the four official DSH agent presets:
- Standard
- PTC
- Minimal
- Creative
You can switch via the /preset picker or the «Session mode» in settings.
Settings Panel and Welcome Screen¶
/settings opens an omp-style settings panel, containing:
- appearance
- model
- interaction
- session
After startup, you will also see a splash welcome screen displaying:
- DASH wordmark
- model/provider
- tips
- current agent preset
- recent sessions
Agent Hub¶
Alt+A or /hub opens the subagent tree, supporting:
- filtering
- viewing details
- followup
- interrupt
In the subagent tree:
s: send followup to the subagentx: interrupt the subagent
Advisor¶
/advisor on enables a second model to listen in. Once enabled, after each turn ends, the second model appends a comment to the main transcript.
TTSR¶
TTSR is configured via ~/.dash/rules.yml in the form of a mapping from regex to prompt. When the streaming output matches a rule, DASH injects the corresponding prompt.
Commands, Skills, and Project Instructions¶
DASH integrates with the DSH command registry, skills, and project instructions:
/plan,/goal,/compact: forwarded to the DSH command registry/skills: list available skills/init: injectAGENTS.md/CLAUDE.mdinstructions/think,/focus: inject reasoning/focus steers
Typing / opens the command menu and supports Tab completion. For example, typing /models and pressing Tab completes the provider, then pressing Tab again completes the model.
Installation and Enablement¶
First, confirm the Node version meets >=22.19, then install the official dsh CLI:
npm install -g @deepseek-ai/dsh
Then install DASH:
git clone https://github.com/songqikong/dash.git
cd dash
npm install
sh install.sh
dash
sh install.sh will create:
~/.dsh/profiles/dash~/.local/bin/dash
After launching dash, it is equivalent to running:
dsh --profile dash
LLM provider configuration reuses $DSH_HOME/settings.yaml. If you need to override the default model using environment variables, you can use DASH_PROVIDER and DASH_MODEL.
Typical Usage¶
Below are common operations after launching:
- Sending and Queuing
Enter: SendCtrl+Enter/Ctrl+Q: Queue follow-upEsc/Ctrl+C: Interrupt generation
- Switching Models
Alt+M: Open model pickerCtrl+P: Cycle model for the current roleAlt+P: Temporarily replace modelShift+Tab: Switch thinking effort
- Managing Sessions
/resume
/rename
/new
- Opening Settings
/settings
- Viewing Subagent
Alt+A
/hub
- Enabling Advisor
/advisor on
- Configuring TTSR
Edit:
~/.dash/rules.yml
- Viewing Skills and Injecting Project Instructions
/skills
/init
/think
/focus
Applicable Scenarios and Notes¶
DASH is suitable for developers already using the dsh CLI, especially those who wish to handle multiple-model roles, session recovery and time rewind, official agent presets, subagent management, rules, skills, and project instructions, as well as an oh-my-pi style editing experience in the terminal.
Notes before use:
- DASH runs with the permissions of the current
dshprocess - You should check the source code and license before installing
- The license for this plugin is MIT
- The community directory is a standalone site and has no official affiliation with DeepSeek / Huafang; do not treat it as an official app store
Conclusion¶
The focus of DASH is not to create another agent backend, but to put the official DSH agents, sessions, presets, command registry, and streaming capabilities into a terminal TUI. If you wish to use an interaction style closer to oh-my-pi in your daily terminal, you can review the source code from the repository and decide whether to enable it.
GitHub: https://github.com/songqikong/dash