Introduction

The AppFrame details column in DeepSeek Harness is the foundational infrastructure for hosting plugin views. Without extensions, this column typically remains idle. dsh-client-ui-details-host provides the ability to convert this column into a multi-tab Dock. It is a platform Web UI component that can run in a standard DSH Web host without requiring Electron or a Node runtime.

What This Is

This is a portable DSH Client details pane infrastructure. It is maintained by cherrchen and is designed to host active surfaces in the AppFrame details column. The plugin provides the ability to manage tabs, Launcher, and Dock visibility through the ShellDetailsController API.

Core Features

The plugin provides the following capabilities:

  • Multi-tab Dock in the AppFrame details column: Transforms the details column into a Dock with multi-tab switching.
  • Launcher page support: Provides card-based entry points and supports registering custom Launcher contributions.
  • ShellDetails API: Provides a complete tab management interface, including tabs, launcher, tabClose, and dockVisibility.
  • Header Actions slot support: Provides action button slots in the details pane header.
  • Portable Web UI infrastructure: Pure Web implementation without depending on Electron or Node environments.
  • No extra dependencies: Client logic is resolved through the exports["./client"] entry, with dependencies listed as Peer Dependencies.

Installation and Enablement

The installation method depends on the runtime environment.

DeepSeek Harness Desktop

Details Host is built into DeepSeek Harness Desktop. No separate installation steps are required; it is available directly.

DSH Web

In a Web environment, it can be installed directly from GitHub with the following command:

dsh plugin --profile web add github:cherrchen/dsh-client-ui-details-host

Alternatively, if you need to manually build the lib/ directory, you can first run the build script and then install using the local path.

Typical Usage

The plugin provides operation interfaces through the global ctx.shellDetails. Examples of common operations are as follows.

Register a Surface

Other plugins register renderable Surfaces by injecting the shell.details.surface slot.

ctx.slots.inject('shell.details.surface', () =>
  ctx.slots.register({
    name: 'shell.details.surface',
    id: 'example.alpha',
    label: 'Example Alpha',
  }, ExampleSurface))

ShellDetails API

Call the following methods through the ctx.shellDetails instance:

// 打开指定 surface,创建或复用标签页
ctx.shellDetails.open({ surfaceId: 'example.alpha', payload: {}, navigation: {} })

// 关闭当前标签页
ctx.shellDetails.close()

// 切换 Dock 的可见性
ctx.shellDetails.toggleDock()

// 显示 Launcher 页面
ctx.shellDetails.showLauncher()

Applicable Scenarios and Notes

  • Applicable scenarios: Developers who need to extend custom views in the DeepSeek Harness details column; and Web UI infrastructure developers who need to implement a multi-tab management experience.
  • Maintenance status: This project is no longer maintained. DeepSeek Harness now offers an official sidebar and has removed the Details page. Details Host will be archived soon.
  • Dependency requirements: Ensure all Peer Dependencies (such as @deepseek-ai/dsh-api-session-controller, React, etc.) are satisfied before installation.
  • Version compatibility: The main branch targets DeepSeek Harness v0.1.2. If using v0.1.1-rc.2, a specific commit must be specified.

Conclusion

This plugin is legacy infrastructure for details column extensions in the DeepSeek Harness ecosystem. Although its functionality is complete, given the release of the official sidebar and the project’s archival plan, new projects should prioritize the official solution.