Reinschrift

Free software · GNOME · plain text first

Your todo list is just a text file.

Reinschrift is a native GNOME app, a top-bar extension, a CLI and a self-hostable web app — all reading and writing one Markdown file. Version it with Git, sync it with Nextcloud, open it in any editor. No database. No silo. No lock-in.

Get it on Flathub
~/Notes/todos.md
- [x] Renew passport ✅ 2026-10-01
- [ ] Fix bike light +garage @home rec:monthly
- [ ] Buy oat milk +groceries @store due:2026-10-12

01 The format

One line per task. Readable by you, parsable by machines.

Inspired by todo.txt, but living happily inside ordinary Markdown checklists — the kind every editor, forge and notes app already renders.

- [ ] Task title +project @context due:2026-01-20 rec:weekly ~note:"details" ^ID123
+projectproject, quotes allowed
@contextcontext or location
due:…due date, optional time
rec:weeklyrecurrence on completion
~note:"…"free-form note
^ID123stable reference ID

02 Four ways in, one file

Desktop, top bar, terminal and browser — pick your surface.

Reinschrift GNOME app showing tasks grouped by project
The Reinschrift menu in the GNOME top bar showing today's tasks

a.GNOME desktop

Native GTK4/libadwaita. My Day planning, filters by time range, project and place, search, multi-select, voice input via local Whisper — and live reload when the file changes underneath. A compact mode makes it usable on Linux phones.

b.GNOME Shell extension

Your My Day in the top bar: see what is planned for today, tick it off, add a task or push one to tomorrow — without opening the app. Reads the same file, including a Nextcloud-synced one. GNOME 47–50.

c.CLI

For terminal workflows and scripting — with JSON output.

$ reinschrift-cli list --due today ☐ Call the dentist +Health @Home ☐ Water the plants +Home rec:weekly $ reinschrift-cli add "Buy oat milk +groceries" ✓ added ^a3f

d.Web app · PWA

Self-hosted Flask app with a live preview of the tokens you type, a schedule by time horizon, swipe gestures, push reminders and OIDC login. Installable on your phone as a PWA — your todos everywhere, still one file.

03 Everyday features

Plain text underneath. Comfort on top.

[x]

WebDAV / Nextcloud sync

Point all apps at the same file — locally or on your cloud. External edits are picked up live.

[x]

My Day

A daily planning view: pick what today actually is about — and keep it in the top bar.

[x]

Recurring tasks

rec:daily, rec:weekly, rec:monthly — completed tasks re-spawn themselves.

[x]

Search, filter, sort

Filter by time range (overdue, today, 7 or 30 days, no date) and by several projects or places at once — the same filters in desktop, CLI and web.

optional[x]

Voice input

Local transcription via Whisper on the desktop, Web Speech API in the browser.

optional · local[x]

AI assistance

Natural-language task parsing and semantic duplicate detection via your own Ollama — nothing leaves your machine.

[x]

Six languages

German, English, Spanish, French, Japanese, Swedish.

[x]

Free software

GPL-3.0-or-later. One repo: Rust core, GTK app, Shell extension, CLI and Flask web app.

04 Install

Take the desktop app, the top bar, the CLI — or host it yourself.

GNOME desktop

The recommended way on any Linux distribution.

Get it on Flathub

GNOME Shell extension

Pending review on extensions.gnome.org. Until then, install it from the repository — it works alongside the Flatpak.

extension source on GitHub

Arch Linux

GUI and CLI from the AUR, built from the release tag.

aur.archlinux.org/packages/reinschrift

Self-host the web app

Pre-built image on GHCR, published on every release. OIDC, WebDAV and credentials via environment variables.

docker-compose example on GitHub