A native macOS menu-bar to-do list & idea board, built with Liquid Glass.
Capture tasks and ideas, check things off, and watch your streak fill in — all from the menu bar, without leaving what you're doing.
![]() |
![]() |
| Custom page switcher — Tasks ↔ Ideas | Open an idea to edit its text & tags |
- Quick capture — a New ToDo button expands into a compose card; the field auto-focuses so you can type and hit Return.
- Satisfying check-off — the checkmark fills and the title strikes through in place, then the row glides down into Completed a beat later.
- Drag to reorder — press and drag any active task; a floating glass copy follows your cursor and an accent line shows where it'll land.
- Repeating tasks — set a daily / weekly / monthly cadence with custom-built frequency, date, and reset-time pickers. They reset on schedule and live in their own section.
- Completed shelf — finished tasks collapse into their own card, sorted by when you finished them. Clear them in one tap.
- Live menu-bar count — the number of tasks still to do sits right next to the icon and ticks down as you go.
- Contribution graph — a GitHub-style grid of squircles tracks the tasks you complete each day, with relative five-shade intensity and accurate month labels.
- Hover & click — dwell on a day for a count tooltip, or click it to open a section listing exactly which tasks you finished that day.
- A second page — flip the header from Tasks to Ideas via a custom dropdown (with the page dimmed and blurred behind it).
- Capture anything — an auto-growing, multi-line input expands with every line (up to ten) with no clipping, backed by a native text view.
- Tags — add removable tag chips that wrap in a flow layout.
- Idea detail — tap an idea to open a sub-page that showcases it, where you can edit the text, add/remove tags, copy, or delete. Edits save live.
- Persistent — tasks, ideas, and your completion history are all saved locally and survive quits and restarts.
- Menu-bar only — no dock icon, no clutter (
LSUIElement), with the panel pinned to grow downward from a fixed top.
Every surface — the add field, the list, the empty state — renders with Apple's Liquid Glass (glassEffect) on macOS 26, with an automatic .regularMaterial fallback on earlier systems. The whole UI is native SwiftUI with zero third-party dependencies: SF Symbols, SF Pro Rounded, system materials, and a single accent color (#FF6A1A).
- macOS 14.0 or later (Liquid Glass visuals light up on macOS 26+)
- Xcode 26 to build
git clone https://github.com/Entrepenulian/tado.git
cd tado
open LiquidTodo.xcodeprojThen press ⌘R in Xcode. The checklist icon appears in your menu bar — click it to open tado.
Prefer the command line:
xcodebuild -project LiquidTodo.xcodeproj -scheme LiquidTodo -configuration Release buildNative SwiftUI with zero third-party dependencies.
| File | Responsibility |
|---|---|
LiquidTodoApp.swift |
App entry point — the MenuBarExtra scene and its baked icon + live count |
MenuView.swift |
The panel shell: page switcher, custom dropdown, and the Tasks page |
Composer.swift |
The New ToDo button that expands into the task compose card |
RepeatOptions.swift / CustomPickers.swift |
Custom frequency selector and hand-built date / time pickers |
TodoRow.swift |
A single task row with hover, press, and check states |
ActivityGraph.swift |
The contribution graph, dwell tooltip, and day selection |
DayDetailCard.swift |
The "tasks completed on this day" section |
IdeasView.swift |
The Ideas page: composer, tag chips, and idea list |
IdeaDetailView.swift |
The idea sub-page — edit text/tags, copy, delete |
GrowingTextView.swift |
Native auto-growing multi-line text input (NSTextView) |
FlowLayout.swift |
Wrapping layout for tag chips |
GlassEffect.swift |
The liquidGlass(cornerRadius:) surface modifier |
WindowAnchor.swift |
Pins the panel's top edge so it only grows downward |
TodoStore.swift |
State, ordering, recurrence, activity, ideas + persistence |
TodoItem.swift / Recurrence.swift / Idea.swift / Page.swift |
Models |
tado stores your tasks, ideas, and completion history locally in UserDefaults on your Mac. Nothing leaves your machine — no accounts, no network, no analytics.

