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.
- Find the “Widget Center” page in the sidebar of the DSH settings UI.
- Click the “Show on Desktop” button on a card in the list.
- 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.
- In a DSH conversation session, ask for data directly, for example:
> What is the current price of 159845?
The Agent will call themarket_quotetool 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
socks5proxies are supported. - API Limitations:
- The Sina API requires a fixed
Refererheader; 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.
- The Sina API requires a fixed
- License: MIT.
The plugin saves its configuration file at $DSH_HOME/storages/widget-center/settings.json and supports hot updates via API.