Open source · Runs on your laptop · Gemma 4

Your morning, briefed. Privately.

Every morning, Gemma 4 reads your inbox, calendar and tasks on your own laptop, then hands you a one-page edition and a three-minute audio briefing. Your inbox never leaves your machine.

Open full page
A real edition, written by Gemma 4 for Sam, a reader we made up. Real news, real weather.

Printed before you wake up.

At 6:59 the press starts on its own. By the time the kettle boils, the paper is waiting.

  1. 01

    Gather

    Pulls the day's sources together. Mail is opened read-only.

    • mail
    • calendar
    • tasks
    • weather
    • news
  2. 02 On your laptop

    Write

    Gemma 4, running through Ollama, writes the edition as strict JSON. It never invents facts.

  3. 03

    Print & speak

    A one-page edition to read, and a three-minute briefing to hear.

  4. 04

    Deliver

    Wherever you'll see it first.

    • inbox
    • Telegram
    • Slack
    • Discord
    • ntfy

Built to be trusted with your inbox.

It reads everything and touches nothing. It writes only what your sources say.

Reads, never marks as read

Mail is opened over IMAP in read-only mode. Nothing is marked as read, moved or deleted, so your inbox looks exactly as you left it.

Facts only

The model fills a strict schema. If it isn't in your sources, it isn't in your paper, and every link is real.

Listen while you brush

About three minutes, read aloud: what's on today, who's waiting on you, and whether you need an umbrella.

Runs offline

Ollama writes the words and the built-in macOS voice reads them. Neither needs the internet.

$0 per morning

No API bill and no subscription. The model is a file on your disk.

Works with what you already use.

Each one switches on with one environment variable.

Mail IMAP, read-only

  • Gmail
  • iCloud
  • Fastmail
  • Yahoo
  • Zoho
  • AOL
  • GMX
  • any IMAP over SSL

Calendars iCal links

  • Google
  • Outlook / Microsoft 365
  • Apple iCloud
  • Fastmail
  • any iCal link

Tasks

  • Todoist
  • GitHub notifications

Weather no key needed

  • Open-Meteo

News

  • Google News
  • RSS / Atom
  • Hacker News

Models open weights, local

  • Ollama (Gemma 4)
  • LM Studio
  • llama.cpp
  • vLLM
  • Jan

Voice

  • macOS voice (offline)
  • ElevenLabs

Delivery

  • Email
  • Telegram
  • Slack
  • Discord
  • ntfy

Set WEATHER_CITY=Lisbon and the weather appears. Leave it out and it doesn't.

Wanted: Outlook.com mail (needs OAuth). Contributions welcome.

Your inbox is not training data.

Most briefing apps read your mail on their servers. This one reads it on your laptop, writes there, and keeps it there.

  • Runs offline. Planes, trains and bad hotel Wi-Fi are all fine.
  • $0 per morning. No usage meter ticking while you sleep.
  • Nobody can change the terms. The model is a file on your disk. No one can reprice it, retire it or rewrite its policy overnight.
Where your data goes
Emails, calendar, tasksRead on your laptop by the local model. Never uploaded.
Briefing scriptStays local with the macOS voice. Goes to ElevenLabs only if you add a key.
The editionDelivered through your own accounts: your mail server, your bot, your webhook.
News & weatherFetched from public feeds by topic and city.
This demoA made-up inbox for a made-up reader.

Your first edition in five commands.

Clone it, point it at your inbox, and print today's paper. Then let cron deliver one every morning.

  • A laptop that can run ollama
  • Python with uv
  • An app password for your mail, if you want your inbox in it
Terminal
brew install ollama && ollama pull gemma4:e4b
git clone https://github.com/mohamedaminehamdi/the-localhost-times
cd the-localhost-times && cp .env.example .env
uv run localhost-times --list   # see what's switched on
uv run localhost-times          # print today's edition
crontab: every morning at 7
0 7 * * * cd ~/the-localhost-times && uv run localhost-times

Build your .env

Switch on what you want in your paper. The file writes itself as you type.

Runs entirely in your browser. Nothing you type leaves this page.

.env

            

Save it as .env in the project folder, then run uv run localhost-times --list to see what's switched on.