TerraFin
Public core of a broader AI4Finance workflow
Overview
TerraFin is the open-source core of my AI4Finance work: a public platform for unified data access, lightweight analytics, browser interfaces, and agent-ready workflows.
It began as a narrower finance-modeling effort, but the scope expanded well beyond one modeling direction. Today TerraFin is the public-facing system, not the full extent of the broader practice around it.
Project Links
The repository shows the public core, and the demo shows how that core behaves as a working finance interface.
What TerraFin Makes Public
The public surface is meant to keep data access, analysis, interfaces, and agent workflows aligned enough that the same finance workflow can move across notebooks, browser pages, and automation without being rebuilt from scratch.
- Unified data layer. Normalizes market, macro, corporate, and optional private-access integrations behind one interface.
- Analytics and simulation utilities. Supports indicators, valuation workflows, options and rates analysis, and other finance-oriented utilities.
- Browser interface. Serves chart, dashboard, market-insights, calendar, stock-analysis, and watchlist pages from one FastAPI app.
- Agent-ready workflows. Reuses the same backend through Python, CLI, skill, and JSON API entrypoints.
Beyond the Public Core
The public repo is only one layer of how I actually build and use
AI4Finance. TerraFin's private-access surface is there on
purpose: it shows how the public core can connect to operator-side
workflows and deployment-specific data without making those extensions part
of the default OSS path.
One continuing part of that broader workflow is an LLM-based sentiment-prediction pipeline, used to gauge market sensitivity and support investment decisions rather than as a direct price-forecasting model. It remains an important piece of how I work in practice even though the full system is not published as part of the TerraFin repo. If you are working seriously on AI for finance, I am always open to thoughtful technical conversations that go deeper than the OSS surface.
Architecture
TerraFin is organized as a layered system so the same core logic can serve notebooks, browser pages, and agent workflows without duplicating business logic.
- Data layer normalizes public providers such as yfinance-backed market data, FRED, and SEC EDGAR, with optional private-access extensions for deployment-specific data.
- Analytics layer computes indicators and standalone finance models on top of those normalized frames.
- Interface layer renders browser-based views for chart exploration, dashboard monitoring, market context, and company analysis.
- Agent and cache layer keeps the same pipeline available to CLI, Python, and HTTP clients while maintaining responsive progressive loading.
From LLM4Finance to TerraFin
I originally called the project LLM4Finance when the center of gravity was finance modeling with LLMs. As the system grew into a broader public platform for data, analytics, interfaces, and agent-ready tooling, TerraFin became the more accurate name.
That earlier modeling direction did not disappear. It still matters as one continuing line of work around the TerraFin core rather than as a separate flagship project.
Open-Source Scope
- MIT-licensed software with documentation for public/demo operation.
- Explicit about the difference between open-source software and third-party data rights.
- Some deployment-specific extensions and model pipelines remain outside the OSS surface by design.
Current Focus
The goal is not just to expose a set of finance tools, but to make one coherent AI4Finance workspace where data access, analysis, interface, and agent workflows reinforce each other.
- Improving the dashboard and chart experience so the public core feels usable as a serious day-to-day finance workspace.
- Making public/demo mode cleaner and more informative for OSS users even without private-access extensions.
- Expanding documentation and strengthening the agent-ready workflow surface so outside users can build on TerraFin without reconstructing the stack.
- Keeping clear seams between the open-source core and deployment-specific extensions.