Dexter Finance
Build autonomous financial research agents that analyze stocks, SEC filings, earnings calls, and market data to produce investment reports. Use when: automating investment research, building AI-pow...
Build autonomous financial research agents that analyze stocks, SEC filings, earnings calls, and market data to produce investment reports. Use when: automating investment research, building AI-powered stock analysis, creating financial due diligence agents.
Install
Quick install
npx skills add https://github.com/virattt/dexternpx skills add virattt/dexter --agent claude-codenpx skills add virattt/dexter --agent cursornpx skills add virattt/dexter --agent codexnpx skills add virattt/dexter --agent opencodenpx skills add virattt/dexter --agent github-copilotnpx skills add virattt/dexter --agent windsurfMore install options
Shorthand — useful for multi-skill repos:
npx skills add virattt/dexterManual — clone the repo and drop the folder into your agent's skills directory:
git clone https://github.com/virattt/dexter.gitcp -r dexter ~/.claude/skills/Dexter Finance
Build autonomous financial research agents that analyze stocks, SEC filings, earnings calls, and market data to produce investment reports. Use when: automating investment research, building AI-powered stock analysis, creating financial due diligence agents.
---
name: dexter-finance
description: >-
Build autonomous financial research agents that analyze stocks, SEC filings, earnings calls,
and market data to produce investment reports. Use when: automating investment research,
building AI-powered stock analysis, creating financial due diligence agents.
license: MIT
compatibility: "Node.js 18+ or Python 3.10+"
metadata:
author: terminal-skills
version: "1.0.0"
category: data-ai
tags:
- finance
- stocks
- sec-filings
- investment
- research
---
Dexter Finance
Build autonomous financial research agents using Dexter — an agent framework for deep financial analysis covering SEC filings, earnings calls, market data, and investment report generation.
Overview
Dexter follows a four-stage research pipeline: data collection (EDGAR API, market data, transcripts), analysis (financial ratios, sentiment), synthesis (cross-referencing patterns and anomalies), and report generation (investment memos in PDF/Markdown). It supports single-stock deep dives and batch research across watchlists.
Instructions
Installation
npm install dexter-finance
# or: pip install dexter-finance
Set up API keys:
export OPENAI_API_KEY="sk-..." # or ANTHROPIC_API_KEY
export SEC_EDGAR_USER_AGENT="Company Name [email protected]"
export ALPHA_VANTAGE_KEY="..." # optional, for market data
Research a Single Stock
import { DexterAgent } from "dexter-finance";
const agent = new DexterAgent({
model: "claude-sonnet-4-20250514",
tools: ["sec-filings", "market-data", "earnings-transcripts"],
});
const report = await agent.research({
ticker: "AAPL",
depth: "full",
periods: 4,
});
console.log(report.summary);
console.log(report.recommendation);
await report.save("aapl-report.md");
SEC Filing Analysis
import { EdgarClient } from "dexter-finance";
const edgar = new EdgarClient({ userAgent: "MyApp [email protected]" });
const filing = await edgar.getFiling({ ticker: "MSFT", type: "10-K", latest: true });
console.log(filing.sections.riskFactors);
console.log(filing.sections.financialStatements);
console.log(filing.sections.mdAndA);
for (const table of filing.financialTables) {
console.log(`${table.name}:`, table.toJSON());
}
Earnings Call Analysis
import { EarningsAnalyzer } from "dexter-finance";
const analyzer = new EarningsAnalyzer({ model: "claude-sonnet-4-20250514" });
const analysis = await analyzer.analyze({ ticker: "NVDA", quarter: "Q4-2025" });
console.log(analysis.sentiment);
console.log(analysis.guidanceChanges);
console.log(analysis.managementTone);
console.log(analysis.analystConcerns);
Financial Ratios
import { FinancialMetrics } from "dexter-finance";
const ratios = await new FinancialMetrics().calculate({ ticker: "AMZN", period: "TTM" });
console.log(ratios.profitability); // { grossMargin, operatingMargin, netMargin, roe }
console.log(ratios.valuation); // { pe, ps, pb, evEbitda }
console.log(ratios.growth); // { revenueYoY, epsYoY, fcfYoY }
Anomaly Detection
import { AnomalyDetector } from "dexter-finance";
const flags = await new AnomalyDetector().scan({
ticker: "XYZ",
checks: ["accounting-changes", "insider-trading", "guidance-cuts",
"audit-opinions", "related-party", "revenue-recognition"],
});
for (const flag of flags) {
console.log(`${flag.severity.toUpperCase()}: ${flag.type} — ${flag.description}`);
}
Examples
Example 1: Full Investment Memo for META
import { ReportGenerator } from "dexter-finance";
const generator = new ReportGenerator({
model: "claude-sonnet-4-20250514",
template: "investment-memo",
});
const report = await generator.generate({
ticker: "META",
sections: ["executive-summary", "business-overview", "financial-analysis",
"competitive-position", "risk-factors", "valuation", "recommendation"],
format: "markdown",
maxPages: 5,
});
await report.save("meta-investment-memo.md");
await report.toPDF("meta-investment-memo.pdf");
// Produces a 5-page memo with financial tables, ratio analysis, and buy/hold/sell recommendation
Example 2: Daily Market Briefing for a Watchlist
import { BriefingAgent } from "dexter-finance";
const briefing = new BriefingAgent({
model: "claude-sonnet-4-20250514",
watchlist: ["AAPL", "GOOGL", "MSFT", "AMZN", "NVDA"],
});
const daily = await briefing.generate({
includePreMarket: true,
includeEarningsCalendar: true,
includeMacroEvents: true,
});
console.log(daily.marketOverview);
console.log(daily.watchlistMoves);
console.log(daily.earningsToday);
// Output: structured briefing with price changes, upcoming earnings, and macro events
Guidelines
- Set
SEC_EDGAR_USER_AGENTto a valid company/email — EDGAR rate-limits anonymous requests - Use
depth: "quick"for screening,"full"for deep dives — saves tokens and time - Batch research runs concurrently — set
concurrencybased on your API rate limits - Anomaly detection is most useful on small/mid-cap stocks where coverage is thin
- Combine with a scheduler (cron) for automated daily briefings
- Always validate AI-generated financial analysis — treat outputs as research drafts, not advice
---
Source: https://github.com/virattt/dexter
Author: TerminalSkills
Discovered via: skillsdirectory.com
Genre: business
SKILL.md source
---
name: Dexter Finance
description: Build autonomous financial research agents that analyze stocks, SEC filings, earnings calls, and market data to produce investment reports. Use when: automating investment research, building AI-pow...
---
# Dexter Finance
Build autonomous financial research agents that analyze stocks, SEC filings, earnings calls, and market data to produce investment reports. Use when: automating investment research, building AI-powered stock analysis, creating financial due diligence agents.
---
name: dexter-finance
description: >-
Build autonomous financial research agents that analyze stocks, SEC filings, earnings calls,
and market data to produce investment reports. Use when: automating investment research,
building AI-powered stock analysis, creating financial due diligence agents.
license: MIT
compatibility: "Node.js 18+ or Python 3.10+"
metadata:
author: terminal-skills
version: "1.0.0"
category: data-ai
tags:
- finance
- stocks
- sec-filings
- investment
- research
---
# Dexter Finance
Build autonomous financial research agents using [Dexter](https://github.com/virattt/dexter) — an agent framework for deep financial analysis covering SEC filings, earnings calls, market data, and investment report generation.
## Overview
Dexter follows a four-stage research pipeline: data collection (EDGAR API, market data, transcripts), analysis (financial ratios, sentiment), synthesis (cross-referencing patterns and anomalies), and report generation (investment memos in PDF/Markdown). It supports single-stock deep dives and batch research across watchlists.
## Instructions
### Installation
```bash
npm install dexter-finance
# or: pip install dexter-finance
```
Set up API keys:
```bash
export OPENAI_API_KEY="sk-..." # or ANTHROPIC_API_KEY
export SEC_EDGAR_USER_AGENT="Company Name [email protected]"
export ALPHA_VANTAGE_KEY="..." # optional, for market data
```
### Research a Single Stock
```typescript
import { DexterAgent } from "dexter-finance";
const agent = new DexterAgent({
model: "claude-sonnet-4-20250514",
tools: ["sec-filings", "market-data", "earnings-transcripts"],
});
const report = await agent.research({
ticker: "AAPL",
depth: "full",
periods: 4,
});
console.log(report.summary);
console.log(report.recommendation);
await report.save("aapl-report.md");
```
### SEC Filing Analysis
```typescript
import { EdgarClient } from "dexter-finance";
const edgar = new EdgarClient({ userAgent: "MyApp [email protected]" });
const filing = await edgar.getFiling({ ticker: "MSFT", type: "10-K", latest: true });
console.log(filing.sections.riskFactors);
console.log(filing.sections.financialStatements);
console.log(filing.sections.mdAndA);
for (const table of filing.financialTables) {
console.log(`${table.name}:`, table.toJSON());
}
```
### Earnings Call Analysis
```typescript
import { EarningsAnalyzer } from "dexter-finance";
const analyzer = new EarningsAnalyzer({ model: "claude-sonnet-4-20250514" });
const analysis = await analyzer.analyze({ ticker: "NVDA", quarter: "Q4-2025" });
console.log(analysis.sentiment);
console.log(analysis.guidanceChanges);
console.log(analysis.managementTone);
console.log(analysis.analystConcerns);
```
### Financial Ratios
```typescript
import { FinancialMetrics } from "dexter-finance";
const ratios = await new FinancialMetrics().calculate({ ticker: "AMZN", period: "TTM" });
console.log(ratios.profitability); // { grossMargin, operatingMargin, netMargin, roe }
console.log(ratios.valuation); // { pe, ps, pb, evEbitda }
console.log(ratios.growth); // { revenueYoY, epsYoY, fcfYoY }
```
### Anomaly Detection
```typescript
import { AnomalyDetector } from "dexter-finance";
const flags = await new AnomalyDetector().scan({
ticker: "XYZ",
checks: ["accounting-changes", "insider-trading", "guidance-cuts",
"audit-opinions", "related-party", "revenue-recognition"],
});
for (const flag of flags) {
console.log(`${flag.severity.toUpperCase()}: ${flag.type} — ${flag.description}`);
}
```
## Examples
### Example 1: Full Investment Memo for META
```typescript
import { ReportGenerator } from "dexter-finance";
const generator = new ReportGenerator({
model: "claude-sonnet-4-20250514",
template: "investment-memo",
});
const report = await generator.generate({
ticker: "META",
sections: ["executive-summary", "business-overview", "financial-analysis",
"competitive-position", "risk-factors", "valuation", "recommendation"],
format: "markdown",
maxPages: 5,
});
await report.save("meta-investment-memo.md");
await report.toPDF("meta-investment-memo.pdf");
// Produces a 5-page memo with financial tables, ratio analysis, and buy/hold/sell recommendation
```
### Example 2: Daily Market Briefing for a Watchlist
```typescript
import { BriefingAgent } from "dexter-finance";
const briefing = new BriefingAgent({
model: "claude-sonnet-4-20250514",
watchlist: ["AAPL", "GOOGL", "MSFT", "AMZN", "NVDA"],
});
const daily = await briefing.generate({
includePreMarket: true,
includeEarningsCalendar: true,
includeMacroEvents: true,
});
console.log(daily.marketOverview);
console.log(daily.watchlistMoves);
console.log(daily.earningsToday);
// Output: structured briefing with price changes, upcoming earnings, and macro events
```
## Guidelines
- Set `SEC_EDGAR_USER_AGENT` to a valid company/email — EDGAR rate-limits anonymous requests
- Use `depth: "quick"` for screening, `"full"` for deep dives — saves tokens and time
- Batch research runs concurrently — set `concurrency` based on your API rate limits
- Anomaly detection is most useful on small/mid-cap stocks where coverage is thin
- Combine with a scheduler (cron) for automated daily briefings
- Always validate AI-generated financial analysis — treat outputs as research drafts, not advice
---
**Source**: https://github.com/virattt/dexter
**Author**: TerminalSkills
**Discovered via**: skillsdirectory.com
**Genre**: business
Related skills 6
tzst
Use when the user needs to create, extract, flatten, list, test, install, script, or troubleshoot `tzst` CLI workflows for `.tzst` or `.tar.zst` archives, including compression levels, streaming mode, extraction filters, conflict resolution, JSON output, or standalone binary setup, even if they describe the archive task without naming `tzst`.
xdrop
Use this skill when the user wants to send or fetch files through an Xdrop server from the terminal, asks to automate encrypted Xdrop share-link workflows, provides an Xdrop `/t/:transferId#k=...` link to download and decrypt locally, or needs Xdrop CLI flags such as `--quiet`, `--json`, `--expires-in`, `--output`, or `--api-url`, even if they do not explicitly mention the skill name.
develop-userscripts
Use when building, debugging, packaging, or publishing browser userscripts for Tampermonkey or ScriptCat, including GM APIs, metadata blocks, permission issues, @match/@grant/@connect setup, ScriptCat background or scheduled scripts, UserConfig blocks, or subscription workflows.
triage
Triage issues through a state machine driven by triage roles. Use when user wants to create an issue, triage issues, review incoming bugs or feature requests, prepare issues for an AFK agent, or manage issue workflow.
browser-use
Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, or extract information from web pages.
Typefully / typefully
Create, schedule, and publish social media content across X, LinkedIn, Threads, Bluesky, and Mastodon