插件目录 / Developer / dsh-bull-bear
dsh-bull-bear
已验证 · 实测可装 potoior
功能简介
Real-time stock market pet for DeepSeek Harness: the faster price rises the higher the bull raises its head, the faster it falls the deeper the bear lowers its head. Free Sina quotes. / 牛熊行情宠物插件。
可用 — 实测通过,早期项目
Real-time stock market pet for DeepSeek Harness: the faster price rises the higher the bull raises its head, the faster it falls the deeper the bear lowers its head. Free Sina quotes. / 牛熊行情宠物插件。 实测能干净安装、正常启动。早期项目,但功能可用。
「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。
README
dsh-bull-bear
Bull & bear market pet for DeepSeek Harness: the closer your portfolio climbs toward a 20% gain, the harder the bull sprints; the deeper it falls, the more theatrically the bear tumbles.
A market-status pet in the bottom-left corner of the DeepSeek Harness Web UI. It reads free, real-time A-share quotes and turns your watchlist's average move into a running bull or bear that charges harder the more the market moves. Purely for fun — not investment advice.
Features
- Free real-time quotes: Sina
hq.sinajs.cnpublic endpoint — no login, no API key, fetched directly from Node. - Portfolio-driven mood: the pet follows your whole basket's average. Gain → bull (🐂); fall → bear (🐻); flat → calm.
- Dramatic, vigor-driven running: the closer the average move gets to a 20% gain, the faster the pet sprints, the wider its limbs swing, the higher it jumps and the denser the dust it kicks up. Horizontal when flat, furious when the market runs.
- Anthropomorphic designs: a running bull, and a Boonie-Bears-style standing bear (red-brown fur, white chest band, big nose, green eyes, red ears).
- Draggable & collapsible: grab the pet and move it anywhere; click (without dragging) to toggle the watchlist panel.
- Watchlist panel: brick-and-mortar list of every held symbol with red/green change, portfolio average at the bottom, and search-by-name/code to add or remove holdings.
- 🏁 Market race: a "race track" section where each holding runs a bar whose length is proportional to its change — the biggest mover fills its lane, the rest scale relative to it.
- Scales to many symbols: up to 200 held symbols, fetched in chunks of 500 to stay under Sina's single-URL limit.
Install
# npm package (prebuilt, recommended)
dsh plugin --profile web add dsh-bull-bear
# or a local directory
dsh plugin --profile web add /path/to/dsh-bull-bear
Restart dsh web once after adding, then refresh the page to see the pet.
Usage
- Drag: press and hold the pet with the mouse, then move it anywhere in the window; release to leave it there. Position is kept for the session.
- Open / close the panel: click the pet without dragging to toggle the watchlist panel on the right.
- Watchlist panel:
- Each row shows the stock's name and its change in A-share colors — red = up, green = down.
- The search box accepts a name or code (e.g.
茅台,600519); matching stocks appear below and one click adds them. - The
✕button on a row removes that holding. - The portfolio average (
组合平均) is shown at the bottom, also in red/green. - Edits are written to
<workspace>/.bull-bear-watchlist.jsonand reapplied on startup (up to 200 symbols).
- 🏁 Market race: the uppermost section lists your holdings sorted by change, each with a lane whose filled width is proportional to the biggest mover — the leading stock fills 100%, the rest scale by their ratio. The row marks show the top 6 movers.
Config
| Key | Default | Description |
|---|---|---|
symbols |
SSE/SC/ChiNext/Moutai/CATL | watchlist (Sina codes like sh000001/sz399001; a 6-prefixed 6-digit code is auto-detected as SSE) |
refreshMs |
5000 |
quote refresh interval (ms) |
sensitivity |
1 |
rate→angle multiplier (0.1–5) |
Defaults live in the config object in src/index.js; they can be adjusted at runtime via the RPC interface.
How it works
- Host half (
src/index.js): everyrefreshMsit fetches Sinahq.sinajs.cnwith nativefetch, decodes GBK, computes each symbol's change vs previous close (pct) and its rate, then the portfolio average (avgPct,avgRate). Because Sina rejects URLs over ~800 symbols (HTTP 431), the watchlist is fetched in chunks of 500. Asearchaction resolves names/codes through Tencent'ssmartboxendpoint. All of it is exposed over the officialctx.connection.rpc.handle('/bullbear'...)channel. - Client half (
src/client/index.js): polls the RPC, derives a vigor (|avgPct| / 20, capped) that scales running speed, limb swing, jump height and dust; an animation loop drives the limbs by frame. The panel and race track read the same data. Registered into theshell.overlayslot.
mood within a window: portfolio avgPct > 0.05 shows the bull, avgPct < -0.05 the bear, otherwise flat.
Disclaimer
- Data comes from Sina Finance's public web interface, for study and research only, and is not investment advice; do not poll aggressively and respect the source site's terms.
- This plugin is not an official product of any broker or quote provider.
License
安装
装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:
dsh plugin add dshbase-catalog 然后对 agent 说「帮我装 dsh-bull-bear」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。
该插件是 GitHub 源码(未发 npm)——直接从仓库装:
Web profile:
dsh plugin --profile web add github:potoior/dsh-bull-bear Headless(CLI)profile:
dsh plugin --profile headless add github:potoior/dsh-bull-bear 实测报告
验证通过:从 GitHub 源码完成 L1 安装 + L2 加载 + L3 运行(dsh 0.1.0-rc.6)。