for macOS

A to‑do list that's just a text file.

Kanban board. Outline view. Or open the raw Markdown and type. Listo keeps all three in sync — no database, no account, no lock‑in. Just a .md file, wherever you keep it.

Demo.md
Listo's Kanban board, showing To Do, In Progress and Done columns with tasks, subtasks, and a note.
How it works

One file, three ways to look at it.

Switch views without switching files. Every checkbox, subtask and note is the same underlying Markdown — Listo just renders it differently depending on how you want to work right now.

Kanban, for moving work along

Sections become columns. Drag a card, check it off, collapse a column you're not looking at. Each heading in the file — # To Do, # In Progress — is a column here, nothing more configured.

✓ Resizable, collapsible columns
✓ Subtasks nest one level under a task
✓ Notes preview right on the card
Kanban board view

Outline, for reading it top to bottom

The same sections and tasks, laid out as one scrollable document with real typographic hierarchy — closer to how the file actually reads. Good for reviewing everything at once, or on a smaller window.

✓ Full note text shown inline, no click needed
✓ Same keyboard shortcuts as Kanban
✓ Rename a section right from its heading
Outline view

Things‑style keyboard control

Select a row, then ⇥ / ⇧⇥ to indent or outdent, arrow keys to move, right‑click for the rest — rename, move to another column, edit its note, split it into one task per subtask (⌘T), delete. Nothing here requires reaching for the mouse.

✓ Selection follows you between views
✓ Context menu on every row
✓ A task may carry a note; a subtask stays simple
Right-click context menu with Edit note, Indent, Move to, and Delete
No proprietary format

It's just Markdown. Really.

Every list Listo shows you is a plain .md file on disk — the same one you could open in TextEdit, sync with iCloud or Dropbox, or edit from any other machine. Nothing about it is Listo‑only.

# To Do ## not required — a task is a checkbox line - [ ] Design the onboarding flow - [ ] Sketch the welcome screen - [ ] Write the empty-state copy # In Progress - [ ] Rebuild the settings panel Note: Keep the API key field last — most people skip it on first run, and it shouldn't block getting started. # Done - [x] Ship dark mode - [x] Fix crash on empty file open
Free Mode: the raw Markdown file, syntax highlighted

Prefer to type directly? Free Mode gives you the raw text with syntax highlighting — no watcher fighting your edits, no auto‑formatting while you type. Listo only re‑reads the file when you save, so pasting or typing fast never gets reverted out from under you.

Built for how a list actually gets used

Small, deliberate scope.

Two levels, on purpose

A task can carry one note and a set of subtasks. Subtasks stay simple — no infinite nesting to get lost in.

Local files, no account

Listo opens and saves ordinary files. Put them in iCloud Drive, a git repo, or nowhere special — it doesn't care.

An LLM only if you bring one

Edit Free Mode text in a way that's genuinely ambiguous, and Listo can ask an LLM to reconcile it — using your own API key. Skip Settings entirely and it just logs the change as unresolved.

Native, not wrapped

A real SwiftUI app — window tabs, Open Recent, ⌘+/⌘− for font size, light and dark mode, in English or Spanish.

Install

Three commands, via Homebrew.

Listo ships as a signed, ad‑hoc build distributed through a Homebrew cask — no App Store, no notarization fee passed on to you.

$ brew tap sergiorivas/tap
$ brew trust --cask sergiorivas/tap/listo // it's a third-party tap
$ brew install --cask listo