Skip to content

asymmetrica/sextant

Sextant

The open financial data terminal for humans and agents. Working codename — rename anytime; see docs/naming.md.

Sextant is a truly open-source, multi-asset financial data aggregator and terminal. One typed data core serves three surfaces equally:

  • 🖥️ A next-level web terminal for retail investors and techies (keyboard-first, fast, composable).
  • 🔌 A typed public API that is the canonical, redistributable data source for bots and agents.
  • 🤖 An MCP server so Claude, OpenAI, and any agent runtime can query markets as a first-class tool.

Coverage is multi-asset, prioritized: FX → equities → ETFs → crypto → commodities, with macro + news for developed markets and Mexico from day one. We start with free, openly-licensed, redistributable data (ECB/Frankfurter, FRED, SEC EDGAR, Banxico, exchange public APIs) so the public aggregator scales cheaply and carries zero licensing risk. Real-time is bring-your-own-key or paid passthrough.

Why this exists

Bloomberg and Koyfin are closed. OpenBB is excellent open infrastructure but optimized for quants/hedge funds and self-hosting. The seat nobody owns: a hosted, genuinely redistributable public data layer + a beautiful retail UX + agent-first/MCP-native design + emerging-market/Mexico/FX coverage. That's Sextant.

License

Sextant is licensed AGPL-3.0 — the same license as Twenty and OpenBB. See LICENSE. Because the project's maintainers retain copyright (via a CLA), the project stays free and open for the community and keeps future commercial options open (hosted SaaS, metered API, open-core). See docs/licensing-and-monetization.md.

Architecture in one picture

        YOUR CODE — 100% owned, dual-licensable
  ┌──────────────────────────────────────────────────┐
  │  packages/contracts   typed Zod data contracts    │  ← the public SDK
  │  apps/api (Hono)      providers + aggregator + API │
  │  apps/mcp             MCP server for agents        │
  │  apps/web (Next.js)   the web terminal             │
  └───────────────┬──────────────────────────────────┘
                  │ HTTP / MCP — clean process boundary
  ┌───────────────▼──────────────────────────────────┐
  │  services/openbb   OpenBB sidecar (its own AGPL    │
  │                    service — we deploy, never link)│
  └──────────────────────────────────────────────────┘

We call OpenBB over the network; we never import it. This keeps OpenBB's AGPL code out of our codebase, so we owe no commercial license and our code stays ours. See ARCHITECTURE.md.

Build on Sextant (community)

Adding a data source = implementing one typed Provider interface from @sextant/contracts. No core changes needed. See CONTRIBUTING.md and docs/writing-a-provider.md.

Quick start

pnpm install
pnpm dev          # runs api + mcp + web

# API (humans & agents):
curl 'http://localhost:8787/v1/fx/latest?from=USD&to=MXN,EUR'           # FX (ECB)
curl 'http://localhost:8787/v1/equity/profile?symbol=AAPL'             # equities (SEC EDGAR)
curl 'http://localhost:8787/v1/crypto/markets?ids=bitcoin,ethereum'    # crypto (CoinGecko)
curl 'http://localhost:8787/v1/news/search?query=banxico&country=MX'   # news (GDELT)
curl 'http://localhost:8787/v1/macro/series?seriesId=CPIAUCSL'         # macro (FRED, BYO key)
curl http://localhost:8787/llms.txt                                    # agent-readable API map

# Higher rate limit with an API key:
curl -H 'Authorization: Bearer sextant_pro_demo' \
  'http://localhost:8787/v1/crypto/markets?ids=bitcoin' -i | grep -i x-ratelimit

# Web terminal: http://localhost:3000  (press ⌘/Ctrl-K for the command palette)

Run a single surface instead with e.g. pnpm --filter @sextant/web dev. The web app reads NEXT_PUBLIC_SEXTANT_API_URL (defaults to http://localhost:8787). The MCP server (@sextant/mcp) is a stdio server you point an agent at; it reads SEXTANT_API_URL.

Roadmap

See docs/roadmap.md. Each phase is independently shippable.

Phase Theme Status
1 FX (ECB) + typed core + API + MCP ✅ shipped
2 Web terminal (command palette, charts) ✅ shipped
3 Equities + fundamentals (SEC EDGAR) ✅ shipped
4 Crypto (CoinGecko) + news (GDELT) + macro (FRED/Banxico) ✅ shipped
5 Metered API keys + rate limiting (the monetization seam) ✅ shipped (scaffold)
6 Commodities, OpenBB sidecar, caching, backtesting/hedge-fund export ⏳ next

Coverage today: 6 providers across FX · equities · crypto · news · macro, exposed through one typed core to a REST API, a 6-tool MCP server, and a keyboard-first web terminal — all free, openly-licensed data. See docs/roadmap.md.

About

The open financial data terminal for humans and agents. Multi-asset (FX, equities, crypto, news, macro), agent-native (MCP), AGPL-3.0.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors