Preface¶
DeepSeek Harness (dsh for short) is an Agent runtime open-sourced by DeepSeek, with the official slogan “Everything is a plugin”: models, tools, skills, sessions, sandboxes, storage, loops, scheduling, and even the Web UI itself can be replaced at the configuration layer without modifying the core code. It is currently in developer preview, and the API will continue to change.
The official Web UI uses ui-workspace to manage the left sidebar workspaces and sessions. When there are many sessions, the flat list makes it difficult to locate them by project: recently used sessions, records sorted by date in a certain workspace, and ungrouped sessions will all be mixed on the same timeline. The community plugin dsh-plugin-ya-workspace-sidebar specifically replaces this browsing interface: it fixes 5 global recent sessions at the top, changes the lower part to a Workspace → Session secondary menu, and uses breadcrumbs to indicate the current location.
Two points need to be clarified first. First, the community plugin directory (for example, deepseek-harness-plugin.com) is an independent site and has no official affiliation with DeepSeek / FunFound. Do not treat it as an official app store. Second, there is another similar interface enhancement called DSH-better-sidebar, which targets the right sidebar/bottom panel workspace and exposes ctx.betterSidebar for other plugins to register pages; the plugin introduced in this article only replaces the workspace/session browser, and the two should not be confused as the same thing.
What is this¶
dsh-plugin-ya-workspace-sidebar is an interface enhancement plugin for the DSH Web UI, maintained by HuanLinOTO, with the npm package name @huanlin/dsh-plugin-ya-workspace-sidebar. As of 2026-08-18, the latest npm version is 0.3.0 (released on 2026-08-16), the GitHub repository has 11 stars, and the directory page syncs 8 stars, please refer to the repository page for the accurate star count. The main language is TypeScript, and the declared runtime platform for the client is web.
The problem it aims to solve is specific: without modifying the DSH source code or rebuilding the session storage, replace the official workspace sidebar with an information architecture of “recent sessions + workspace secondary navigation + breadcrumbs”. Features such as search, adding workspaces, renaming, deleting, forking, and archiving still use the native Host capabilities of DSH, and the plugin is mainly responsible for the browsing structure.
It is implemented as a bundle plugin. cordis.patch.yml will disable the official ui-workspace and then insert @huanlin/dsh-plugin-ya-workspace-sidebar. The official ui-workspace occupies two slots: sidebar.workspaces and conversation.hero.workspace at the same time. The replacement plugin must connect both slots, otherwise the workspace selector at the top of the conversation page will be empty. The apply() method on the Host side is a null implementation, and all logic is concentrated on the browser side. The dsh/ directory in the repository is only for type and behavior reference, and the plugin will not modify the DSH checkout.
Core Features¶
Combined with the directory page introduction, repository README, AGENTS.md, and src/client source code, the verified capabilities are as follows as of now.
- Global recent sessions at the top. A maximum of 5 recent sessions are fixed at the top of the sidebar, sorted by
updatedAtfrom newest to oldest. This section will be hidden during a search to avoid competing for space with search results; it can be collapsed when there is no search. Sessions from sub-agents and archived sessions will not appear in this list. - Workspace → Session secondary menu. The first level lists real workspaces, plus an additional virtual “Ungrouped” item for sessions that do not belong to any workspace. After clicking into a workspace, the second level only displays the sessions under that workspace. The workspace row will display the number of sessions and the path.
- Breadcrumb navigation. After entering the secondary level, the top bar becomes “Workspace > Current Workspace Name”. Clicking “Workspace” returns to the first-level list. The repository description states that after manually clicking the breadcrumb to go back, it will stay at the root level until the current session ID changes.
- Grouping by local calendar date. Sessions in real workspaces are grouped by the local calendar into “Today / Yesterday / Earlier Dates”, sorted by date from newest to oldest, and within each group by
updatedAtfrom newest to oldest. The ungrouped list is still tiled by recent activity without date grouping. Starting from version 0.2.0, drag-and-drop sorting is disabled in the date grouping view. - Search. The sidebar provides session search, which locally matches the session title and workspace name; it also calls the Host’s
sessions.search. When content search is unavailable, the interface will prompt that only name matching is displayed. The search debounce is 250 milliseconds. - Workspace and session operations still use the Host. Adding workspaces, creating new sessions in a workspace, renaming workspaces/sessions, deleting workspaces, forking sessions, and archiving sessions all call
ctx.workspaces/ctx.sessions. The copy for deleting workspaces clearly states that only the item will be removed from the workspace list, and the folders and session records will be retained. - Archive/Delete display mode (0.3.0). The destructive operation for session rows defaults to “Archive”. You can switch to the “Delete” appearance: a red trash bin icon, with a secondary confirmation pop-up. The underlying call is still the Host’s
archiveSession, whose function is to make the session disappear from the grouping interface while the logs remain. This preference is stored in the browser’slocalStorageunder the keyya-workspace-sidebar:action-modeand is not synced across devices. - Chinese and English copy. The plugin registers the
ya-workspace-sidebarlanguage pack, and the sidebar copy has two sets: Chinese and English. The session row can also display statuses such as in progress, waiting for interaction, and completed.
Installation and Activation¶
First confirm that you can open the DSH Web UI locally. The official quick start method is:
npx @deepseek-ai/dsh web
The default address is http://127.0.0.1:3080. The plugin requires Node.js 22 or higher.
The installation command given on the community directory page is as follows, run it in the DeepSeek Harness terminal:
dsh plugin add github:HuanLinOTO/dsh-plugin-ya-workspace-sidebar
For reproducible installations, the directory page recommends pinning the commit hash. The current 0.3.0 corresponds to the commit d8bcf353c77beb2d99b8e242a3d7dca2c11a820a, which can be written as:
dsh plugin add github:HuanLinOTO/dsh-plugin-ya-workspace-sidebar#d8bcf353c77beb2d99b8e242a3d7dca2c11a820a
The repository README marks npm installation as the recommended method, and explicitly adds the web profile because this is a browser-side plugin:
dsh plugin --profile web add @huanlin/dsh-plugin-ya-workspace-sidebar
The example for local development (hot reloading) in the README is:
dsh plugin --profile web add "link:D:/Projects/deepseek-harness/ya-workspace-sidebar"
Replace the path with your own repository directory. After modifying the source code, you need to re-run pnpm run build, then restart dsh web, and perform a hard refresh in the browser. The repository submits the pre-built lib/ when publishing, where lib/client.js is wrapped with window.__ModuleLoader__.load().
There is a security reminder on the directory page, which should be understood as written: the plugin runs with the permissions of the current dsh process, and may execute code during installation. Please check the source code repository and license before installing.
Usage¶
After installation, restart the Web UI and hard-refresh the browser according to the README. The official workspace sidebar will be replaced with the following structure.
- View recent sessions. The top of the sidebar is “Recent Sessions”, with a maximum of 5 entries, with relative time labels (just now, n minutes ago, n hours ago, etc.). Click any one to open the corresponding session.
- Drill down by workspace. The first level below is the workspace list. Click a workspace to enter the second level, where you can only see the sessions under that workspace; real workspaces will be grouped by “Today / Yesterday / Date”. Ungrouped sessions are in the “Ungrouped” section. Click “Workspace” in the breadcrumbs to return to the first level.
- Search for sessions. Enter a name or keyword in the search box. When there are matching results, the top recent sessions will be replaced by the search list. If the Host content search fails, it will fall back to name matching only.
- Manage workspaces. The sidebar provides “Add Workspace”. The menu of real workspaces allows renaming or deleting; deleting will require a confirmation, and only removes the item from the list. The plus sign on the workspace row will create a new session in that workspace.
- Manage sessions. The session menu provides renaming, forking, archiving (or delete-style display). You can switch the archive/delete mode in the upper right corner. The delete mode only changes the button style and confirmation box, and does not switch to another set of Host APIs.
- Workspace selector at the top of the conversation page. Because the plugin also takes over the
conversation.hero.workspaceslot, selecting workspaces and adding workspaces in the conversation hero area is still available, and will not leave a blank space due to the disabled officialui-workspace.
The above steps come from the repository README, AGENTS.md and client source code, and no additional configuration items need to be manually written.
Applicable Scenarios and Notes¶
This plugin is suitable for users who have created multiple workspaces in the DSH Web UI and have a large number of sessions, and hope to review records by “project → session” and then by date. If you mainly use the terminal TUI, or need functions such as file preview, Git, and sub-agent right sidebar workbenches, this plugin is not suitable, and you should refer to other interface enhancement plugins such as dsh-TUI and DSH-better-sidebar for those needs.
There are several things to note before using it.
- Web-only. The
dsh.client.platformfield inpackage.jsonisweb, do not expect it to work with headless or pure terminal interfaces. - It will disable the official
ui-workspace. Do not stack another workspace browser on the same sidebar slot. If the sidebar is blank after installation, first check whether you have performed a hard refresh and whether the plugin was installed with thewebprofile on the running instance. - Date grouping and drag-and-drop are mutually exclusive. Version 0.2.0 removed session drag-and-drop sorting to support grouping by local calendar date; do not look for drag-and-drop functions based on old README snippets.
- So-called “deleting sessions” does not physically delete logs. The source code comments clearly state that the Host only provides
archiveSession, and the delete mode only turns archiving into a more noticeable confirmation process. Deleting a workspace also only removes it from the list. - License.
package.jsonand the repositoryLICENSEfile declare the license as AGPL-3.0. GitHub and the community directory currently display the license asNOASSERTION, which is a metadata recognition result, please refer to the license text in the repository. AGPL has reciprocal source code obligations for network services, please read the terms carefully before redistributing or modifying the plugin and hosting it publicly. - Permissions and preview version risks. The plugin runs with the permissions of the current dsh process; DSH is still in developer preview, and slots and Host APIs may be incompatible with future updates. Check the source code before installing, and pin the commit hash for production or shared environments.
- The community directory is not an official store. This article is based on the community directory page and the GitHub/npm repository, not DeepSeek’s official app list.
Summary¶
dsh-plugin-ya-workspace-sidebar has a very focused scope: it replaces the workspace sidebar information architecture of DSH Web, overlaying global recent sessions, workspace secondary menus, breadcrumbs, and date grouping on top of the official Host capabilities, without modifying session storage or DSH source code. When there are many sessions and workspaces, this navigation path is clearer than the flat timeline.
Directory page: https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-plugin-ya-workspace-sidebar/
GitHub: https://github.com/HuanLinOTO/dsh-plugin-ya-workspace-sidebar
npm: https://www.npmjs.com/package/@huanlin/dsh-plugin-ya-workspace-sidebar