GitHub Trending Repositories

virattt/dexter

Author: virattt

Stars: 1,115 stars today

Description: An autonomous agent for deep financial research

README

Dexter 🤖

Dexter is an autonomous financial research agent that thinks, plans, and learns as it works. It performs analysis using task planning, self-reflection, and real-time market data. Think Claude Code, but built specifically for financial research.

Screenshot 2026-01-21 at 5 25 10 PM

Table of Contents

👋 Overview

Dexter takes complex financial questions and turns them into clear, step-by-step research plans. It runs those tasks using live market data, checks its own work, and refines the results until it has a confident, data-backed answer.

Key Capabilities: - Intelligent Task Planning: Automatically decomposes complex queries into structured research steps - Autonomous Execution: Selects and executes the right tools to gather financial data - Self-Validation: Checks its own work and iterates until tasks are complete - Real-Time Financial Data: Access to income statements, balance sheets, and cash flow statements - Safety Features: Built-in loop detection and step limits to prevent runaway execution

Twitter Follow

Screenshot 2026-01-21 at 5 22 19 PM

✅ Prerequisites

Installing Bun

If you don't have Bun installed, you can install it using curl:

macOS/Linux: bash curl -fsSL https://bun.com/install | bash

Windows: bash powershell -c "irm bun.sh/install.ps1|iex"

After installation, restart your terminal and verify Bun is installed: bash bun --version

💻 How to Install

  1. Clone the repository: bash git clone https://github.com/virattt/dexter.git cd dexter

  2. Install dependencies with Bun: bash bun install

  3. Set up your environment variables: ```bash

Copy the example environment file

cp env.example .env

Edit .env and add your API keys (if using cloud providers)

OPENAI_API_KEY=your-openai-api-key

ANTHROPIC_API_KEY=your-anthropic-api-key (optional)

GOOGLE_API_KEY=your-google-api-key (optional)

XAI_API_KEY=your-xai-api-key (optional)

OPENROUTER_API_KEY=your-openrouter-api-key (optional)

Institutional-grade market data for agents; AAPL, NVDA, MSFT are free

FINANCIAL_DATASETS_API_KEY=your-financial-datasets-api-key

(Optional) If using Ollama locally

OLLAMA_BASE_URL=http://127.0.0.1:11434

Web Search (Exa preferred, Tavily fallback)

EXASEARCH_API_KEY=your-exa-api-key

TAVILY_API_KEY=your-tavily-api-key

```

🚀 How to Run

Run Dexter in interactive mode: bash bun start

Or with watch mode for development: bash bun dev

📊 How to Evaluate

Dexter includes an evaluation suite that tests the agent against a dataset of financial questions. Evals use LangSmith for tracking and an LLM-as-judge approach for scoring correctness.

Run on all questions: bash bun run src/evals/run.ts

Run on a random sample of data: bash bun run src/evals/run.ts --sample 10

The eval runner displays a real-time UI showing progress, current question, and running accuracy statistics. Results are logged to LangSmith for analysis.

🐛 How to Debug

Dexter logs all tool calls to a scratchpad file for debugging and history tracking. Each query creates a new JSONL file in .dexter/scratchpad/.

Scratchpad location: .dexter/scratchpad/ ├── 2026-01-30-111400_9a8f10723f79.jsonl ├── 2026-01-30-143022_a1b2c3d4e5f6.jsonl └── ...

Each file contains newline-delimited JSON entries tracking: - init: The original query - tool_result: Each tool call with arguments, raw result, and LLM summary - thinking: Agent reasoning steps

Example scratchpad entry: json {"type":"tool_result","timestamp":"2026-01-30T11:14:05.123Z","toolName":"get_income_statements","args":{"ticker":"AAPL","period":"annual","limit":5},"result":{...},"llmSummary":"Retrieved 5 years of Apple annual income statements showing revenue growth from $274B to $394B"}

This makes it easy to inspect exactly what data the agent gathered and how it interpreted results.

🤝 How to Contribute

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request

Important: Please keep your pull requests small and focused. This will make it easier to review and merge.

📄 License

This project is licensed under the MIT License.

File Structure

Unable to fetch file structure.

Back to Trending