dsh-marketboard
Manifest validQuote board for A-shares, Hong Kong and US stocks, FX, Chinese and global commodity futures and indices, with watchlists, custom groups, auto-refresh and host-side persistence.
dsh-marketboard
中文 | English
A focused real-time quote board for DeepSeek Harness. It puts A-shares, Hong Kong and US stocks, FX majors and crosses, domestic/international commodity futures and global indices into one clean watchlist — lists and live prices only, no charts.
The UI is a native DSH Client plugin: it follows the active light/dark theme, uses the Harness locale service, and persists the watchlist on the host side.
Highlights
- One board, seven markets — A-shares, Hong Kong, US, FX, China futures, global futures and indices. Filter by group, search inside the watchlist and sort by move.
- Live by default — 3/5/10/30/60-second auto-refresh, pause/resume, manual refresh, and stale-quote markers when an upstream source hiccups.
- A useful watchlist — 49 curated instruments on first run; star to pin, remove with one click, add through search or a manual code form.
- Custom groups — keep instruments from different markets in one named collection. Create, rename, delete and tick members; A-shares / Hong Kong / US / FX / China futures / global futures / indices remain immutable default groups.
- A real dashboard, not a table dump — breadth/up-down counts, average move, top gainer/loser, last update, day-range position, open and previous close.
- Made for the Harness — theme tokens only for UI colour, localized (zh/en), responsive, and built with local React controls (no Harness Client package imports).
- Host-side persistence —
<DSH_HOME>/dsh-marketboard/data.jsonwith atomic writes, a.bakfallback and the latest 20 timestamped backups. No localStorage.
Markets and symbols
| Group | Markets | Default examples |
|---|---|---|
| A-shares | cn | 600519 贵州茅台, 300750 宁德时代, 002594 比亚迪 |
| Hong Kong | hk | 00700 腾讯控股, 09988 阿里巴巴-W, 03690 美团-W |
| US | us | AAPL, NVDA, MSFT, TSLA, AMZN, META |
| FX | fx | USDCNH, EURUSD, GBPUSD, USDJPY, EURJPY, GBPJPY, AUDJPY … |
| China futures | futcn | RB0, CU0, AU0, AG0, SC0, M0, I0, TA0 |
| Global futures | futgl | CL=F, GC=F |
| Indices | index | 上证指数, 深证成指, 创业板指, 恒生指数, 标普500, 纳斯达克, 道琼斯, 日经225 |
Manual code formats:
- A-share
600519orsh600519/sz000001 - Hong Kong
00700or700 - US
AAPL,BRK.B - FX
EURUSD,EUR/USD,EURUSD=X - Domestic futures
RB0(main continuous),RB(autoRB0), or a contract code - International futures
CL,CL=F - Index
sh000001,sz399001,^GSPC,^HSI
Data sources
All endpoints are public and require no API key or account.
| Asset | Primary | Fallback |
|---|---|---|
| A-shares / HK / US stocks / A-share indices | Tencent qt.gtimg.cn (batch) | Sina hq.sinajs.cn |
| FX (majors + crosses) | Sina fx_s* (batch) | Yahoo Finance chart |
| Domestic commodity futures | Sina nf_* (batch) | — |
| International commodity futures | Sina hf_* | Yahoo Finance chart |
| Global indices | Sina int_* | Yahoo Finance chart |
The host fetches all primary quotes in at most two batched requests per refresh, then only falls back for symbols that are still missing. Last successful quotes are cached for 15 minutes and marked as stale when reused.
Quotes may be delayed, incomplete or temporarily unavailable. This plugin is read-only and does not place orders.
Install
This repository is a DSH bundle (dsh.bundle.patch + dsh.client).
Option A — DSH CLI
dsh plugin --profile desktop add file:/absolute/path/to/dsh-marketboard
Option B — Plugin Manager
Add the repository folder as a local bundle in the DSH Plugin Manager, then enable it.
After installation, refresh the DSH Web GUI (Ctrl+R). If the host half was already loaded, reload the profile patch (remove and re-add the dsh-marketboard insert row) or restart the desktop app once.
To submit this plugin to dshmarket / the plugin market, see PUBLISHING.md.
Usage
- Open Marketboard in the left navigation.
- Use the group chips to switch markets or custom groups. Default market groups are automatic and cannot be deleted.
- Press New group to create a custom collection, then tick its members; use Manage to rename or delete custom groups.
- Press Add symbol to search by name/ticker or to enter a code manually. When a custom group is active, new symbols are added to that group too.
- Hover a row: the star pins it to the top, the
×removes it. - Pause automatic refresh from the toolbar; refresh manually at any time.
- Open Settings to change refresh interval, up/down colours (red-up/green-down or the reverse) and density.
Architecture
| Half | File | Responsibility |
|---|---|---|
| Host | lib/index.js | Cordis plugin; registers /api/dsh-marketboard/state, /quotes and /search; owns persistence, validation and all upstream fetching |
| Client | lib/client.js | DSH __ModuleLoader__ CJS factory; registers main (keyed panel) and sidebar.panellist (nav row); renders the React UI |
Browser calls use relative paths (api/dsh-marketboard/...), which works with the IPC-backed fetch used by the DSH desktop Web GUI.
Host API
All routes are POST JSON.
| Route | Body | Description |
|---|---|---|
/api/dsh-marketboard/state | {op:'get'} | Load watchlist + settings |
{op:'add', item:{market,code,name?}} | Add and normalize an instrument | |
{op:'remove', id} | Remove an instrument | |
{op:'favorite', id} | Toggle pin | |
{op:'saveSettings', settings} | Persist preferences | |
{op:'resetWatchlist'} | Restore the built-in default list, keeping settings and custom groups (members still present are kept) | |
{op:'addGroup', name} | Create a custom group | |
{op:'renameGroup', id, name} | Rename a custom group | |
{op:'deleteGroup', id} | Delete a custom group (instruments stay watched) | |
{op:'setGroupItems', id, itemIds} | Set custom group members | |
/api/dsh-marketboard/quotes | {} | Fetch current quotes for the watchlist |
/api/dsh-marketboard/search | {q, group} | Search the built-in catalog and Tencent stock search |
The host validates and canonicalizes every write; the browser never picks its own IDs. The watchlist, settings and custom groups live in the local data file; default market groups are implicit and cannot be changed or deleted.
Compatibility
- DSH
>= 0.2.0-rc.2 || >= 0.2.1-rc.2(verified against the current desktop build) - Node
^22.19.0 || >= 24.0.0 - Web GUI platform
Privacy
- No account, cookies or API keys.
- No telemetry.
- Only public quote/search endpoints are contacted by the host; the browser only talks to the local DSH API.
- Watchlist and settings never leave the machine.
Disclaimer
The quotes are aggregated from public endpoints for personal reference only. They are not guaranteed to be accurate, complete or real-time and do not constitute investment advice. You are responsible for complying with the terms of the upstream data providers and for any decisions you make.
License
MIT © 2026 gary
Versions
| Latest version | Published | Size |
|---|---|---|
| 0.2.1 | — | — |
Comments
Loading…
From the same category
by anywhere-labs
为 DeepSeek Harness (DSH) 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。
★ 34.4k
↓ 175/wk
MIT
TypeScript
Oct 31, 2026
dsh plugin --profile web add dsh-plugin-desktopby zhu1090093659
DeepSeek Harness (DSH) Web Plugin Aggregation Ecosystem · Everything is a plugin, distributed via the Creative Workshop
★ 9.9k
↓ 225/wk
Apache-2.0
TypeScript
Nov 2, 2026
dsh plugin --profile web add dsh-webA collection of independent Web UI plugins and skins, including task boards, Git graphs, mobile access, and live token stats.
★ 8.6k
↓ 225/wk
Apache-2.0
TypeScript
dsh plugin --profile web add dsh-webby PC2005-cloud
DSH 桌面宠物:一行命令装好即用的透明动画小桌宠,支持多开、大小位置随心配置;还内置 DIY 素材链,能用 AI 视频自造专属宠物
★ 5.2k
↓ 224.8k/wk
MIT
TypeScript
Nov 2, 2026
dsh plugin --profile web add dsh-petby omdsh-dev
开放的侧边栏底座,支持三方拓展注册新侧边栏页面。内置文件渲染编辑/终端/侧边对话/Git/子代理页面 | Open sidebar foundation, supports third-party extensions to register new sidebar pages. Built-in file rendering/editing, terminal, side chat, Git,
★ 4.8k
↓ 99.3k/wk
MIT
TypeScript
Oct 30, 2026
dsh plugin --profile web add dsh-better-sidebarby bowenliang123
The best DeepSeek Harness plugin for context insight and management, with context dashboard / browser / sidebar and context command, for context statistics, composition, breakdown, evolution details,
★ 4k
↓ 139k/wk
Apache-2.0
TypeScript
Nov 2, 2026
dsh plugin --profile web add dsh-context