DSH (DeepSeek Harness) allows running agents locally, commonly used for data queries or as a long-running resident assistant. During development or use, users often need to retrieve real-time information on the desktop (such as stock quotes) or view notes, rather than being confined to the chat box. Existing web-based solutions have a fragmented experience. The DSH Desktop Widget Center plugin provides a native macOS mini-window solution, presenting data on the desktop through a separate process.

Plugin Overview

This plugin is developed by maintainer NattoCB and is named nattocb/dsh-widget-center. It is a DSH plugin whose core function is managing any number of native macOS mini-windows on the desktop. It mainly supports two widget types: Market Quotes (shares) and Notes (notes). Each instance has its own independent window, configuration, and lifecycle without interfering with one another.

Core Features

Native macOS Desktop Windows

Widgets run as NSPanel + WKWebView, appearing as borderless native windows with no Dock icon. Windows can follow all desktop spaces and can be dragged to any position. The right-click menu provides actions such as refresh, reset size, and stay on top toggle. The window is an independent detached process, so even if DSH restarts, already-open windows will continue running.

Multi-instance Management

The plugin supports independent management of multiple instances. Users can create multiple instances on the “Widget Center” page in the sidebar of the DSH settings UI. For example, they can open multiple quote windows to monitor different stocks, or open multiple note windows to record different items. Instance states (running/hidden) and configurations are persisted immediately.

Market Data and Tools

Quote widgets support multi-source data providers (Tencent, East Money, Sina, Yahoo, Binance), with automatic fallback by priority. They support A-shares, HK equities, US equities, foreign exchange, and cryptocurrency symbols.
The plugin integrates the market_quote model tool. When a session asks about a specific stock code (for example, “What is the current price of 159845?”), the Agent can call this tool to retrieve a standardized quote. Market data is fetched directly by the host-resident process, with zero token consumption.

Type Studio Extensions

The plugin supports creating new widget types using Type Studio, providing a foundation for future feature expansion.

Installation

Before installing, ensure that swiftc (i.e., Xcode Command Line Tools) is installed on the system; otherwise, an error will occur when launching a Widget for the first time.

dsh plugin --profile web add github:NattoCB/dsh-widget-center

Usage

After installation, the plugin will be added to the DSH settings interface.

  1. Find the “Widget Center” page in the sidebar of the DSH settings UI.
  2. Click the “Show on Desktop” button on a card in the list.
  3. A native mini-window appears on the desktop. For the quote widget, it displays red-up/green-down charts and prices; for the note widget, it displays multi-line text.
  4. In a DSH conversation session, ask for data directly, for example:
    > What is the current price of 159845?
    The Agent will call the market_quote tool and return the current price.

Notes and Known Limitations

  • Dependencies: Xcode Command Line Tools must be installed.
  • Futures Symbols: Futures symbols (such as nf_CU0) are currently not supported.
  • Proxy Support: Only socks5 proxies are supported.
  • API Limitations:
    • The Sina API requires a fixed Referer header; otherwise, it returns 403.
    • The East Money API may return 502 during high-frequency access; the plugin has built-in rate limiting and retry mechanisms.
  • License: MIT.

The plugin saves its configuration file at $DSH_HOME/storages/widget-center/settings.json and supports hot updates via API.