🧩 dsh-ticker-jp
A small floating stock ticker for the top-right corner of DeepSeek Harness. It supports worldwide markets via Yahoo Finance — Japanese stocks (.T), US stocks, Hong Kong (.HK), mainland China (.SS/.SZ) and any other symbol Yahoo serves — with real-time quotes, a customizable watchlist and display-name aliases. Out of the box it shows the TOPIX-linked ETF and the Nikkei 225. Forked from dsh-stock-ticker: the floating-window interaction comes from upstream, while the data source was switched to Yahoo Finance to cover markets around the globe.
📸 Preview
✨ Features
- Draggable, collapsible window that follows the DSH theme
- One row per symbol: name, price, change percent; red for up by default
- Watch symbols from worldwide markets (Japan
.T, US, Hong Kong.HK, mainland China.SS/.SZ…), with 4-digit shorthand andcode:display namealiases - Smart polling: when every watched market is closed, it checks once a minute instead of every 5 seconds
- Up/down colors switchable between Japanese and US conventions
- 16 UI languages, auto-detected from the browser on first run, changeable any time
- Window position, collapsed state, watchlist, palette and language all persist locally
- One-click restore to defaults
Default symbols
| Display | Code | Note |
|---|---|---|
| TOPIX ETF | 1306.T |
Yahoo no longer serves the TOPIX index, so its linked ETF is used instead |
| 日経225 | ^N225 |
The Nikkei 225 index |
🚀 Install
Install from npm (prebuilt, no build approval needed), or straight from the GitHub source:
# npm (recommended)
dsh plugin --profile web add dsh-ticker-jp
# GitHub source
dsh plugin --profile web add github:MurasakiIzumi/dsh-ticker-jp
Restart DSH (or choose "restart now") and the widget appears at the top-right of the page.
⚙️ Usage
- Click the ⚙ button in the title bar to open settings.
- Each row is code + display-name input + remove button. Editing the name applies immediately; leaving it blank falls back to built-in shorthand → Yahoo name → code.
- Use the box at the bottom to add symbols:
9984.T,AAPL, or9984(a bare 4-digit code gets.Tappended, Japan only).9984.T:SoftBankadds a symbol with an alias. - Palette and language controls sit in the middle of the panel and apply immediately.
- "Restore default" returns to TOPIX ETF + Nikkei 225; "Done" closes the panel.
🗂️ Code structure
dsh-ticker-jp/
├── lib/index.js # Host: registers the /dsh-ticker-jp/quotes route
├── lib/client.js # Client: widget UI, polling, watchlist/aliases
├── lib/index.d.ts # Host type declarations
├── lib/client.d.ts # Client type declarations
├── host.js # Dynamic-plugin host half (optional)
├── client.js # Dynamic-plugin client half (optional)
├── package.json # Package manifest
├── cordis.patch.yml # Bundle patch
├── CHANGELOG.md # Changelog
├── assets/ # Screenshots
├── LICENSE
├── README.md # English (main)
├── README.zh-CN.md # 简体中文
└── README.ja.md # 日本語
The same code ships in two forms: lib/ is the bundle that stays installed in DSH; host.js / client.js form the dynamic-plugin variant for temporary runs. They are functionally equivalent.
🔌 Data source
- Yahoo Finance chart API:
https://query1.finance.yahoo.com/v8/finance/chart/{code}?interval=1d&range=1d - Free, no authentication. Price from
meta.regularMarketPrice, change percent frommeta.regularMarketChangePercent, name fromlongName/shortName - Covers worldwide markets — Japan
.T, US, Hong Kong.HK, mainland China.SS/.SZand any other Yahoo-supported exchange - Each quote carries the exchange timezone and exchange name so the client can tell when local markets trade
- Names come from Yahoo, never a built-in table; the two defaults get shorthand names in the display layer only
🧪 Dynamic plugin (optional)
Loads without installing, for a quick trial:
- Create a plugin with
cordis_define: paste host.js ascode.hostand client.js ascode.client. - Activate with
cordis_run; approve the client on first run. - Refresh the page to see the widget.
The dynamic form behaves like the bundle. The only difference is the Host fetch path: the dynamic Host runs in a restricted sandbox and fetches through ctx.web, while the bundle uses native fetch. The RPC contract is the same.
📄 License
The floating-window implementation and structure come from FeiZhuNiU-INFJA's dsh-stock-ticker (Copyright (c) 2026 Yulin). This fork replaces the data source, adds the watchlist feature and extends coverage to worldwide markets (Copyright (c) 2026 XuZhichao).
No comments yet. Be the first to write one.