Installable, hedge-fund-grade equity-research skills for AI coding agents. Each skill is a self-contained folder of instructions (and, where useful, runnable scripts) that an agent loads on demand. Install them into Claude Code as a plugin, or copy them into any agent runtime with the bundled installer.
The skill frontmatter is the single source of truth β the registry, the plugin manifests, and the installer all derive from it.
The skills split into capabilities (one atomic job β a data source, an engine,
a deliverable, or reusable knowledge) and workflows (an engagement entry point
that orchestrates capabilities via requires:
). The "Needs" column lists runtimes, API keys, and required skills.
| Skill | Type | What it does | Needs |
|---|---|---|---|
| analyst-playbook | |||
| capability | How to structure any analysis before fetching a number: pick the deliverable, align fiscal calendars and frequencies, normalize units, route series to the right skill, and apply per-sector conventions | β | |
| 13f-analysis | |||
| capability | Fetch & read U.S. institutional 13F-HR holdings from SEC EDGAR β resolve a fund to its CIK, pull a quarter's holdings as a normalized, ranked CSV, and read it without the common traps | ||
| Python (stdlib) | |||
| sec-filings | |||
| capability | Fetch & read U.S. SEC filings (10-K, 10-Q, 8-K, any EDGAR form) β risk factors, MD&A, material events, segment data, insider trades, earnings 8-K exhibits β with tickerβCIK resolution and BM25 search for large filings | Python (stdlib) | |
| financialmodellingprep | |||
| capability | Call the Financial Modeling Prep REST API β daily prices, news, profiles, screener, quarterly income statements, fiscal-period info, earnings-call transcripts β with exact endpoints, params, and field schemas | Python Β· FMP_API_KEY |
|
| finmind | |||
| capability | Pull Taiwan (TWSE/TPEx) market data β prices, monthly revenue, financials, dividends, shareholding, institutional flows β via the FinMind API | Python Β· FINMIND_TOKEN |
|
| market-intelligence | |||
| capability | Nowcast a company's quarter and predict a revenue segment from Google Trends search-interest (via SerpAPI) β keyword selection, normalization to a quarterly index, and a quarter-to-date nowcast | Python Β· SERPAPI_API_KEY |
|
| company-universe-manager | |||
| capability | Own a watchlist of companies and their key dates (earnings, investor days, ex-dividend, AGMsβ¦): roster CRUD, a daily monitor that detects date changes, and a daily brief (markdown or branded PDF). Pluggable local-folder or connected-server storage | ||
| Python Β· financialmodellingprep, reporting | |||
| analyzing-financial-statements | |||
| capability | Calculate & interpret financial ratios (profitability, liquidity, leverage, efficiency, valuation, per-share) from statement data, with industry benchmarking | Python (stdlib) | |
| creating-financial-models | |||
| capability | DCF valuation, M&A accretion/dilution, sensitivity analysis (data tables, tornado charts), and probability-weighted best/base/worst scenario planning | Python Β· numpy/pandas | |
| charting | |||
| capability | Financially-correct charts: a thin Python/Polars layer normalizes data β a TypeScript layer emits Highcharts options + a self-contained HTML page (trends, segments, margins, dividends, surprise, waterfalls, price) | Node Β· Python | |
| reporting | |||
| capability | Assemble charts, tables, and analyst text into a branded PDF β A4 portrait report or 16:9 deck β from ready-made page templates; remembers your logo and brand colors | Node Β· charting | |
| wiki-builder | |||
| capability | Serve any folder of markdown as a navigable browser wiki (sidebar, table of contents, frontmatter chips, ECharts) | Bun | |
| data-analysis | |||
| capability | End-to-end analysis of a structured dataset (CSV/JSON/Excel/SQL) β profile, clean, visualize, model, and report with reproducible code | β | |
| single-stock-deep-dive | |||
| workflow | Forensic, decision-useful deep dive on one stock: thesis, valuation, catalysts, variant perception, value-chain adjacencies | β | |
| thematic-investing | |||
| workflow | Map a theme or trend into an investable value chain β who benefits, where value accrues, what's mispriced | company-universe-manager | |
| technical-analysis | |||
| workflow | Disciplined technical analysis with concrete entry/exit levels: regime classification, a three-layer confluence stack, and ATR-based stops/sizing/targets from a zero-dependency indicator engine | Python Β· charting | |
| company-wiki | |||
| workflow | Build a multi-page company-research wiki (overview, products, 5-year financials, model, competitors, citations) as a deployed web app | FMP_API_KEY Β· wiki-builder, company-universe-manager |
One command β works on macOS, Linux, and Windows (inside WSL2 β see below). It installs
allthe skills into your chosen runtime and wires them into the agent's system/common prompt. Needs only
Node β₯ 18(which detects your OS and installs to the right paths):
npx github:mohitjandwani/analyst-kit claude-code # or: codex Β· openclaw Β· cowork
Swap claude-code
for codex
, openclaw
, or cowork
; add --scope project
to install into the current
project (./.claude/skills
, β¦) instead of your home directory. Already cloned the repo? node bin/analyst-kit.js claude-code
does the same (plus list
, doctor
, uninstall
, or install <skill|persona>
for just one).
For Claude Cowork, the command prints the in-app steps and writes cowork-global-instructions.md
to paste into Settings β Cowork β Global instructions β Cowork installs the skills themselves through its plugin marketplace (below).
On Windows:run insideWSL2β native Windows (PowerShell/cmd) is unsupported because the skill runtime is POSIX/bash. See[Windows: use WSL2]below.
Both Claude Code and ** Claude Cowork** (Anthropic's desktop app) install from the same plugin marketplace:
Claude Code:
/plugin marketplace add mohitjandwani/analyst-kit
/plugin install us-stock-analyst@analyst-kit # or international-analyst / taiwan-stock-analyst
Claude Cowork(desktop app):** Customize β Plugins β Personal plugins β + β Add marketplace**βmohitjandwani/analyst-kit
, add theus-stock-analyst plugin, then enableSettings β Capabilities β Code execution.
After installing, ask a trigger phrase (e.g. "deep dive on NVDA") and the matching skill loads. From a clone you can also self-test the installers across every platform:
npm run test:integration # real installs per platform + the path.win32 path-layer check
Codex (any OS, no ChatGPT login needed) β confirm a skill is reachable with an API key:
CODEX_API_KEY=sk-... codex exec --json "use the sec-filings skill to list NVDA's latest 8-K"
See ** compatibility.md** for what each runtime does underneath β where skills land, the routing table, and Windows specifics.
Analyst Kit's skills run a POSIX/bash runtime (analyst-kit-core
), so on Windows they are supported only inside WSL2. This matches what the agents themselves require: Claude Code's sandbox runs on macOS, Linux, and WSL2 (native Windows is unsupported), and Codex's Linux mode is WSL2 as well.
Recommended: installWSL2, then run Claude Code (or Codex)and this installerinsideyour WSL2 distribution β everything then behaves exactly like Linux.- Native Windows (PowerShell/cmd) cannot run the bash runtime at all. Native
Windows + Git Bash will run the scripts but without enforced
.env
file permissions (chmod
is a no-op on NTFS) and without sandboxing β unsupported.
node bin/analyst-kit.js doctor --platform claude-code
warns when run on native Windows.
Three persona plugins bundle the research workflows for different markets. All three include the research workflows (deep dive, thematic, technical analysis, company wiki) plus their supporting capabilities (charting, reporting, wiki-builder, company-universe-manager, financialmodellingprep, market-intelligence, analyzing-financial-statements, creating-financial-models, data-analysis); the market difference is whether FinMind (Taiwan data) and SEC filings are included.
| Plugin | Includes | Skills |
|---|---|---|
us-stock-analyst |
||
the research workflows + supporting capabilities, incl. (US filings)sec-filings |
||
| 15 | ||
international-analyst |
||
| the above + FinMind (Taiwan/TWSE market data) | ||
| 16 | ||
taiwan-stock-analyst |
||
Taiwan-focused: workflows + capabilities + FinMind, minus sec-filings |
||
| 14 |
Run node bin/analyst-kit.js list --persona <name>
to see a plugin's exact contents.
Keys are read from the environment or a git-ignored .env
. The installer
(analyst-kit env
/ analyst-kit install
) prompts for anything missing when run interactively. See .env.example.
| Variable | Used by | Get it |
|---|---|---|
FINMIND_TOKEN |
||
| finmind | ||
FMP_API_KEY
https://site.financialmodelingprep.com/developer/docsSERPAPI_API_KEY
https://serpapi.com/(free tier = 100 searches/month)13f-analysis
needs no key β it reads SEC EDGAR directly (set the optional
SEC_EDGAR_UA
contact string as an SEC fair-access courtesy).
Skills that run code bootstrap their own dependencies on first use. Runtimes are a per-skill prerequisite the installer does not install for you: Python (finmind, company-universe-manager; 13f-analysis is standard-library only) and Bun (wiki-builder).
Every skill runs on a shared runtime (analyst-kit-core
, installed automatically as a
dependency) that keeps all per-user state in one fixed place, ~/.analyst-kit/
:
.env
β your API keys (chmod 600, shared across projects)config
β settings (analyst-kit-core/bin/analyst-kit-config get|set|list
)analytics/skill-usage.jsonl
βlocal usage log: which skill ran, when, outcome, durationlearnings.jsonl
β things the skills learned about your setup and preferences, so mistakes aren't repeated
Telemetry is on by default (anonymous, opt-out). It sends only skill name,
version, outcome, and duration β never repo names, file paths, tickers, or content β
and is what tells us which skills break or run slow, so keeping it on directly
improves your experience. You're told about it once on first run. Tiers: community
(default, stable anonymous id), anonymous
(no id), off
. Opt out any time:
~/.claude/skills/analyst-kit-core/bin/analyst-kit-config set telemetry off
Updates: skills check the published version at most once a day and offer a
guided upgrade when a new release is out (declining snoozes it for a week; disable
with analyst-kit-config set update_check false
).
Each skill is skills/<name>/SKILL.md
with YAML frontmatter:
---
name: 13f-analysis # kebab-case; must equal the folder name
type: capability # capability | workflow
description: > # what it does + a "Triggers:" clause of trigger phrases
... Triggers: "get the 13F for X", "what does <fund> own", ...
requires: [ ... ] # capability skills this one builds on (nothing may require a workflow)
env: [ FMP_API_KEY ] # API keys the skill needs
---
Agents read only name
description
, so trigger phrases live inside the
description. type
, requires
, and env
drive the installer and validator.
npm run validate # lint skills + plugin manifests (+ preamble sync check)
npm run build:registry # regenerate registry.json from frontmatter
npm run check:registry # verify registry.json is in sync
npm run sync:preamble # regenerate the analyst-kit-core blocks in every SKILL.md
registry.json
is generated β edit skill frontmatter, then rebuild it. The
<!-- analyst-kit:preamble/epilogue -->
blocks in each SKILL.md are also generated β edit
skills/analyst-kit-core/templates/
and re-sync; never edit between the markers. The same
checks run in CI (.github/workflows/validate.yml
) on every push and pull request.
Planned skills, not yet available: an LBO model (debt schedule, cash sweep, IRR/MOIC) and PDF report analysis.
and the DCF + sensitivity tooling inanalyzing-financial-statements
were inspired by the custom financial skills increating-financial-models
Anthropic's claude-cookbooks, then reworked to this repo's skill contract (frontmatter,scripts/
layout) and hardened with input guards and a test suite.- The M&A accretion/dilution model in
was inspired bycreating-financial-models
joe-neary/MergerDealSimulator. The financial formulas were reimplemented from scratch (no code was copied); that project's worked example serves as an independent cross-check in the skill's test suite.
MIT Β© Mohit Kumar