跳过主要内容
C

dsh-dock

captainyufei/dsh-dock

为 DeepSeek Harness 提供常驻可自定义的左侧 Dock、跨工作区置顶会话、先写草稿的首页、全局搜索、完成通知收件箱,以及右侧文件面板视频预览。

安装

dsh plugin --profile web add github:captainyufei/dsh-dock

README

DeepSeek Dock

English · Simplified Chinese

A persistent, customizable left Dock and a Codex-inspired UI for DeepSeek Harness.

DeepSeek Dock: customizable navigation, Codex-inspired layout, global pins, drafts, and video previews

Pin important chats across workspaces, draft on Home without creating a chat until you send, and preview videos in the right file panel beside the conversation. DeepSeek Dock installs independently without modifying the host application, preserving DeepSeek branding and native tools.

0.2.0 · Supported hosts: macOS / Harness 0.2.1-rc.5 or 0.2.2-rc.1 · Third-party community plugin

Install · Features · Compatibility and limits · Migration · Report an issue

See it in action

DeepSeek Dock: customize the persistent Dock, use a consistent layout, pin chats across workspaces, draft before sending, and preview video beside the chat

Watch the full 45-second demo with music · Watch in Chinese · Static preview

The 45-second loop follows the 0.2.0 application Dock, All Apps, pinning/reordering, global search, completion inbox, Back/Forward and existing file/video tools. Click it for the version with music. Both formats use illustrative UI based on the current code and fictional sample data; they are not live recordings or performance measurements.

Features

FeatureWhat changes in everyday use
Application Dock and overviewOpen registered plugin pages through monochrome icons, pin and reorder them, or find them in All Apps. Recent unpinned apps have their own section.
Global searchFind chat titles, workspaces and quick actions in one palette; chat-body search is available when the Host index is enabled.
Session inboxReview completion excerpts and pending interactions. Home and the bell share an unread dot, and read completion records remain available.
Back and ForwardRevisit global pages and existing chats visited in the current window.
Codex-inspired UIHome, chats, plugins, and scheduled tasks share one window frame and draggable top strip. Moving between pages keeps the same navigation and tool controls, with DeepSeek branding and the native chat hierarchy.
Cross-workspace pinsFind important chats from different workspaces in one pinned section. Each appears only once; unpinning returns it to its original group without changing workspace membership.
Draft-first HomeCompose and revise before committing to a chat. A chat is created only when you send, so unsent ideas do not fill the sidebar with empty entries.
Video in the file panelPlay and seek a generated video on the right while checking the conversation beside it. Reopening the tool drawer restores existing tabs so you can continue reviewing the same content.

Install

Requires macOS / Harness 0.2.1-rc.5 or 0.2.2-rc.1. Disable the old @local/chatgpt-rail plugin first if installed (migration). This package is not published to npm; use the repository URL below. No manual build is needed. Install packages are also available from GitHub Releases; extract the ZIP and select the complete folder containing package.json.

This installs the latest code on main, not the latest stable release. Installed copies do not update automatically.

Install in DeepSeek Harness

Open Plugins → Add plugin, paste this into Package name or address, and click Install:

https://github.com/captainyufei/dsh-dock

When Installed appears, click Enable now. Closing the dialog instead leaves the plugin switched off.

Installing DeepSeek Dock from its GitHub repository in Harness

Confirm DeepSeek Dock is on under Installed plugins. Collapse the chat list: Home, scheduled tasks, and plugins should remain in the left Dock. Right-click the Dock to customize its entries.

Install with the dsh CLI

For the web profile, run:

dsh plugin --profile web add https://github.com/captainyufei/dsh-dock

Start dsh web if it is not already running, then open Plugins and make sure DeepSeek Dock is enabled. The command targets the web profile; desktop users should use the installation dialog above.

Update or remove

Save your work first. If your plugin manager offers Update for DeepSeek Dock, use it, then follow any reload/restart notice. Otherwise uninstall the plugin and reinstall using the same repository URL or CLI command above, then enable it. Confirm version 0.2.0 or newer in the plugin details. Reopening Harness alone does not fetch new code.

To disable Dock temporarily, turn off its switch. Uninstall without reinstalling to remove it. Both actions preserve host-managed chats and workspaces.

Alternative: install from a local ZIP
  1. Download the current main branch and extract it into a directory you will keep. This is a snapshot of main at download time, not a fixed release.

  2. Find the root containing package.json and cordis.patch.yml; keep the complete extracted directory and all its subfolders.

  3. Select that folder in Finder and press Option–Command–C to copy its absolute path. Paste it into Plugins → Add plugin. For example, an account named alex might use:

    /Users/alex/Plugins/dsh-dock
    

    Use your actual folder path, not the example or the ZIP file.

  4. Click Install → Enable now, and check the Dock as described above. Keep the local directory after installation.

Troubleshooting installation
ProblemNext step
Package not foundUse the complete repository URL above. This package is not published to npm; its package name or @latest is not an installation source.
GitHub download failsOpen Show install details, check GitHub connectivity, and retry. Changing the npm registry does not fix GitHub access. Use the ZIP option if you can download it separately.
Installed, but no DockEnable it under Installed plugins and follow any restart notice. If activation fails, copy the diagnostic.
Wrong host or invalid directoryUpdate Dock to 0.1.2 or newer for Harness 0.2.2-rc.1; 0.2.1-rc.5 remains supported. An older installed Dock copy retains its old version restriction. For local installation, select the root containing package.json and cordis.patch.yml, with the full extracted contents intact.

Report an issue with your Harness/macOS versions, source entered, and installation error. Remove private paths or tokens from logs before posting.

Everyday controls

Open All Apps at the bottom of the Dock to search and filter all, pinned or recent entries. Right-click an icon to pin/remove or move it. Drag pinned icons to reorder them; releasing in an icon gap works, and Escape cancels. Home stays first. Pinned icons scroll when needed; recent unpinned apps follow a divider. Preferences remain local.

Use the sidebar search button or the Host search-chats shortcut for global search. Arrow keys select, Enter opens, and Escape closes. Title/workspace search remains available when the Host body-search index is disabled, with an explanatory notice.

The bell opens completion history and pending interactions. New results and pending items light the Home/bell dot. Selecting a completion opens its chat and acknowledges only that result; opening the list does not acknowledge it. History before first activation normally appears as read. Some legacy logs may remain unreadable.

The leading Back/Forward buttons track global pages and existing chats visited in the current window; reload resets that history. Chat context menus retain native pin, rename, fork, archive/unarchive and copy Session ID actions, including Shift+F10 and the menu key. Pinned rows reuse the Host archive action.

Files, terminal, browser, tool tabs, and scheduled tasks are Harness capabilities. DeepSeek Dock adds their surrounding UI and video previews; it does not add a task execution engine.

Drafts and input

Select a workspace, mode, model, and permissions before composing. Draft text and options survive page navigation and refresh; attachments must be reselected after refresh.

Enter sends and Shift+Enter inserts a newline. Confirming an IME composition does not send. Use + for local files, @ for file paths or loaded chats, and the microphone for the host voice component. Attachments are handed to the host only on send. Failed sends retain the draft; uncertain results are not automatically retried.

Restore tools and play videos

Native file tabs preview MP4, M4V, MOV, and WebM with pause, seeking, volume, and fullscreen controls, subject to the codec limits below.

The top-right button restores existing tool tabs. If the active chat has no tabs, it opens the native tool area. The new-tool or chat-selection entry appears only when there is neither an active chat nor restorable content.

Collapsing the drawer, switching tabs, or closing the preview pauses playback and releases temporary media. Reopening within the same tab lifecycle and unchanged file version can restore the position without autoplay. Native keyboard controls and focus indicators remain available; window transitions respect reduced-motion preferences.

Compatibility and limits

AreaCurrent scope
Host and platformSupported host versions are 0.2.1-rc.5 and 0.2.2-rc.1 on macOS. The original feature baseline was validated on 0.2.1-rc.5; the 0.2.2-rc.1 upgrade check covers installation, loading, Dock collapse/customization, drafts, page navigation, and tool-drawer controls. The 0.2.0 additions were checked with light/dark themes on 0.2.2-rc.1; other systems, the additions on the older host, and very narrow windows have not had a complete on-device acceptance pass.
Video codecsRecognizing an extension does not guarantee that every codec decodes. Support depends on the system/browser; H.264/AAC MP4 has been tested. Unsupported files can open in a system application.
Desktop video sizeDesktop reads a complete temporary Blob before playback. Cached and in-flight media bytes share a 256 MiB budget, with external opening available above it. This is not a process peak-memory cap.
Playback positionRestoration is limited to the same tool tab lifecycle and file version, not guaranteed after an app restart.
Drafts and voiceAttachments do not survive refresh. Voice requires the host component and local recognition resources. / commands and @ suggestions depend on host catalogs and permissions.
LanguageThe README is bilingual. Some added interface copy is still Chinese; full UI localization is not complete.

Version 0.2.0 remains an early 0.x release. Compatibility is explicitly limited to the two host versions above; a newer Harness release needs renewed validation.

Hiding pinned chats can reduce the visible row count on a native group's first page. Expand the group to see more. The plugin uses host slots, services, and some DOM structure; host upgrades require renewed validation and are not automatically compatible.

Development and contributions

Run from the source repository root:

npm ci
npm test
npm run build:client

npm test builds before running tests; the runtime shares the host's React. Rebuild dist/client.js after editing source, then load the update through the host. Test results should come from the current commit's actual run; the simulated demo does not replace functional acceptance.

Architecture and state ownership · Shared window surface · Contributing · Versioning and releases · Changelog

License and provenance

DeepSeek Dock is an independently developed third-party plugin and is not affiliated with DeepSeek or OpenAI. "Codex-inspired" describes the layout, not an affiliation. The project is licensed under the MIT License. See THIRD_PARTY_NOTICES for referenced code and third-party licenses.

相关插件