DeepSeek Harness plugin

dsn-finance-lab

DeepSeek Harness finance plugin: direct market HTTP APIs, portfolio settings, model tools

Jump to install

Source facts

Repository
looput/dsn-finance-lab
Latest update
Aug 20, 2026
Category
Plugin Markets & Managers
GitHub stars
1
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/looput/dsn-finance-lab
Plugin: dsn-finance-lab
Author: looput

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer3 files
README.en.mdSource · read only
README language

DSN Finance

> Turn DeepSeek Harness from “look up a quote” into a practical market, portfolio, and research workspace.

中文版 · [MIT License](./package.json)

DSN Finance is a finance plugin for DeepSeek Harness. It brings A-shares, Hong Kong stocks, US stocks, funds, macroeconomic data, and financial news into model tools, while providing a dockable local finance panel. Market data uses public HTTP endpoints directly; holdings and watchlists stay in a local JSON file, making the plugin useful for personal research, portfolio reviews, and multi-agent analysis.

<img width="1331" height="804" alt="DSN Finance panel" src="https://github.com/user-attachments/assets/3fa063b1-22ef-404b-8fb9-1d230b7e66c0" />

What you can do

  • Track multiple markets: quotes, K-lines, sample lists, and symbol resolution for A-shares, Hong Kong stocks, US stocks, and public funds.
  • Move from data to signals: calculate MA, MACD, RSI, and KDJ locally; inspect financial indicators, indices, and sector boards.
  • Follow the market narrative: read China CPI/PPI/PMI/GDP/M2, market flashes, stock news, and search the web through DuckDuckGo without an API key.
  • Manage a personal portfolio: maintain holdings and watchlists, calculate value and P&L, and inspect asset/market allocation plus top-1, top-3, and HHI concentration.
  • Run structured research: built-in market, fundamentals, macro, fund, news, and risk-management playbooks can be delegated to DSH subagents and combined into one report.

Core experience

One panel, seven views

Open 📈 Finance Panel from the sidebar:

ViewIncludes
QuotesIndices, watchlist trends, mini K-lines, and refreshable quotes
MarketLeading/lagging sectors for a quick view of where risk is building
HoldingsP&L, portfolio value, stock/fund allocation, and concentration
FundsOpen-ended fund ranking, NAV data, and add-to-watchlist actions
MacroCPI, PPI, PMI, GDP, money supply, and trend lines
NewsGlobal market flashes and stock news for holdings/watchlist symbols
InterfacesProvider health and the currently selected data source

You can also give the Agent a holdings screenshot and let it write the recognized positions through import_holdings; the panel refreshes afterward. Click any stock or fund in your holdings/watchlist to open a full AI analysis. Generation starts only after that explicit click, the report is cached locally, and you can regenerate it on demand. The plugin only changes local portfolio data. It does not place trades.

Finance tools for models

AreaToolsCapabilities
A-sharesget_realtime_quote · get_stock_kline · search_stock · get_stock_listQuotes, daily/weekly/monthly K-lines, and sample-list search
A-sharesget_market_overview · get_financial_indicators · get_sector_boardIndices, financial indicators, and sector boards
Hong Kongget_hk_quote · get_hk_kline · get_hk_listQuotes, K-lines, and sample lists
US stocksget_us_quote · get_us_klineYahoo-first quotes and K-lines with Eastmoney fallback
Fundsget_fund_quote · get_fund_kline · get_fund_rankNAV, historical NAV trends, and category rankings
Generalsearch_symbol · get_stock_infoCross-market symbol resolution, profiles, and market caps
Researchcalculate_technical_indicators · get_macro_chinaMA/MACD/RSI/KDJ and China macro series
Newsget_market_news · get_stock_news · web_searchMarket flashes, stock news, and free web search
Portfolioget_portfolio · analyze_portfolio · upsert_holding · import_holdings · remove_holding · save_position_analysisCRUD, bulk import, P&L, risk analysis, and analysis caching
Watchlistadd_watchlist · remove_watchlist · get_portfolio_fileLocal stock/fund watchlists and file access
Operationsprobe_finance_sourcesSerial endpoint checks and provider fallback ordering

Quick start

1. Install and build

Requires Node.js >=20:

cd dsn-finance-lab
npm install
npm run build

2. Probe public data sources first

Eastmoney, Tencent, Yahoo, and DuckDuckGo are public sources and may be affected by network conditions, anti-bot controls, or rate limits. Run a probe on first use; the plugin loads the report at startup and prefers healthy providers:

npm run probe

# Customize the report path and request gap
npx tsx scripts/probe_sources.ts \
  --out data/probe-report.json \
  --gap-sec 3

# Probe one capability.provider pair
npx tsx scripts/probe_sources.ts --only kline.em_kline

The report is written to data/probe-report.json by default. If all public providers for a capability are unavailable, the corresponding tool reports that it is unavailable; local portfolio CRUD still works.

3. Connect to DeepSeek Harness

Register the current project directory in the web profile:

npx @deepseek-ai/dsh plugin \
  --profile web add /absolute/path/to/dsn-finance-lab
npx @deepseek-ai/dsh web --profile web

For local development, you can also run:

bash scripts/dev_web.sh

If you need the development overlay with absolute paths:

npx @deepseek-ai/dsh web --patch ./cordis.dev.yml

After registration, open 📈 Finance Panel in the lower-left corner of Harness. The model tools are loaded automatically.

Configuration and data

The default configuration is in cordis.patch.yml:

OptionDefaultDescription
cacheTtlSec300Provider cache lifetime
requestGapMs3000Gap between public requests
httpTimeoutMs30000Per-request timeout
probeReportPathdata/probe-report.jsonProvider probe report
portfolioPathdata/portfolio.jsonLocal holdings/watchlist file
panelOpenunsetWhether to open the finance panel
panelDockedunsetWhether the panel starts docked

Relative paths are resolved from the plugin package directory. data/probe-report.json and data/portfolio.json are local runtime data and are ignored by Git.

Availability tests

The repository includes a serial test set covering A-shares, Hong Kong stocks, US stocks, cross-market resolution, and web search:

npm run test:avail

# Test one group
npm run test:avail -- --group us
# Available groups: ashare, hk, us, tools, search

Sources and boundaries

  • The runtime does not depend on the Python akshare package. Endpoint shapes are aligned with AkShare, with source notes kept in src/data/providers.ts.
  • Eastmoney is the primary source for A-shares, Hong Kong stocks, funds, macro data, and news; some quote capabilities also use Tencent. US stocks use Yahoo Finance first with Eastmoney fallback. Web search uses DuckDuckGo.
  • Providers fall back independently per capability. Public sources do not guarantee stability or complete coverage; interpret results together with timestamps, market conditions, and provider health.
  • This project is for research and portfolio record-keeping, not investment advice. It does not connect to a broker or place orders.

Project structure

src/                  Plugin service, providers, model tools, and finance panel
skills/               Finance, portfolio, strategy, risk, and research playbooks
scripts/              Provider probes, availability tests, and local web launcher
cordis.patch.yml      Harness registration and default configuration