0 bytes sent
Skim Recap

Article text stays with the browser.

By Yui Morii

Skim Recap reads page text only to work out what you skipped and to summarise it, and that work happens on your own machine. This page lists exactly what is stored and what is transmitted.

Where the summarising happens

Summaries run locally with Gemma 4 E4B through LiteRT-LM inside Chrome. The model downloads once from Hugging Face and is cached by the browser for later sessions.

Network access is used for model retrieval, while skipped article text is not sent to a hosted LLM API for summarization.

Model, runtime, one-time download size, and bytes sent to a server: zero.
The one-time download is 2.97 GB, and it is the honest cost of the last column being zero.

One request, on first use

DataWhere it goes
Article text you scrolled pastStays in the browser
The recap that is generatedStays in the browser
Scroll activity and timingStays in the browser
Your settingschrome.storage, on your profile
The model file, onceDownloaded from Hugging Face on first use

There is no account, no server of mine, and no telemetry. After the model has been cached, the extension works with the network off.

Why each one is requested

offscreenHosts the WebGPU inference runtime — the only Manifest V3 context with GPU access. No visible interface.
storageSaves preferences only: enabled state, flick threshold, recap layout, recap language.
unlimitedStorageKeeps the cached model from being evicted. Nothing else is stored with it.
Host accessHugging Face domains, to download the one fixed model file. Article text is never sent there.
Overview About Privacy Stack
Blog Chrome Store