Foreword

DeepSeek Harness (dsh) makes models, tools, storage, policies, and interfaces all pluggable components. Agent sessions, tool calls, and permission policies are driven by a unified set of services. While an official Web UI is provided, many developers prefer the interactive experience of a terminal—similar to TUI workflows like Codex CLI or Claude Code—when writing code locally, viewing diffs, or running reviews within a repository.

This introduces the community plugin DSH-Code (maintainer UNLINEARITY). It layers on top of the official @deepseek-ai/dsh-base as an out-of-tree bundle, sharing the Agent, Session, tools, commands, skills, permissions, sandbox, context compression, and plugin services with the Harness Web UI. The interface switches to a terminal TUI, while runtime behavior is still governed by the DSH process and configuration. The plugin is categorized as a “Client” in the SkillHub directory and had approximately 27 stars on GitHub as of the data collection time.

What Is This

DSH-Code is a terminal coding interface for dsh (Claude-Code-style TUI bundle). Instead of launching a separate Agent runtime, it reads the Harness’s live registry, bringing persistent sessions, model management, Agent Presets, subagents, plan mode, and coding-related commands into the terminal.

Compared to “installing a standalone CLI tool and maintaining your own session and toolchain,” DSH-Code directly integrates with DSH’s Cordis composition and Session event projection: resuming a session synchronously restores the Agent Preset and model selection; /plugin shows the current loader state rather than a local copy.

Core Features

Sessions and Workflows

  • /new to create a new session; /resume, --continue to restore by directory, time, or ID; /fork to branch from a historical node while preserving the original session.
  • Supports persistent titles, Markdown export (/export), context occupancy, and token statistics.
  • Up/Down to recall input; /history to search past prompts.
  • @ to reference workspace files or existing sessions; PNG, JPEG, WebP, GIF files are automatically attached as images.
  • /diff to view changes per file; /review to inspect Git diffs in read-only mode; supports tool approval, plan review, and supplemental instructions during task execution.

Agent, Models, and Extensions

  • Each session can select an Agent Preset: standard, code, minimal, cordis, or user-defined; switch with /mode, or specify at startup with --mode.
  • /model manages providers, API keys, OAuth/device code login, endpoints, and available models; the TUI can be used for non-model functions even if no model is configured.
  • /effort adjusts reasoning effort; /permission switches permission presets; /subagent specifies the subagent model.
  • Automatically loads commands and skills from DSH; /help shows entry points; /plugin checks extension status.
  • When switching models or reasoning effort, the input box can play Wave, Aurora, or Pulse animations (official DeepSeek models and other high-intensity models have different trigger conditions—see README for details).

Integration with DSH

The Host plane holds the registry, persistence, queries, permissions, and sandbox; each session receives an isolated Agent scope, with the Agent Preset combining tools, prompts, skills, context compression, and subagent capabilities. Prompts, streaming output, tool calls, model selection, and presets are all written to Session events, with restoration and export sharing the same record.

Installation and Setup

Requires Node ^22.19 || >=24 and the preview dsh CLI (current version line: @deepseek-ai/dsh@0.1.1-rc.2). dsh-code@1.0.1 is built for this version, with Harness dependencies locked to 0.1.1-rc.2. Please keep the global dsh and dsh-code in sync to avoid mixing host and plugin candidate versions.

Use the same commands for both initial installation and updates:

npm install -g @deepseek-ai/dsh@0.1.1-rc.2 dsh-code@1.0.1
npm install -g pnpm
dsh plugin --profile cli add dsh-code@1.0.1

pnpm ignores packages published less than 24 hours ago; on the first day after release, use the exact version dsh-code@1.0.1; after 24 hours, the version can be omitted. npm does not have this limitation.

Typical Usage

After installation, the following three commands are equivalent, with subsequent arguments passed through as-is:

dsh --profile cli
deepseek
dsh-code

Examples with arguments:

dsh --profile cli --mode code        # Use the code Agent Preset
dsh --profile cli --continue         # Resume the latest session in the current directory
dsh --profile cli --resume abc123    # Resume by ID or unique prefix
deepseek --resume abc123             # Alias also supports argument forwarding

Once in the TUI, common built-in commands include:

Command Purpose
/mode [preset] View or select an Agent Preset
/model Switch models, manage providers and login
/diff [--staged\|ref] View Git diff for the workspace or a specified ref
/review [--staged\|ref] Read-only review of Git changes
/fork [event-seq] Create a branched session from a specified event position
/export [path] Export the current session as Markdown
/help View shortcuts, built-in commands, and user skills

For shortcuts: Tab completes commands and @ references; Ctrl+O views full history and tool details; Esc interrupts a running turn; Ctrl+D exits. See /help for the complete list.

Use Cases and Notes

Who it’s for: Developers who are using or planning to use DeepSeek Harness and want to handle coding, diffs, reviews, and session management in the terminal; those who need to share the same Agent, tools, and persistent sessions with the Web UI.

Before use, note:

  • DeepSeek Harness is still in developer preview; the plugin interface may change with upstream updates. DSH-Code states it will continue to evolve accordingly.
  • The plugin runs with the current dsh process’s permissions. Before installation, please review the GitHub source code and the MIT license.
  • SkillHub (directory page) is a community plugin directory and has no official affiliation with DeepSeek / High-Flyer.
  • For installation, native module, or plugin loading issues, refer to the common issues and troubleshooting in the repository.

Conclusion

DSH-Code connects DSH’s Agent runtime, persistent sessions, and plugin ecosystem to a terminal TUI, covering workflows from session management and model switching to /diff and /review—without building a separate toolchain. If you’re already using dsh --profile cli, installing the bundle allows you to enter the same set of services directly via deepseek or dsh-code.