Back to home@minyang-chen

dsh-stock-lookup

DSH plugin: resolve company names to stock symbols via SEC EDGAR and fetch live quotes via Yahoo Finance

Stars
0
Language
TypeScript
Created
Aug 25, 2026
Updated
Aug 25, 2026
GitHub repo

Introduction

dsh-stock-lookup

A DeepSeek Harness plugin that gives the agent two tools for stock research:

  • stock_resolve — resolve a company name or partial ticker to a US stock symbol using the bundled SEC EDGAR company index (~10,000 companies). Returns ticker, CIK, official company name, and a direct SEC EDGAR filing link.
  • stock_profile — fetch a live stock quote and company profile (price, change, P/E, market cap, sector, industry, description, and more) via Yahoo Finance.

No API keys required. No external services beyond Yahoo Finance.

dsh-stock-lookup overview

dsh-stock-lookup in action

Install

# From npm (after publish):
dsh plugin --profile web add dsh-stock-lookup

# From GitHub (no npm publish needed):
dsh plugin --profile web add github:minyang-chen/dsh-stock-lookup

# From a local clone:
dsh plugin --profile web add /path/to/dsh-stock-lookup

After installing, restart DSH: dsh web

Update to latest version

# Pull latest commit from GitHub and rebuild:
dsh plugin --profile web update dsh-stock-lookup

# Or remove and re-add:
dsh plugin --profile web remove dsh-stock-lookup
dsh plugin --profile web add github:minyang-chen/dsh-stock-lookup

Restart DSH after updating.

Tools

stock_resolve

Resolve a company name or ticker to a stock symbol.

ParameterTypeRequiredDescription
querystringCompany name, partial name, or ticker. E.g. "Apple", "nvidia", "TSLA"
limitnumberMax results to return (1–10, default 5)

What the agent says:

Found 1 match for "Apple":
• AAPL — Apple Inc. (CIK 320193)
  SEC EDGAR: https://www.sec.gov/cgi-bin/browse-edgar?...
Raw tool response (JSON)
{
  "status": "ok",
  "data": [
    {
      "ticker": "AAPL",
      "company": "Apple Inc.",
      "cik": 320193,
      "sec_url": "https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=320193&type=10-K..."
    }
  ]
}

stock_profile

Get a live quote and company profile by ticker symbol.

ParameterTypeRequiredDescription
tickerstringStock ticker. E.g. "AAPL", "NVDA", "BRK-B"

What the agent says:

Apple (AAPL) — $310.34 on Nasdaq, up $0.99 (+0.32%) from the previous close of $309.35,
as of the 2026-08-24 close.

  Volume:        34.4M shares
  Market cap:    ~$4.53T
  52-week range: $224.69 – $344.57
  Valuation:     trailing P/E 35.5, forward P/E 32.5, EPS (TTM) $8.75
  Sector:        Technology — Consumer Electronics
  Country:       United States
Raw tool response (JSON)
{
  "status": "ok",
  "data": {
    "symbol": "AAPL",
    "name": "Apple Inc.",
    "exchange": "NasdaqGS",
    "currency": "USD",
    "price": 310.34,
    "change": 0.99,
    "change_percent": 0.32,
    "previous_close": 309.35,
    "market_cap": 4529157832704,
    "trailing_pe": 35.47,
    "forward_pe": 32.54,
    "eps_trailing_twelve_months": 8.75,
    "fifty_two_week_high": 344.57,
    "fifty_two_week_low": 224.69,
    "sector": "Technology",
    "industry": "Consumer Electronics",
    "country": "United States",
    "description": "Apple Inc. designs, manufactures, and markets smartphones..."
  }
}

Usage examples

Just ask the agent naturally — it selects the right tool automatically.

Direct ticker lookup (agent skips stock_resolve, calls stock_profile directly):

What is Apple's current stock price?

Company name → symbol → profile (two-tool chain):

What sector is Nvidia in?

Agent calls stock_resolve("nvidia") → finds NVDA → calls stock_profile("NVDA").

Ambiguous name:

Look up Amazon stock

Get the SEC EDGAR filing link:

Give me the SEC EDGAR filing link for Microsoft

Agent calls stock_resolve("Microsoft") and surfaces the direct link to EDGAR filings.

Find multiple companies by name:

Find all companies with "apple" in the name

Returns up to 10 matches with ticker, CIK, and EDGAR link for each.

Typical agent workflow

User: "What is Nvidia's current stock price?"

Agent:
  1. stock_resolve("nvidia") → finds NVDA
  2. stock_profile("NVDA")  → returns live price + profile

Configuration

OptionDefaultDescription
enabledtrueRegister tools with the agent
quoteTtlMs15000Quote cache lifetime in milliseconds

Data sources

  • Symbol resolution: bundled SEC EDGAR company tickers — ~10,000 US-listed companies. The plugin automatically refreshes this data from SEC EDGAR if it is more than 7 days old when DSH starts. If the refresh fails (no network, SEC unavailable), the bundled copy is used as fallback.
  • Live quotes & profiles: Yahoo Finance via yahoo-finance2

To force a manual refresh at any time:

npm run update-sec-data
git add data/company_tickers.json
git commit -m "chore: refresh SEC EDGAR company tickers"

License

MIT