self-hosted Β· continuously learning

A market model that keeps learning.

Flint is a self-hosted neural network that forecasts the next hour for a few hundred stocks as a distribution, learns as those forecasts resolve, keeps its own universe current, and backtests itself on weekends. It shows its reasoning as it goes, a local model writes the daily brief, and your keys stay with you.

Python Β· PyTorch Β· FastAPI Β· a no-build dashboard Β· optional local LLM via llama.cpp or Ollama
The Flint dashboard: candlestick cards with forecasts, a whole-market panel, and live ticks
the live dashboard β€” candles, MACD, a forecast fan, and cards that reorder by urgency

What it does

A forecasting model, a trading dashboard, and a window into the model's head, in one thing you run yourself.

🧠

Always learning

It trains online as its forecasts mature, pages months of history into itself overnight, and keeps five percent of what it has seen out of training to catch itself overfitting. When it has no real edge it holds, instead of trading noise.

πŸ§ͺ

Weekend backtest

Every weekend a fresh net walks the whole history day by day, forecasting each day before it trains on it, with the live policy deciding and the realised returns keeping score. Out of sample by construction, with the report on its own tab.

πŸ”

A universe that keeps itself current

Your holdings are always modeled. Each day after the close the most interesting names in the market, by moves, by what the press is naming and by what the big funds hold, are promoted into the remaining slots and retired when they go quiet. The model keeps what it learned about every name that stays.

πŸ“ˆ

Live charts

Every stock gets a candlestick chart with MACD and a forecast fan. Cards rank by urgency and reorder in real time, the top fifty render first, and any chart flips between 5 and 1 minute bars.

πŸ”

Everything about a name

Click any ticker anywhere, a card, the heatmap, a holding, a 13F line, and a detail view opens: a big chart, the calibrated forecast, its track record, signals, fundamentals, news and positions. The URL follows, so back and refresh work.

πŸ—ΊοΈ

Market heatmap

The movers radar draws as a treemap, area by market cap and colour by change, grouped by sector, trimmed on the fly so every block carries its ticker.

πŸ”¦

See it think

A control panel streams the model's consciousness across seven consoles, and a Console tab tails everything at once: the feed, the features, the forecasts, the policy, the training. Every gate and budget is a live control.

πŸ“

On-device brief

Small models summarize the tape, the macro backdrop, positioning and the smart money. A larger local model turns those notes into a plain newspaper column. It talks to a local model server, llama.cpp or Ollama, so nothing leaves the machine.

πŸ›οΈ

Investor council

A panel of well-known investors, built from their real 13F filings and documented style, nudges the model. Burry, Buffett, Ackman, Icahn and others.

πŸ›°οΈ

Whole-market radar

Breadth, sector rotation, volatility and a large movers watchlist give you and the model the full picture. Penny and small-cap movers included.

πŸ”’

Local and private

Everything runs on your machine. API keys sit in gitignored files and only ever talk to their own provider.

βš™οΈ

Fits your machine

A first-run benchmark sizes the network to your hardware and uses the GPU when there is one, Apple silicon or NVIDIA, so it runs on a laptop, a workstation, or a DGX Spark. Memory is budgeted, not hoped for: the replay has a byte budget, one training job owns the GPU at a time, and a floor stays free.

How it works

It behaves less like a backtest and more like a trader who shows up every morning and keeps score.

Warm up

Flint pulls intraday history, benchmarks your machine, and trains on the recent session before it goes live.

Stream and forecast

Real trades drive the charts. Each bar the model forecasts the next hour and turns it into a buy, sell or hold with a reason in plain English. Paper trades are stock or long options only, never a position with unlimited risk, and can run through the extended sessions.

Learn as it goes

An hour later every forecast is scored and the model recalibrates. You judge it on live accuracy over hours, not on how well it fit the past.

Deepen overnight

While the market is closed it pages up to 200 days of five-minute history into its replay and trains on all of it, stopping each night when the held-out slice says it has learned what there is to learn.

Prove it on the weekend

A walk-forward backtest replays the history with a fresh net and the live policy, so a change to the model or a gate shows its effect before a live session does.

A single stock card with candlesticks, MACD, forecast fan and a plain-English rationale
Each card shows the forecast, the band, and why the call is a buy, sell or hold.
The symbol detail view: a large chart, the calibrated forecast, track record, signals, fundamentals, news and positions for one stock
Click any ticker for everything Flint knows about it, with a URL you can share.
The Console tab: a terminal-style stream of everything the model is doing
The Console tab tails every channel the model runs through, live.

Run it

You need Python 3.12 and uv. For the written brief, run a local model with llama.cpp or Ollama.

# clone and install
git clone git@github.com:thingg-co/flint.git
cd flint
uv sync

# run it, then open http://localhost:8000
uv run flint

# walk the saved history with a fresh net, without starting the server
uv run flint backtest

# optional: a local model for the daily brief (either works)
ollama pull qwen3.5          # Ollama, the default backend
llama-server -m model.gguf --port 8080   # or llama.cpp, with FLINT_BRIEF_BACKEND=openai

It works out of the box on free, no-key data sources. On first launch a short walkthrough lets you add API keys for better feeds, and you can skip any of them. Everything, including the LLM brief, runs locally.

A word of caution. Flint is for research and learning. Its forecasts are the output of a model that is often wrong, and it makes no guarantees. Nothing here is financial advice. Trading is risky and you can lose money.