MCPcopy Index your code
hub / github.com/ABeehive/Annado

github.com/ABeehive/Annado @v0.1.3

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.1.3 ↗ · + Follow
977 symbols 2,131 edges 156 files 83 documented · 8% updated todayv0.1.3 · 2026-06-18★ 883 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Annado

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.

Today view

The Idea

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.

How It Works

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:

https://github.com/user-attachments/assets/343a7135-a676-4ebd-99f5-dae0626fe181

The same task in Annado and in the raw markdown file


Views

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

Anytime view with project groups

More screenshots of every view and panel: visual tour.


Task Syntax

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.

Expanded task with a checklist


Scheduling

Natural Language Dates

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.

Date picker with quick-select chips and natural language input

Date Hints in Titles

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".

Title hint suggesting a start date

Title hint suggesting a deadline

When Values

The @when(...) field accepts: - inbox — no schedule (appears in Inbox) - today — scheduled for today - evening — this evening - tomorrow — scheduled for tomorrow - anytime — flexible timing - someday — backlog - YYYY-MM-DD — specific date

Deadlines

Tasks can have a separate deadline (@due(...)), independent of their scheduled date. Deadlines show countdown labels and urgency color-coding in the UI.


Projects, People & Tags

Projects

  • Each .md file 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).

Project page with description, milestones, and linked people

Areas

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.

People

  • Each .md file 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.

Person page with metadata and linked tasks

Tags

  • Add tags with #tagname in 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.

Tag sidebar with counts

Priority

Three levels: !(1) high · !(2) medium · !(3) low. Filter or create Smart Lists based on priority.


Smart Lists

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.

Smart List editor with combined filters


Recurring Tasks

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.

Recurring task editor with fixed-interval and after-completion modes


Agenda

The Agenda view (Cmd+3) is a time-blocking timeline:

Agenda week view with time blocks, calendar events, and work schedule

  • 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.


Review

The Review workflow (Cmd+R) walks you through a structured 5-step weekly review:

  1. Process your inbox — review and schedule unscheduled tasks
  2. Handle overdue tasks — reschedule or complete tasks past their scheduled date
  3. Review stalled tasks — tasks that haven't moved in a while
  4. Quiet projects — projects with no recent activity
  5. 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.

Weekly Review processing the inbox


Wrapped

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):

Wrapped year heatmap slide

  1. Intro — total completions with creation and completion rate stats
  2. Big Number — your headline completion count with count-up animation
  3. Heatmap — completion activity over time, GitHub-style
  4. Bar Chart — completions by time period (week/month)
  5. Area Distribution — how your work spread across folder areas
  6. Project Focus — top projects by completions with momentum indicators
  7. Task Age — how long it took you to complete tasks (buckets)
  8. Comparison — this period vs the previous one
  9. Contrast — longest task to complete vs oldest open task
  10. Personality — your productivity personality type with supporting stats
  11. Look Ahead — upcoming open tasks and key deadlines
  12. Outro — summary with top projects

Quick Add & Quick Find

Quick Add (Cmd+N)

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.

Quick Add with scheduling, project, priority, and duration controls

Quick Find (Cmd+F or type any letter)

Universal search across tasks, projects, people, views, and tags. Shows recent items when empty. Results update as you type.

Quick Find searching across tasks and people


Bulk Operations

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

Bulk-action toolbar with multiple tasks selected


Side Panel

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

Today in the main panel with the Inbox open beside it


Obsidian Integration

  • Jump to source: click the Obsidian icon on any expanded task to open the source .md file 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 ed

Extension points exported contracts — how you extend this code

Milestone (Interface)
(no doc)
src/types/task.ts
QuickFindResult (Interface)
(no doc)
src/components/QuickFind.tsx
DaySection (Interface)
(no doc)
src/utils/dates.ts
SettingsSlice (Interface)
(no doc)
src/stores/slices/settingsSlice.ts
NotificationPrefs (Interface)
(no doc)
src/features/notifications/NotificationSettings.tsx
PanelContextValue (Interface)
(no doc)
src/contexts/PanelContext.tsx
WikiSuggestion (Interface)
(no doc)
src/hooks/useWikilinkSuggest.ts
LocaleKeywords (Interface)
(no doc)
src/config/locales.ts

Core symbols most depended-on inside this repo

get
called by 77
src/hooks/useAppEvents.ts
formatDateForStorage
called by 75
src/utils/dates.ts
getToday
called by 46
src/utils/dates.ts
parseLocalDate
called by 36
src/utils/dates.ts
parse_file
called by 26
src-tauri/src/parser.rs
persist
called by 25
src/stores/storeUtils.ts
advance
called by 23
src/features/review/ReviewView.tsx
formatWhenDisplay
called by 19
src/utils/dates.ts

Shape

Function 747
Interface 121
Method 73
Class 31
Enum 5

Languages

TypeScript67%
Rust33%

Modules by API surface

src-tauri/src/vault.rs90 symbols
src-tauri/src/commands.rs74 symbols
src-tauri/src/parser.rs62 symbols
src-tauri/src/taskformat.rs42 symbols
src/components/TaskList.tsx32 symbols
src/components/Sidebar.tsx30 symbols
src/features/review/ReviewView.tsx26 symbols
src/utils/dates.ts25 symbols
src/types/task.ts21 symbols
src/utils/dateParser.ts20 symbols
src/features/agenda/utils.ts17 symbols
src-tauri/src/calendar.rs16 symbols

For agents

$ claude mcp add Annado \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact