DeepSeek Harness (DSH) uses a plugin architecture. The runtime state of Agents is typically viewed in the Web UI. If you need a quick system-level view of the current number of active Agents and pending events, visual feedback is required. The following describes dsh-notify, a macOS menu bar status item plugin for DeepSeek Harness, maintained by user linbin-mk.
Core Features¶
The plugin adds a status item to the macOS menu bar, including a whale icon and the current state.
- Real-time session count: The status item displays the number of Agents whose status is
running. When the count is zero, only the whale icon is shown in the menu bar. - Pending event markers: When subscribed events are waiting for handling, the number switches to the total number of these events. Letters are used to identify event types:
Qrepresents questions andSrepresents approvals. For example,2-QSmeans one question and one approval are waiting for handling. - Sweep-enhanced prompts: When subscribed events are waiting for handling, a sweep of light moves across the whale icon and the adjacent number. The highlight only appears on the icon and the glyphs, not on the entire status item.
- Click to focus: Clicking the status item brings the existing Google Chrome tab for this Harness process to the foreground. It never creates a new tab.
- Settings without restart: The status item, the two types of subscriptions, and the sweep effect can be toggled in real time from the built-in settings panel of Harness, without restarting Harness.
Installation¶
Before installation, ensure the environment meets the following requirements:
* macOS 13 or later
* Node.js ^22.19 or >=24
* DeepSeek Harness 0.2.1-alpha.2 or a compatible version
Install it using the official package:
dsh plugin --profile web-notify add @linbin-mk/dsh-notify
If you need to install a locally built tarball, run:
npm test
npm pack
dsh plugin --profile web-notify add ./linbin-mk-dsh-notify-0.5.0.tgz
Configuration and Usage¶
The plugin provides configuration options to control the display and behavior of the status item. They are managed through the built-in settings panel in the Web Client, and changes take effect immediately.
enabled: Whether to display the menu bar status item. Disabling it stops the native helper.questionMarkers: Whether to count pending questions. Each pending question corresponds to oneQ.approvalMarkers: Whether to count pending approvals. Each pending approval corresponds to oneS.sweep: Whether to play the sweep effect when there are pending events.
As long as marker letters are displayed, the number represents the number of subscribed pending events. After disabling both subscription types, the number reverts to the session count.
Privacy and Limitations¶
The plugin only listens to the following system events: agent/status, agent/disposed, user-questions/request, and approval/request. It only sends the non-negative aggregate session count, the count of subscribed events, marker letters, and the sweep setting to the native helper through standard input. It does not send session IDs, prompts, model outputs, credentials, or file paths.
The plugin depends on ctx.agents, ctx.webServer, and the settings service provided by DeepSeek Harness. The counting logic covers the full activity interval of an Agent, including consecutive queued turns and the final checkpoint.
Summary¶
dsh-notify provides DeepSeek Harness users with a lightweight runtime status feedback entry in the macOS menu bar. Through intuitive numbers and sweep prompts, it helps developers quickly identify active Agents and pending tasks while protecting sensitive data.
Project source and updates: GitHub.