dshline
Discovered★ 15The terminal-native frontend for the DeepSeek Harness plugin ecosystem.
dshline
English | 中文
A terminal-native frontend for DeepSeek Harness.
An agent in your terminal — not instead of it. Finished output stays in your terminal's own scrollback; only a bounded live region redraws.
dshline runs in-process as a direct consumer of Harness capabilities rather than creating a parallel agent runtime or state layer.
Website: dshline.xyz
See it in action
Install
npm install -g @deepseek-ai/dsh @dshline/dshline
dshline
The first run asks once before letting Harness create the dshline profile and install this package into it. See Install for requirements, verification, explicit setup with dshline --setup, and source installs.
[!WARNING] Sandbox and tool permissions are controlled by the active Harness profile; ordinary tool calls may run without per-call review. See Permissions and the sandbox before using dshline on important code.
Why dshline?
Harness plugins publish capabilities; dshline presents supported capabilities natively in the terminal. It consumes Harness contracts rather than creating separate provider runtimes, state stores, or policy.
Harness plugin → standard capability → dshline presentation adapter → native terminal UI
Harness owns capabilities, state, runtime, persistence, and policy. dshline owns terminal presentation.
Generic capability integration
dshline integrates through standard Harness capabilities instead of provider-specific code. Work consumes ctx.jobs and ctx.subagents; Sessions uses ctx.sessionQuery; /connect uses Harness's model, settings, credentials, and authorization services; /plugins reads and switches the running agent's composition through ctx.agentPresets; /profiles reads the profile roster through Harness's own home-path service and forwards every change to dsh plugin. New providers can therefore flow through existing interfaces without requiring a dedicated dshline implementation. A real Codex provider has already passed this boundary through generic ctx.subagents and ctx.jobs presentation, with no provider-specific dshline production code; see Provider acceptance.
It ships no provider list and no login protocol: /connect offers whatever the mounted adapters declare configurable and runs whatever flows Harness has registered, so the same providers are reachable from the terminal and from the official web Models page, over one settings document and one credential store.
See Architecture for the capability model and current adapter boundaries.
Native terminal by design
Finished output is committed to real terminal scrollback and never rewritten. Normal scrolling, selection, and copying keep working while dshline redraws only a bounded live region. The Harness-independent renderer stays small, dependency-light, and focused on terminal correctness: widths, Unicode, escaping, keys, and safe redraws.
See Design for the terminal invariants and Comparison for the trade-offs.
Use dshline
Type / to discover the commands and capabilities available in the active Harness profile.
/new— start a fresh session in the current workspace; the previous one is reopenable when the active Harness profile provides session persistence/clear— wipe the screen and start a fresh session in the current workspace, like/new; the previous one is reopenable when the active Harness profile provides session persistence/image <path>— stage a PNG, JPEG, WebP, or GIF as a real Harness image for the next prompt;@pathremains a textual reference/sessions— browse and resume Harness sessions/worktrees— choose a working directory represented in your Harness session history, then a conversation there or a new one/work— inspect workflows, subagents, and jobs/subagents— browse this session's durable subagent conversations, inspect one, and continue a continuable child; also reachable withcfrom/work/connect— configure providers through Harness/plugins— browse, search, and customize the running agent's Harness preset composition/profiles— browse Harness profiles and the bundles each one composes; install, update, or remove one/todos— inspect projected Todo state/model— switch registered models/theme— choose the colour palette this window draws with
Usage covers keys, sessions, commands, and permission guidance.
Contributing
Contributions are welcome, especially generic capability adapters, terminal robustness, cross-platform verification, Unicode/CJK correctness, sessions, attachments, and focused UX improvements. Start with CONTRIBUTING.md, then read AGENTS.md and the canonical Roadmap.
Documentation
License
MIT. Not affiliated with or endorsed by DeepSeek.
Similar plugins
by Qingzhou-Joshua
DeepSeek Harness plugin—a simple toolkit for developers.
★ 0
MIT
TypeScript
Aug 14, 2026
dsh plugin --profile web add dsh-dev-toolboxby tomowang
An open-source terminal front door for DeepSeek Harness (dsh).
★ 14
↓ 451/wk
MIT
TypeScript
Sep 10, 2026
dsh plugin --profile web add @tomowang/dsh-tuiby orriduck
A small, session-aware terminal UI for DeepSeek Harness
★ 3
MIT
TypeScript
Aug 13, 2026
dsh plugin --profile web add dsh-tuiby peiyuwang54
DeepSeek CLI
★ 62
↓ 393.3k/wk
MIT
TypeScript
Sep 13, 2026
dsh plugin --profile web add @deepseek-ai/dsh-baseby zhu1090093659
DeepSeek Harness (DSH) Web Plugin Aggregation Ecosystem · Everything is a plugin, distributed via the Creative Workshop
★ 7.6k
Apache-2.0
TypeScript
Sep 15, 2026
dsh plugin --profile web add dsh-webby taichuy
DeepSeek Harness auth插件
★ 26
↓ 139/wk
Apache-2.0
TypeScript
Aug 16, 2026
dsh plugin --profile web add deepseek-harness-auth