DeepSeek Harness Plugin

SuCriss/dsh-leekbox

Stars ★ 4 Category Tools & Capabilities Added 2026-08-27

A-share market dashboard: realtime quotes and indices, millisecond full-market search, market sentiment thermometer, candlestick K-line detail popups, watchlist, ETF/convertible-bond/LOF boards, screener, and a 7x24 aggregated news feed.

Install

# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)

dsh plugin --profile web add github:SuCriss/dsh-leekbox

Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).

README

English | 简体中文

An A-share market dashboard as a DeepSeek Harness (DSH) web client plugin. Click the 🥬 entry in the DSH sidebar to open the dashboard.

Tab What it does
📊 大盘 SSE / SZSE / ChiNext / STAR50 realtime indices, 30s auto-refresh
💹 行情 Search stocks / ETFs / convertible bonds / LOFs (code, name, pinyin) + multi-pool boards (A-share / ETF / convertible bond / LOF, by gain, amount, turnover or main net inflow) + sector boards + dragon-tiger list
⭐ 自选 Persistent watchlist with realtime quotes ($DSH_HOME/.leekbox-watchlist.json), grouped; position cost & live P/L (click the qty/cost cells to edit inline; live floating P/L + return % + a summary bar), price alerts (🔔 per-row button: price above/below, % move thresholds; watched during trading hours, toast + desktop notification + beep on trigger, then auto-removed; persisted in $DSH_HOME/.leekbox-alerts.json); one-click JSON backup / CSV export (position fields included), import from JSON/CSV/text (merge or replace)
🔍 选股 Multi-signal screener over the whole market: pool + basic filters + technical signals, weighted score ranking
📰 快讯 7x24 news aggregated from Sina, Eastmoney and Jin10, filterable by source; important items highlighted in red

The market tab opens with a sentiment thermometer: limit-up / limit-down / broken-board counts, whole-market up/down breadth, a consecutive-board ladder (2板/3板/… plus the highest board), and an expandable limit-up pool list (click a name to open its detail popup).

Clicking any stock name (including in the watchlist) opens a dedicated detail popup window, Tonghuashun-style: large price header, 15 live indicators, an intraday minute chart (price line + volume-weighted average line + volume bars + prev-close baseline with a relative-% right axis and hover tooltip), candlestick K-line — forward-adjusted (qfq), day/week/month/5m/30m, with MA5/10/20 overlays, volume subchart, last-price line and a hover crosshair legend — plus a main money-flow bar chart (last 15 days, inflow red / outflow green, hover shows the day's net inflow) over the flow detail table, and an F10 fundamentals card (last 8 report periods: revenue / net profit with YoY, weighted ROE, gross margin, debt ratio, EPS — Eastmoney F10 feed). Popups are draggable, can be stacked for comparison, close via ESC or the backdrop.

Data sources

  • Realtime quotes / indices / K-line: Tencent Finance (qt.gtimg.cn, web.ifzq.gtimg.cn, ifzq.gtimg.cn)
  • Rankings / screener universe: Sina Finance (vip.stock.finance.sina.com.cn)
  • Search suggest: Eastmoney (searchadapter.eastmoney.com)
  • News: Sina zhibo stream + Eastmoney fast news (np-listapi.eastmoney.com) + Jin10 flashes; cross-source dedup merges the same event into one item even when worded differently

All requests are proxied by the plugin's host half (a cordis plugin inside the web profile) and served to the browser same-origin under /api/leekbox/*, loopback-only. For research reference only — not investment advice.

Requirements

  • DeepSeek Harness (DSH) >= 0.1.1-rc.1 (declared in package.json as dsh.engines.dsh)
  • Runs in the web profile only (dsh.client.platform: "web"): the route host lives inside the DSH process, and the browser bundle talks to it same-origin under /api/leekbox/* (loopback only)

Install

dsh plugin --profile web add <this repo>

or manually:

mklink /J "$DSH_HOME\profiles\web\node_modules\dsh-leekbox" "<repo path>"
# then append to $DSH_HOME/profiles/web/cordis.patch.yml:
# - insert:
#     - id: leekbox
#       name: 'dsh-leekbox'

Refresh the page after install. Host-side changes need a DSH restart.

Structure

  • lib/index.js — host half: /api/leekbox/* routes + watchlist persistence
  • lib/client.js — browser bundle: sidebar entry + dashboard panel (React). Generated, do not hand-edit — sources live in src/client/ (14 single-responsibility files), bundled with esbuild via npm run build (npm run dev for watch mode); React is injected by the host and never bundled
  • lib/screener.js — screener engine (indicators computed from daily K-line)
  • cordis.patch.yml — plugin roster registration (dsh.bundle.patch)

Disclaimer

This plugin only aggregates public free quote endpoints; data may be delayed or missing. Everything here is for learning and research, not investment advice. 股市有风险,入市需谨慎。

Content from the project README on GitHub ↗

Links

More in this category

View the whole category →

Community comments

Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.