Plugin directory / Developer / dsh-bull-bear
dsh-bull-bear
Verified · install-tested on dsh potoior
What it does
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. / 牛熊行情宠物插件。
Works — verified, early-stage project
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. / 牛熊行情宠物插件。 It installs cleanly and boots without issues in our testing. It's early-stage but functional.
“Verified” means our automated CI actually ran dsh plugin add in a clean profile and it booted — nothing more. Feature descriptions and version compatibility are the author’s claims. This is not a security audit and not an endorsement of third-party code.
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
Install
Install the catalog once, then DeepSeek Harness can find and install any plugin from this site automatically:
dsh plugin add dshbase-catalog Then say "install dsh-bull-bear for me" — your agent finds it in the directory and installs it. Docs: dshbase-catalog · verified packs.
This plugin is GitHub source (not published to npm) — install it straight from the repo:
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 Test report
Verified: L1 install + L2 load + L3 runtime from GitHub source on dsh 0.1.0-rc.6.