dsh-session-sidebar: Add an inbox-style activity view to the DSH sidebar

Introduction

When running many sessions simultaneously in DeepSeek Harness (DSH), the native sidebar only lists them by workspace. You often have to click into each one to know which session is still running in the background, which is stuck in approval waiting for you, or which has finished but hasn’t been opened yet. dsh-session-sidebar (v0.1.0, MIT, maintainer QuentinCrane) refers to the sidebar design of the Codex desktop client to solve this with two things: an “Activity View” to centrally see running status and unread messages, and a “Pinned Area” positioned above the workspace list where you can organize frequently used sessions across projects. It supports both DSH Web and Desktop, automatically taking over the sidebar after installation without needing to modify configuration files.

What is this

One-sentence positioning: adds an inbox-style status filtering to DSH’s session list, plus cross-workspace pinning, tree-based grouping, drag-and-drop sorting, and full-text search. The project is hosted on GitHub (QuentinCrane/dsh-session-sidebar). Star count is not important; the feature descriptions given in the README and the package are relatively complete. The following introduces it by function, installation, usage, and notes.

Core Features

The following lists the verified capabilities item by item, each corresponding to the specific description in the README.

Activity View

Click the bell at the top of the sidebar or press ⌥⌘U (macOS) / Ctrl+Alt+U (Windows, Linux) to toggle. The “Priority” area at the top of the view concentrates three types of sessions: those currently running (with subtask concurrency), those stuck in Pending Approval / Scheduled for Review / Pending Answer waiting for you to handle, and unread sessions that have finished but haven’t been opened yet. Clicking ... to the right of “Priority” allows you to include pinned sessions or sessions with scheduled tasks, enable “Only Unread and Running”, or one-click “Mark All as Read”.

Below priority, recent conversations from each workspace are arranged by Today, Yesterday, Day of Week, or specific date, each with the workspace name and two lines of the latest reply preview. If the default shortcut conflicts with other plugins, it can be modified by searching for “Activity View” in DSH shortcut settings.

Session Pinning: Three Modes

Click the settings button in the top right corner of the sidebar to switch between three pinning modes:

  • Mixed Selection (hybrid, default): Every session’s ... menu has both “Pin to Pinned Area” and “Pin in Workspace”, allowing you to move them back and forth anytime.
  • Independent Pinned Area (space): All pinned sessions are collected into the Pinned Area above the workspace list, each marked with the source workspace.
  • Pin in Workspace (workspace): Hides the top Pinned Area, consistent with native behavior.

In the default mode, after a session is moved to the top Pinned Area, the original workspace is still retained by default. To avoid seeing duplicates on both sides, click ... to the right of “Pinned Area” and check “Hide from original workspace after pinning”. The same menu allows you to change the default pinned position of the hover pin and whether to keep the Pinned Area title when there are no pinned items.

The standard sidebar supports three views: By Workspace, By Workspace Tree (automatically indents subdirectories under the parent workspace based on directory paths), and Single List. In the Pinned Area, inside a workspace, or in a single list, holding the session row and dragging up or down switches to manual sorting and remembers the order. You can also switch back to sorting by recent update in the settings in the top right corner.

The search box at the top filters session titles and workspace names in real-time; pausing for a moment also performs a full-text search on historical chat content (Esc clears and exits). Original operations such as renaming, forking sessions, manually marking as read/unread, copying Session ID, archiving filtering, and the directory selection popup when creating a new workspace are all retained; a popup will appear to confirm stopping before archiving a running session.

Agent Tool activity_pins

The plugin registers the activity_pins tool for the model, reading and writing the same state as the frontend sidebar, allowing you to operate directly in the conversation using natural language, such as “Mark all unread sessions as read” or “Pin the current session to the Pinned Area and hide it from the original workspace”. Supported actions include:

  • list_activity: List running status, unread flags, and latest reply summaries of sessions in each workspace.
  • list_pins: Returns all pinned sessions and their locations (space / workspace) in the current order.
  • status: View current pin mode, default pin target, read baseline, and Activity View settings.
  • pin_space / pin_workspace: Pin to the top Pinned Area or within the belonging workspace.
  • unpin: Unpin, synchronously updating the native workspaceRegistry.
  • set_pin_mode: Modify global pin mode and Pinned Area display options.
  • mark_read / mark_unread / mark_all_read: Manually mark a single or all as read/unread.
  • set_activity_prefs: Modify Activity View filtering preferences.

Installation and Enabling

The profiles for Web and Desktop are separate; you install on the side you use. Installation commands come from the plugin README:

# DSH Web
dsh plugin --profile web add github:QuentinCrane/dsh-session-sidebar

# DSH Desktop
dsh plugin --profile desktop add github:QuentinCrane/dsh-session-sidebar

After installation, refresh the page (Web) or restart the client (Desktop), and the plugin will take over the sidebar directly without needing to modify configuration.

When debugging source code locally, use link: to point to the absolute path of the repository (remember to add quotes when the path contains spaces or &):

dsh plugin --profile <profile> add "link:/path/to/dsh-session-sidebar"

A note on Desktop: Newly installed DSH Desktop needs to be opened once first to generate the default profile before completely exiting and running the Desktop built-in dsh command; if dsh cannot be found in the terminal, it can be enabled in the Manage dsh Command in the app menu. The README provides a link to the official documentation.

Data Storage and Uninstallation

Pinned positions, manual sorting, and read timestamps are saved in the Host’s storageDomain (dsh-session-sidebar), falling back to memory mode only if the storage domain fails to open. If pinned or read status is lost after restarting DSH, first check if the currently running DSH profile matches the one specified when installing the plugin.

To uninstall, remove dsh-session-sidebar from the plugin list of the corresponding profile (or delete the plugin entry injected by cordis.patch.yml in the configuration), and refresh or restart DSH to restore the native sidebar. Saved pinned and read records will remain in the storage domain and can be continued to use upon re-enabling later.

Suitable Scenarios and Notes

Suitable for developers who maintain multiple workspaces and run multiple background sessions simultaneously on DSH Web or Desktop. The plugin provides both the frontend interface and the activity_pins tool for the Agent, so both manual organization and delegating organization to the model are available.

Note two points. First, Web and Desktop profiles are independent; installing on one side will not take effect on the other, a common misconception listed specifically in the README. Second, the plugin runs with the current dsh process and has the permissions of that process. Before installing, you should check the source code and license (this project is MIT). This article only summarizes the README and package information and has not been verified through actual execution.

Conclusion

The value of this sidebar lies in transforming the process of “finding which session to handle” from clicking one by one to instant visual separation, while retaining organizational tools like the workspace tree, drag-and-drop sorting, and full-text search. The directory page is at skillhub.cn (QuentinCrane/dsh-session-sidebar), the source code is at github.com/QuentinCrane/dsh-session-sidebar, and the license is MIT.

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye