AI-enabled data services for e-ink readers and agents

The news, ranked by an editor that never sleeps, delivered wherever you read.

Every hour an LLM editor reads about a hundred feeds per topic and picks what matters, with a why-it-matters line and the facts. You get the result as JSON and MCP for your agents, or as a typeset morning paper on your reMarkable or Kindle. Eleven briefings, one of them new this week.

Free tier, no keyNo card for trialsMIT MCP server on npmx402 for agents that pay per call

Front page of the AI briefing, rendered as a 480 by 800 one-bit e-ink page
Live: the AI briefing front page, exactly as an e-ink device sees it.

Pick a service. Each one starts with one command or one form.

Same editor, same data, different delivery. Everything below is live today; the code blocks are copy-paste real, not illustrations.

Briefings API and MCP

for agents and developers

Eleven ranked briefings as structured JSON: lead, stories, why it matters, key points, sources. Rendered e-ink pages, a free summary, and the full candidate pool with provenance.

  • Keys: ai, research, labs, finance, sports, soccer, us, world, crypto (hourly), grants and slow-es-b1 (daily)
  • MCP tools: list briefings, get one, get a page; summaries, candidates and Atom feeds over REST
  • Local server on npm, or the remote endpoint with no install
  • Every story links to its source; facts are constrained to the candidate text

10 free calls per IP per day · then a Reader key (7 days free, no card, then $9/month) or $0.002 per call over x402

Get started
curl https://briefing-service.wholemind.workers.dev/v1/briefings/ai

Full reference: llms.txt · openapi.json · github.com/jshelley/briefing-mcp

Morning Paper

for reMarkable, Kindle or any inbox

Any briefing as a multi-page paper on your device at 07:00 ET every day. Story text inside the file, not links out. PDF for reMarkable and Scribe, reflowable EPUB for Kindle.

  • Emailed as PDF or EPUB to any address or your Send-to-Kindle address; optional push to a reMarkable folder if you choose it
  • A one-page notice before the trial ends, with the keep link
  • Free PDF and EPUB downloads for every briefing, any time

7-day trial, no card · then $9/month (Reader key)

Read today's editions on the web first: AI · World · Markets · US · Sports · Football · Labs · Crypto

Get started
open https://wholemind.tech/briefing/paper.html
# pick a briefing, paste your Kindle address or reMarkable code, done

Kindle: approve paper@wholemind.tech in Amazon's Send-to-Kindle settings first. Today's paper goes out the moment you sign up.

Noticias Lentas

Spanish learners, B1

The day's news from BBC Mundo, El País and 20minutos rewritten in simple Spanish at CEFR B1. Short sentences, common vocabulary, a small glossary in simple Spanish and two comprehension questions per story.

  • Six stories a day, ready before breakfast in Europe and the Americas
  • Free on the web, as EPUB and as a daily podcast (about six minutes, read slowly); every episode has its own page with the text, its sources and the vocabulary; Kindle delivery on a trial
  • For a class: each episode page prints as a handout, with the answer key on a separate sheet
  • A2 and French next if readers ask

Free to read · Kindle delivery: 7-day trial, then $9/month

Get started
curl -O https://briefing-service.wholemind.workers.dev/v1/briefings/slow-es-b1/paper.epub

Read today's edition on the web: Noticias Lentas (B1), with EPUB, PDF and Atom links at the top

Listen: today's MP3 · Apple Podcasts · Spotify · podcast feed for any other app · all episodes, each with its text and questions

Desk edition: the briefing as an object, pre-order

An e-ink display that arrives already on your Wi-Fi and showing a briefing. No app, no account, nothing to set up: unbox, plug in once, put it on the desk. Built to order by one person; nothing is charged until your unit is ready to build.

Desk edition · $149

Seeed reTerminal E1001, 7.5-inch 800×480 e-paper, battery lasts months

Shows the hourly briefing of your choice with a QR code on every story, refreshed on its own schedule. Stands on a desk or hangs on a wall. Runs the TRMNL platform with the News Briefing recipe already installed.

Pre-order below, or pay now: https://briefing-service.wholemind.workers.dev/billing/desk?device=desk

Ships two to three weeks after payment, US and EU. Full refund until it ships.

Pocket edition · $129

Xteink X4 Pro, 4.3-inch e-paper, USB-C, weeks per charge

All eleven briefings in your pocket, synced every hour in the background and readable offline: the AI briefing, markets, US and world news, sports, football, crypto, grants, and the slow Spanish edition. Also a CrossPoint e-reader for your own EPUBs.

Pre-order below, or pay now: https://briefing-service.wholemind.workers.dev/billing/desk?device=pocket

Ships two to three weeks after payment, US and EU. Full refund until it ships.

Pre-order, no card now

Leave an email and we send a payment link when your unit is ready to build. The setup card that comes with the link asks for your Wi-Fi name and password so the display arrives connected.

Nothing is charged now. Reader key optional: the display works without one.

Bring your own display

Every briefing is also a finished e-ink page: 800×480 for a panel on a desk (lead, six stories, a QR code per story), 480×800 for a portrait reader. Four ways to put one on a screen you already own, all free.

TRMNL

OG, X, Seeed reTerminal, any TRMNL-compatible panel

Install the News Briefing recipe, pick a briefing, done. It re-renders hourly with the editor's ranking; the layout fills the whole screen and every story carries a QR code that opens the article. Self-hosting with LaraPaper? It is in the community recipe catalog: Add → Import from OSS Catalog.

trmnl.com/recipes/472511

Nine hourly briefings and two daily editions to choose from in the recipe's settings.

InkyPi

Raspberry Pi + Inky Impression or Waveshare

A third-party plugin: pick a briefing in the web UI, set the refresh to 60 minutes. Landscape panels get the 800×480 page, portrait panels the front page. No key, no account.

inkypi install briefing https://github.com/jshelley/InkyPi-briefing

Source and screenshot: github.com/jshelley/InkyPi-briefing

ESPHome / Home Assistant

Seeed reTerminal E1001 or any ESP32-S3 e-paper

One config: the device fetches the page every hour and draws it. Pins below are the reTerminal E1001's, from Seeed's ESPHome cookbook; change the display block for another panel and the URL for another briefing.

Show the config
# ESPHome: a Seeed reTerminal E1001 (or any 800x480 e-paper on an ESP32-S3)
# that shows the AI Briefing page and refreshes it every hour.
esphome:
  name: briefing-display
esp32:
  board: esp32-s3-devkitc-1
  framework:
    type: esp-idf
psram:
  mode: octal
  speed: 80MHz
wifi:
  ssid: "YourNetwork"
  password: "your-wifi-password"
logger:
http_request:
image:
  - platform: online_image
    id: briefing
    url: https://wholemind.tech/x4/latest-wide.png   # finance/latest-wide.png, world/latest-wide.png, ...
    format: PNG
    type: BINARY
    update_interval: 60min
    on_download_finished:
      - component.update: epaper
spi:
  clk_pin: GPIO7
  mosi_pin: GPIO9
display:
  - platform: waveshare_epaper
    id: epaper
    model: 7.50inv2
    cs_pin: GPIO10
    dc_pin: GPIO11
    reset_pin: GPIO12
    busy_pin:
      number: GPIO13
      inverted: true
    update_interval: never
    lambda: |-
      it.image(0, 0, id(briefing));

Portrait panel? Use latest.png (480×800) and rotate in the display block.

Glance

the self-hosted dashboard, on any browser or wall screen

A custom-api widget: the lead with its why-it-matters line, then twelve ranked stories with two-line snippets, source and age, collapsed after six. Paste it into your glance.yml and swap ai for any key. No key, no account; the summary endpoint is unmetered.

Show the widget
- type: custom-api
  title: AI Briefing
  title-url: https://wholemind.tech/x4/
  url: https://briefing-service.wholemind.workers.dev/v1/briefings/ai/summary
  cache: 30m
  template: |
    <div class="margin-bottom-10">
      <a class="size-h3 color-highlight color-primary-if-not-visited" href="{{ .JSON.String "lead.link" }}" target="_blank" rel="noreferrer">{{ .JSON.String "lead.headline" }}</a>
      <p class="margin-top-5">{{ .JSON.String "lead.summary" }}</p>
      {{ if .JSON.Exists "lead.why" }}<p class="size-h6 color-subdue margin-top-5">Why it matters: {{ .JSON.String "lead.why" }}</p>{{ end }}
      <ul class="list-horizontal-text flex-nowrap margin-top-5">
        <li {{ .JSON.String "lead.published" | parseTime "rfc3339" | toRelativeTime }}></li>
        <li class="min-width-0 text-truncate">{{ .JSON.String "lead.source" }}</li>
      </ul>
    </div>
    <ul class="list list-gap-14 collapsible-container" data-collapse-after="6">
      {{ range .JSON.Array "stories" }}
      <li>
        <a class="size-h4 color-primary-if-not-visited" href="{{ .String "link" }}" target="_blank" rel="noreferrer">{{ .String "headline" }}</a>
        <p class="size-h6 text-truncate-2-lines">{{ .String "summary" }}</p>
        <ul class="list-horizontal-text flex-nowrap">
          <li {{ .String "published" | parseTime "rfc3339" | toRelativeTime }}></li>
          <li class="min-width-0 text-truncate">{{ .String "source" }}</li>
        </ul>
      </li>
      {{ end }}
    </ul>
    <div class="size-h6 color-subdue margin-top-10">Re-ranked <span {{ .JSON.String "ranked_at" | parseTime "rfc3339" | toRelativeTime }}></span> · <a href="https://briefing-service.wholemind.workers.dev/llms.txt" target="_blank" rel="noreferrer">about the service</a></div>

Submitted to the community widget catalog: glanceapp/community-widgets #323. Keys and page URLs for title-url are in its README.

Any screen that can show a PNG

Inkycal, Inkplate, Kindle jailbreaks, a browser, a Raspberry Pi with a frame

The pages are plain files with stable URLs and no key. Fetch one on whatever schedule you like; a manifest next to each briefing says when it last changed.

https://wholemind.tech/x4/latest-wide.png        # AI, 800x480
https://wholemind.tech/x4/latest.png             # AI, 480x800 front page
https://wholemind.tech/x4/finance/latest-wide.png # any key: research, labs, finance, sports, soccer, us, world, crypto, grants, slow-es-b1
https://wholemind.tech/x4/manifest.json          # {"stamp", "pages"}

1-bit PNGs drawn for e-ink: no dithering needed, about 8 KB each. Inkycal: add its Image module with one of these URLs as the path and palette bw; no code, it fetches the URL itself.

How a trial works

No account, no card. A paper trial is tied to one Kindle address or one reMarkable; the API tier needs nothing at all.

DAY 0

Start

Sign up on the form or with one curl. Today's paper goes out immediately, then every morning at 07:00 ET. You get an id; that id is your account.

DAYS 6 AND 7

Decide

The last two papers carry a one-page notice with the end date and a one-click keep link. Nothing is charged unless you use it.

DAY 8

Keep or stop

Keep it with a $9/month Reader key. Or do nothing and delivery simply stops. Cancel any time from the billing portal below.

Pricing

Two ways to pay: a monthly key through Stripe, or per call in USDC on Base through x402 for agents that would rather not have an account.

$0

Free

  • 10 API/MCP calls per IP per day
  • Every front page, summary, candidate pool
  • All PDFs, EPUBs and Atom feeds
  • 7-day paper trials
Run a call
$9/month

Reader · 7 days free, no card

  • Unlimited reads, API and MCP
  • Morning Paper delivery every morning
  • PDF or EPUB, any inbox, Kindle or reMarkable
  • Cancel any time
Start the free 7 days
$0.002/call

Per call · x402, no account

  • $0.002 per briefing JSON, $0.001 per page, $0.005 per MCP tool call
  • Any paid route answers a 402 with the payment requirements
  • USDC on Base, settled by the Coinbase facilitator
  • Listed in the x402 Bazaar and on x402scan
Read the 402 docs

Already a customer? Manage it here.

There is no login. A Reader key is your billing account; a paper subscription is managed with the id you got at signup.

Billing: cancel, change card, invoices

Paste your key. You go straight to your Stripe customer portal; the key never leaves your browser except to open that page.

Paper subscription: status, change, stop

Paste the subscription id from your signup. Status shows deliveries and the trial end.

To change or stop it, use PATCH or DELETE on the same URL, or write to hello@wholemind.tech with the id.