Own the file.
Plan the week.
Plainlist is a paid-once planner for people who live in text files. Capture in plaintext, plan by day or time, focus on today, and review what got done — all in one readable .todo file you own.
Apple Silicon · macOS 12+ · Windows and mobile coming soon
Editor → Plan → Focus → Done
The whole workday loop, in one quiet window.
Write the file, shape the day, execute today's work, then review what shipped. No account, no calendar database, no methodology to adopt first.
Editor
Type plain - task lines, nest with tabs, add @est, @due, labels, and priority. The file stays readable anywhere.
Plan
Put work on a day as Anytime, or drop it into an exact slot. Either way, the app writes a real @start back into the task line.
Focus
Work from today's plan with quick actions: add a task, add existing work to today, start now, nudge later, mark done, or jump back to Plan.
Done
Review the week by day and project. Copy a day or week as Markdown, reopen mistakes, and keep the receipts in the same plaintext history.
Who it's for
Built for people who already live in text.
One file, one daily loop — flexible enough to fit very different working lives.
Developers
A quiet planner beside the editor. Keyboard-first capture and scheduling, no calendar database.
Writers & researchers
Track drafts, readings, and long projects as plain text next to the work that's already text.
Operators & founders
Capture chaos fast, see only today, and copy out what shipped this week — no methodology first.
Consultants & freelancers
Keep a clean file per client and turn the Done log into a weekly status update in seconds.
Privacy-conscious pros
Sensitive work stays local. No account, no tracking — just a file in a folder you control.
Productivity system builders
Bring your own taxonomy with @categories, labels, filters, and a format you fully own. TaskPaper users: start here.
Local-first, file-owned
A real app over a file you can read.
Most todo apps lock your tasks inside a database you'll never see. This one starts as a fast native macOS layer over a text file that stays entirely yours, with Windows and mobile coming soon.
One file is the truth
A single .todo file holds everything. Open it in Vim, VS Code, or Notes — the app and the text never disagree.
No account required
Nothing needs to leave your Mac. No sign-up, no tracking, no vendor lock-in — your tasks are just a file in a folder you control.
Keeps your formatting
Only lines you actually edit get rewritten. Blanks, notes, odd spacing — kept exactly as you wrote them. No surprise reformatting.
Use your own sync
Point it at iCloud Drive, Dropbox, Drive, OneDrive, Syncthing, or Git. Move the file in-app; a built-in watcher reloads external changes.
Configurable @categories
Tag tasks @ai @me @brain — or invent your own. Rename, recolor, filter. Shown as colored chips, stored as plain words.
Auto-archive keeps it lean
Completed tasks older than your window move to tasks.archive.todo, keeping the working file lean — Done still shows the archived history.
Capture fast
Type naturally. Plainlist structures it.
Hit one shortcut from any app and just type. Write draft report tomorrow ! 2h /Work — Plainlist turns it into a task due tomorrow, high priority, estimated 2h, filed under Work. No syntax to learn first.
- Natural parsing. Dates, estimates, and priority parse from plain words like tomorrow, fri, 2h, 30m, !, or high.
- Project routing. Add /Work anywhere in the line to send the task straight to that project; leave it off and it lands in Inbox.
- Editable chips. Parsed fields appear before save, so a wrong date, estimate, priority, or project is easy to fix.
- Multi-line paste. Paste a list and Plainlist turns each useful line into a clean task.
- Slash commands. Type /due, /plan, /est, /p1, or /done on a task line to edit metadata without leaving the file.
Quick capture · global shortcut > draft launch notes tomorrow ! 2h /Work chips: Work · due tomorrow · P1 · 2h ↵ capture · ⌘↵ plan today
// Anytime = @start(YYYY-MM-DD) · timed = @start(YYYY-MM-DDTHH:MM)
Plan by day or time
Draft the day first, or plan straight into the grid.
Some work only needs a day. Some work needs a time. Plainlist supports both: date-only Anytime lanes and exact timed blocks, both written as readable @start tags.
- Anytime lanes hold work planned for a day without forcing fake times.
- Timed blocks are sized by @est, colored by category, and movable by drag.
- Recurring tasks use @every; completing one spawns the next occurrence.
- Plan sidebar lets you search the backlog, inspect a selected task, and drag work into a day or time slot.
- Overlap repair catches collisions and offers a one-tap push-later action instead of forcing a manual cleanup.
- Now line, capacity, and attention cues keep the week honest before it slips.
Focus on today
Once the day is planned, work from a cleaner view.
Focus is not another backlog. It is today's execution surface: planned work, needs-attention items, running work, quick capture, and done-today receipts.
- Quick task captures new work and can place it into today or a chosen time.
- Add to today pulls existing unplanned work into today's plan without exposing the whole backlog.
- Execution buttons handle Done, Later +15m, Later +30m, Tomorrow, and metadata edits.
Focus · Today
2h focus · 1 needs · 3 done
TODAY PLAN
09:00 draft Q3 report 2h P1
Anytime book dentist 15m due Jun 12
14:00 reply to emails 30m
QUICK ACTIONS
Done · Later +15m · Tomorrow · ...
+ Quick task · Add to today · Adjust Plan
Review what shipped
A weekly Done log you can actually use.
Done is a review surface, not a graveyard. See the week by day and project, copy status updates, and reopen anything completed by mistake.
- Previous weeks stay browsable, with done count, hours, and project breakdown.
- Archived history stays available after old completed tasks leave the working file.
- Copy day or week as Markdown for status updates or a personal work log.
- Rich row metadata keeps planned time, done time, estimate, due date, category, and priority visible.
# Done · this week (copied to clipboard) ## Thu 4 Jun - renew domain - Home · @ai · 10m - summarize call notes - Work · @ai · 45m ## Wed 3 Jun - logo concepts - Errands · @brain · 1.5h ## Tue 2 Jun - reply to client emails - Work · @ai · 30m - standup notes - Work · @me · 15m
The format · proof, not magic
TaskPaper grammar,
a few sharp additions.
Projects end in a colon. Tasks start with -. Tags are plain @words. That's the whole language, readable in any editor.
- Indentation is structure. One tab per nesting level — children indent under their parent.
- Reserved tags do work. @est, @start, @due, @done, @every, and @p1 drive planning, deadlines, completion, repeat, and priority.
- Due and plan stay separate. @due is a deadline. @start is when you intend to work.
# tasks.todo — plain UTF-8, tabs = nesting Work: - draft Q3 report @brain @est(2h) @start(2026-06-01) @due(2026-06-05) @p1 - reply to client emails @ai @est(30m) - prep standup notes @me @est(15m) @start(2026-06-01T14:00) Home: - book dentist @me @est(15m) @every(month) - renew domain @ai @est(10m) @done Errands: - design new logo concepts @brain @est(1.5h)
Keyboard-first
Hands stay on the keys.
Fast by mouse. Faster by keyboard. Capture from anywhere, open ⌘K, finish with ⌘D, and edit task metadata without leaving text flow. Power-user speed, no power-user ceremony.
Buy the app once. Keep the file forever.
Native, local-first, and account-free. macOS comes first, with Windows and mobile coming soon around the same file-owned model. Paid once; final launch price to be announced.
Have a bug or a feature idea?
Open feedback boardNo email list · no account · votes shape what ships next, in Featurebase.