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.
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.
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.
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.
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.
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.
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.