A clean task manager for macOS that lives on (?) your Obsidian vault, or markdown files. No proprietary database, no lock-in, it's all based on your own files. Designed with Obsidian in mind, but also works as a stand-alone app or on your folder with markdown files.
Your tasks stay as plain markdown in your Obsidian vault. Annado reads and writes standard checkbox syntax with inline metadata, giving you a polished native desktop UI while your data stays portable. Open the same vault in Obsidian and your tasks are right there.
Bilingual: supports Dutch and English for natural language date input.
Annado treats your Obsidian vault as its database. It scans every .md file for markdown checkboxes (- [ ] / - [x]), parses inline annotations like @when(...), @due(...), and [[WikiLinks]], and presents them in a task manager UI. Every edit you make in Annado is written straight back to the markdown files — no syncing, no export step, no sidecar database.
See it in action — capturing a task in an Obsidian daily note during a meeting, then editing it in Annado:
overview.mp4
Annado has 12 views, each accessible from the sidebar or via keyboard shortcut:
| View | Shortcut | What's in it |
|---|---|---|
| Inbox | Cmd+1 |
Unscheduled tasks awaiting processing |
| Today | Cmd+2 |
Tasks scheduled for today |
| Agenda | Cmd+3 |
Day/week timeline with drag-to-schedule |
| Upcoming | Cmd+4 |
Tasks scheduled for future dates |
| Anytime | Cmd+5 |
Flexible-time tasks with no specific date |
| Someday | Cmd+6 |
Backlog and long-term tasks |
| Logbook | Cmd+7 |
Completed tasks history |
| Recurring | Cmd+8 |
Recurring task templates and instances |
| Wrapped | Cmd+9 |
Spotify Wrapped-style year-in-review |
| Added Today | Cmd+0 |
Tasks created today |
| Review | Cmd+R |
Guided 5-step weekly review workflow |
| Smart Lists | sidebar | Custom-filtered task collections |
More screenshots of every view and panel: visual tour.
Annado reads and writes this inline markdown format:
- [ ] Task title @when(tomorrow) @time(09:00) @duration(1h30m) [[Project]] !(1) #tag @due(2025-03-01)
Notes go here, indented 4 spaces
- [x] Checklist sub-item| Field | Example | Description |
|---|---|---|
@when(...) |
@when(tomorrow) |
Scheduled date |
@time(...) |
@time(09:00) |
Scheduled time (used by Agenda) |
@duration(...) |
@duration(1h30m) |
Estimated duration |
@due(...) |
@due(2025-03-01) |
Deadline |
!(1-3) |
!(1) |
Priority (1 = highest) |
#tag |
#work |
Tag |
[[WikiLink]] |
[[Project Name]] |
Project or person link |
@recurring(id) |
@recurring(abc123) |
Recurring template reference |
@created(date) |
@created(2025-02-14) |
Creation date |
@completed(date) |
@completed(2025-02-16) |
Completion date |
Checklist sub-items (- [ ] sub-task) can be toggled directly in Annado — the change persists to the markdown file.
Type dates in plain language in any date picker. Both English and Dutch are supported:
| Category | English | Dutch |
|---|---|---|
| Keywords | today, tonight, tomorrow, anytime, someday |
vandaag, vanavond, morgen, overmorgen, altijd, ooit |
| Relative | this weekend, next weekend, next week, next month, end of week, end of month |
dit weekend, volgend weekend, volgende week, volgende maand, eind van de maand |
| Weekdays | friday, fri, next monday |
vrijdag, vr, volgende maandag |
| Offsets | in 3 days, in three weeks, in a week |
over 3 dagen, over twee weken, over een week |
| Explicit | 2026-12-25, 25/12, feb 14, march 15 2027 |
25-12, 22 mei, 15 maart 2027 |
Offsets accept digits or spelled-out numbers up to twelve. Partial dates roll forward: typing 22 mei in June resolves to next year's May 22. While typing, the picker shows ranked suggestions, and quick-select chips (Today, Tomorrow, This Weekend, Next Week) are always one click away.
Annado also spots dates in the task titles you type. Write "Call Lena friday" in Quick Add and a banner offers to schedule the task for Friday — accept it and the date is set with the title cleaned up to "Call Lena". Prefix the phrase with by, due, before (or voor / uiterlijk in Dutch) and it's offered as a deadline instead: "Submit taxes by tomorrow" → deadline tomorrow, title "Submit taxes".
The @when(...) field accepts:
inbox— no schedule (appears in Inbox)today— scheduled for todayevening— this eveningtomorrow— scheduled for tomorrowanytime— flexible timingsomeday— backlogYYYY-MM-DD— specific date
Tasks can have a separate deadline (@due(...)), independent of their scheduled date. Deadlines show countdown labels and urgency color-coding in the UI.
- Each
.mdfile in your configured projects folder becomes a project. - Nest folders to create hierarchy — child projects inherit the parent folder's color.
- Assign tasks via
[[Project Name]]wiki-links. - Project metadata (description, deadline, start date, ranking, related people, milestones) can be set in the file's YAML frontmatter.
- Projects are color-coded and drag-to-reorder in the sidebar.
- The sidebar shows task counts per project (toggleable in Settings).
If you prefer folder-based grouping over explicit links, configure an Areas pattern (Settings → Folder Paths). Tasks without a [[Project]] link are then grouped by the matching folder they live in.
- Each
.mdfile in your configured persons folder becomes a contact. - Link tasks to people via
[[Person Name]]wiki-links. - Person metadata (organisation, relationship, languages) is read from YAML frontmatter.
- Add tags with
#tagnamein the task line. - Tags are color-coded (colors persist per tag, customizable by right-clicking).
- Filter the current view by clicking a tag in the sidebar.
Three levels: !(1) high · !(2) medium · !(3) low. Filter or create Smart Lists based on priority.
Smart Lists are saved custom filters, accessible from the sidebar with a custom emoji icon. Each Smart List can filter by any combination of:
- View: Inbox, Today, Upcoming, Anytime, or Someday
- Priority: High, Medium, or Low
- Deadline: has a deadline / no deadline
- Due within: N days / weeks / months
- Projects: one or more specific projects
- Person: a specific contact
- Tag: a specific tag
- Age: older than N days
Create a Smart List via the + button in the sidebar Smart Lists section, or by pressing Cmd+Shift+L. Right-click a Smart List to edit or delete it.
Recurring tasks are defined as template files in your configured recurring-templates folder. Each template specifies:
- Title and optional notes
- Recurrence type: Fixed interval (every N days/weeks/months/years) or After completion (reschedule N days after marking done)
- Start date, project, and priority
The Recurring view (Cmd+8) shows all templates. Click a template to see its pending instances. Instances are generated automatically from the template definition.
Create or edit templates via Cmd+Shift+R or the + button in the Recurring view.
The Agenda view (Cmd+3) is a time-blocking timeline:
- Day and Week subviews (toggle in the top bar)
- Current-time line shows where you are in the day
- Drag tasks onto a time slot to schedule them at a specific time
- Resize task blocks to adjust duration
- Unscheduled tasks panel on the side — drag into the timeline or use Auto Schedule
- Auto-scheduling: places unscheduled tasks into available gaps respecting your work schedule, breaks, and blocking calendar events
- Reschedule suggestions: when you drag a task off its slot, Annado suggests the next 3 available slots across upcoming days
- Calendar events overlay inline (all-day events at the top, timed events in the timeline)
- Calendar blocking: mark specific calendars as "blocks auto-scheduling" in Settings so events are treated as busy time
Set a task's time with @time(HH:MM) or by dragging it to a slot. Set duration with @duration(...) or by resizing the block.
The Review workflow (Cmd+R) walks you through a structured 5-step weekly review:
- Process your inbox — review and schedule unscheduled tasks
- Handle overdue tasks — reschedule or complete tasks past their scheduled date
- Review stalled tasks — tasks that haven't moved in a while
- Quiet projects — projects with no recent activity
- Coming up next week — a preview of what's scheduled next week
Each step shows a progress bar and task cards with inline actions (schedule, complete, delete, open in Obsidian). Use number keys 1–4 for quick actions within each step.
The Wrapped view (Cmd+9) is a Spotify Wrapped-style year-in-review. Select a time period (week, month, or year) and step through a deck of animated slides (which ones appear depends on your data):
- Intro — total completions with creation and completion rate stats
- Big Number — your headline completion count with count-up animation
- Heatmap — completion activity over time, GitHub-style
- Bar Chart — completions by time period (week/month)
- Area Distribution — how your work spread across folder areas
- Project Focus — top projects by completions with momentum indicators
- Task Age — how long it took you to complete tasks (buckets)
- Comparison — this period vs the previous one
- Contrast — longest task to complete vs oldest open task
- Personality — your productivity personality type with supporting stats
- Look Ahead — upcoming open tasks and key deadlines
- Outro — summary with top projects
Rapid task capture from anywhere in the app. Respects the current view context (e.g., opening Quick Add in a project view pre-fills that project). Supports all inline annotations and date hints in titles.
System-wide: Cmd+Shift+Space opens Quick Add even when Annado is in the background.
Where new tasks land: tasks created in Annado are appended to today's daily note, which is created automatically (with frontmatter and a ## Tasks heading) if it doesn't exist yet. In an Obsidian vault, Annado reads your existing Daily Notes plugin settings to find the right folder and filename format; otherwise the folder and format configured in Settings → Folder Paths are used.
Universal search across tasks, projects, people, views, and tags. Shows recent items when empty. Results update as you type.
Multi-select tasks with Cmd+Click. When multiple tasks are selected, a bulk-action toolbar appears at the bottom of the list:
- Complete all selected tasks
- Delete all selected tasks
- Move to Project — reassign all selected tasks
- Change When — reschedule all selected tasks
- Change Deadline — set deadline on all selected tasks
- Change Priority — set priority on all selected tasks
Open a second, independent task view alongside the main view with Cmd+\. The side panel:
- Has its own view selection, filtering, and task selection state
- Supports drag-and-drop from and to the main panel
- Is resizable by dragging the divider
- Remembers its width across sessions
- Jump to source: click the Obsidian icon on any expanded task to open the source
.mdfile at the exact line number in Obsidian - Live sync: file changes made in Obsidian are reflected in Annado in real time (file watcher)
- Wiki-links:
[[Project]]and[[Person]]links are parsed and rendered as navigation links in the UI - Vault detection: Annado detects whether the folder is an Obsidian vault (
.obsidian/present) and adapts — e.g., daily-note settings are read from Obsidian's own config - Pick your editor: jump-to-source can open the system default, VS Code, Sublime, or a custom command instead of Obsidian (Settings → General)
Annado registers the annado:// URL scheme for external capture from Shortcuts, Alfred, shell scripts, etc.:
annado://quickadd?title=Buy+groceries¬es=Milk,+eggs&when=tomorrow&project=Shopping
Supported parameters: title, notes, when, project.
| Shortcut | Action |
|---|---|
Cmd+N |
Quick Add |
Cmd+F |
Quick Find |
Cmd+S |
Open When date picker |
Cmd+D |
Open Deadline date picker |
Cmd+T |
Schedule to Today |
Cmd+K |
Toggle complete |
Cmd+Backspace |
Delete task |
Cmd+Shift+M |
Move to Project |
Cmd+Shift+L |
New Smart List |
Cmd+Shift+R |
New recurring template |
Cmd+\ |
Toggle side panel |
Cmd+1 – Cmd+6 |
Switch view: Inbox → Someday |
Cmd+7 |
Logbook |
Cmd+8 |
Recurring |
Cmd+9 |
Wrapped |
Cmd+0 |
Added Today |
Cmd+R |
Review |
Cmd+, |
Open Settings |
Cmd+Shift+Space |
Global Quick Add (system-wide) |
Cmd+Shift+A |
Show/focus app (system-wide) |
Ctrl+J / Ctrl+K |
Navigate tasks down / up |
Enter |
Expand/collapse selected task |
Escape |
Close modal / deselect |
| Type any letter | Opens Quick Find with that character |
Shortcuts marked system-wide work even when Annado is in the background. All customisable shortcuts can be rebound in Settings → Keyboard Shortcuts.
Annado can remind you about deadlines without you having the app in front of you:
- Morning of deadline — a reminder on the day itself (default 09:00)
- Day before deadline — a heads-up the evening before (default 18:00)
- Overdue daily — a daily nudge listing overdue tasks (default 08:00)
- Launch banner — a summary notification when the app starts
All notification types can be toggled individually, each with its own time, plus a master on/off switch and a test button (Settings → Notifications).
There's also a menu bar icon (toggleable) with a quick task panel, and two system-wide shortcuts: Cmd+Shift+Space for Quick Add and Cmd+Shift+A to show/focus the app.
Not every file in your vault should be scanned for tasks. There are two ways to exclude files:
From Settings (Cmd+,) → Excluded Files & Folders
Add paths relative to the vault root. A trailing / excludes an entire directory; otherwise it targets a single file.
Archive/ ← skip everything under Archive
Templates/Meeting.md ← skip one specific file
Via frontmatter
Any file with annado_exclude: true in its YAML frontmatter is silently skipped during scanning. Annado writes this automatically when you exclude a file through the UI, but you can also add it by hand:
---
annado_exclude: true
---Open Settings with Cmd+,. Five tabs:
| Section | What you can configure |
|---|---|
| Vault | View or change the active vault location |
| Appearance | Theme — Light, Dark, or System; accent color |
| Editor | Where jump-to-source opens: System default, VS Code, Sublime, or a custom command |
| Tasks | Default task duration (15m–2h); confirm-before-delete toggle |
| Sidebar Counts | Show/hide task counts per view and per project section |
| Excluded Files & Folders | Manage the path exclusion list (see above) |
| Folder Paths | Project / person / areas / recurring-template folder patterns; daily notes folder and filename format |
| Section | What you can configure |
|---|---|
| Week | Week start day (Monday or Sunday); show/hide weekends in Agenda |
| Calendar | Toggle macOS Calendar event display; per-calendar blocking toggle |
| Schedule | Work days (per day on/off), start/end times, and named breaks with per-weekday selection |
The work schedule drives Agenda auto-scheduling — tasks are only placed in open work hours, avoiding breaks and blocked calendar events.
View all fixed shortcuts and remap any customisable shortcut. Click a shortcut row, press your new key combination, and save.
| Section | What you can configure |
|---|---|
| Menu bar | Show/hide the menu bar (tray) icon |
| Notifications | Master on/off; morning-of, day-before, and overdue-daily reminders, each with its own time |
| Launch banner | Summary notification on app start |
| Test | Send a test notification |
App info: version, links to the GitHub repository, issue tracker, and the visual tour.
Below is an example layout that works out of the box with the default folder patterns:
My Vault/
├── Projects/
│ ├── Work/
│ │ ├── Website Redesign.md ← project with sub-folder hierarchy
│ │ └── Q1 Planning.md
│ └── Personal/
│ └── Home Renovation.md
├── Persons/
│ ├── Alice.md ← contact, frontmatter for metadata
│ └── Bob.md
├── Tasks.md ← tasks can live in any .md file
├── Daily Notes/
│ └── 2025-02-16.md ← tasks here too
├── 12. System/
│ └── recurring-tasks/
│ └── Weekly Review.md ← recurring task template
└── ...
Tasks can live in any markdown file in the vault — Annado scans them all (minus exclusions). The folder patterns are substring matches, so Projects matches Projects/, 01. Projects/, Work/Projects/, etc.
npm install
npm run tauri dev
On first launch Annado will ask you to pick a folder — point it at your Obsidian vault root. This is the only required setup step.
Annado looks for projects, people, and recurring task templates by matching folder names. Customise these patterns in Settings (Cmd+,) → Folder Paths.
| Setting | Default | What it does |
|---|---|---|
| Projects pattern | Projects |
Folders whose path contains this string are scanned for project files |
| Persons pattern | Persons |
Same idea for contacts |
| Areas pattern | Areas |
Folder-based grouping for tasks without a [[Project]] link |
| Recurring templates folder | 12. System/recurring-tasks |
Exact path (relative to vault root) for recurring template files |
| Daily notes folder / format | 00. Daily Notes / YYYY/MM-MMMM/YYYY-MM-DD |
Where new tasks are written (ignored in Obsidian vaults with the Daily Notes plugin configured — its settings win) |
- Frontend: React 19, TypeScript, Tailwind CSS 4, Zustand, dnd-kit
- Desktop: Tauri 2 (Rust-based framework)
- Backend: Rust — file parsing, vault watching, macOS Calendar integration, recurring task generation
npm run tauri build