Most focus tools block a fixed list of sites on a fixed schedule, so they nag you at the wrong moments and go quiet right when you start to drift. I wanted the opposite: something that learns the shape of my own attention and steps in a few minutes before it fragments, not after. It all runs, and stays, on the machine.
Every visit gets logged with how long it lasted and how much you actually touched it, mouse and scroll and keys, not just how long the tab sat open. All of it is bucketed by time of day and weekday in a local IndexedDB.
The predictor is a logistic regression I wrote from scratch, no ML library. It starts from rough priors and updates its weights one session at a time, drifting from a generic guess toward the actual you.
Every five minutes it scores your live focus. When it reads like you are about to fragment, distracting domains get held back on a calm page, with a one-tap ten-minute override for when you really mean it.
Every Sunday it writes you a short attention report, generated locally with Ollama if you have a model installed, or a plain template if you do not. Nothing leaves the device.
declarativeNetRequest quietly redirects distracting domains to a hold page. Above it, the rules lift on their own.git clone https://github.com/hadimoumeni/meridian.gitchrome://extensions and enable Developer mode.meridian/ folder.Optional, if you want the AI reports: install Ollama and pull a small model with ollama pull llama3.2. Meridian uses whatever you have installed, and without one you still get a full template report, so nothing breaks.
It is all local. No servers, no accounts, no analytics. The only network call Meridian can make is to a local Ollama instance on localhost, and only if you choose to run one. Export the whole database as JSON, or delete all of it, whenever you want.