Home / use case

Torpor: an overnight inbox digest that runs on Qwen3 8B and local embeddings

What they built

Torpor is a lazy, fully local overnight inbox digest. Instead of reading every message that arrived overnight, you run one command and it reads them for you using only open-weight models on your own machine, then tells you which messages actually need you and which can wait.

It also has a small knowledge-bot mode: point it at any folder, ask a question in plain English, and it finds the relevant parts and answers with file-and-line citations, using the same embed-then-answer pipeline pointed at files instead of messages.

The author's reasoning for keeping it local is that an overnight digest is by definition a summary of everything you haven't read yet, and sending that to someone else's model every night is a real privacy cost.

Setup

  • Ollama serving nomic-embed-text for embeddings and qwen3:8b for the summary, on localhost:11434
  • A Node.js app started with npm start
  • Input is a JSON file of messages
  • The chat model is swappable with the TORPOR_CHAT_MODEL environment variable; the author also tested Gemma 3

How it works

  1. Each message is embedded locally and scored by meaning against a handful of 'this needs a human' reference phrases, not by keyword matching.
  2. Messages are split into 'needs you' and 'can wait' using an adaptive threshold: the inbox's own mean score plus half a standard deviation.
  3. A local model then writes a 2 to 3 sentence summary of what actually matters, followed by a ranked list of messages with their scores.
  4. The ask mode chunks a folder, embeds it locally, and answers questions with citations.

Results & numbers

  • On the 10-message demo inbox it flagged 3 messages (an NDA signature, an overdue invoice and a failed production deploy) and the whole run took a few seconds on a laptop, offline.
  • Both the digest and the ask command worked end to end with Gemma 3, though Gemma tended to answer in numbered lists where qwen3:8b wrote flowing sentences.

Gotchas

  • A fixed similarity threshold only caught 1 of 3 real urgent messages in testing, because cosine similarity on short text clusters tightly.
  • The split is a simple statistical heuristic, not a trained classifier; it missed a security alert in testing that landed just under the threshold. The author calls it good enough for a weekend build, not a production safety net.
“Your messages never leave your machine.”— chiragmangaldev3112

Do it yourself

  1. Install Ollama and pull qwen3:8b and nomic-embed-text.
  2. Export your messages to a JSON file.
  3. Embed each message and score it against a few reference phrases that describe what needs your attention.
  4. Use the inbox's own score distribution (for example mean plus half a standard deviation) as the cutoff instead of a fixed number.
  5. Send the flagged messages to the local chat model and ask for a short summary of what matters.
  6. Clone the project from github.com/chiragmangaldev3112/torpor to start from working code.
ollama pull qwen3:8b
ollama pull nomic-embed-text
npm start
Source: chiragmangaldev3112 (DEV Community) · 2026-10-23 · Added 2026-10-23. This write-up summarizes the original source; see it for full details.

Related

Constraint Kitchen: a Gemma 3 1B DIY idea generator that refuses rather than lies

Shashwat Sinha built a local app that turns household junk into DIY project ideas and build guides with gemma3:1b on an 8 GB M3 Mac, and checks every answer in Python so it refuses when the model breaks your constraints.

Shashwat Sinha (DEV Community) · 2026-10-19

Connecting a self-hosted Ollama server to WordPress, and why localhost fails

John Rotherham, who works on a WordPress SEO plugin, walks through pointing WordPress AI features at your own Ollama server instead of a cloud API key, including where Ollama must run, how to lock down its unauthenticated port, and how to test from PHP.

John Rotherham (DEV Community) · 2026-10-21

Explaining Swiss administrative letters in plain Italian with a 1B Gemma on CPU

Damiano built a personal tool that explains Swiss administrative letters, like debt-collection payment orders, in plain Italian using a 1B Gemma on CPU through Ollama, with plain code extracting the deadline and amount so the model never has to.

Damiano (DEV Community) · 2026-10-19

Siesta: a local overnight agent that reads fridge photos and receipts, then sleeps

Md Faijal Eaqbal built Siesta, a folder-watching agent on 3B open-weight models in Ollama that turns fridge photos, receipts and chat exports into one morning page, and spends zero tokens when nothing has changed.

Md Faijal Eaqbal (DEV Community) · 2026-10-21