The design decision that matters is WAL mode on one database: the assistant is not syncing with the app through an API, it is writing the same rows, so a task created in conversation is on the board immediately and vice versa. That is also the source of the setup friction the README is candid about — the native SQLite binding has to be compiled twice, once for Electron's Node and once for the one your MCP client runs, which is why the deploy step exists.
A desktop task manager with an MCP server alongside it, both reading the same SQLite database in WAL mode so the app and the assistant can work at once without conflicting. The app is an Electron and React desktop client; the MCP server is a separate Node process your MCP client spawns.
- List management — `create_list`, `get_lists` with task counts, `update_list`, `delete_list`, `reorder_lists`
- Task operations: `create_task` with optional attributes, `get_tasks` with filters, `update_task`, `complete_task`, `delete_task`, `bulk_create_tasks` for many at once, and `move_task` between lists
- Prioritisation as a first-class job rather than a field — `prioritize_list` analyses tasks and returns guidance, `bulk_set_priorities` applies tiers across many tasks, `get_prioritization_summary` gives the overview, and `suggest_next_task` recommends what to work on now
- Goals linked to the work: `create_goal`, `get_goals` with progress, `update_goal`, `link_tasks_to_goal`, `get_goal_progress`
- A day planner the assistant can drive — `get_day_schedule` returns scheduled tasks, unscheduled tasks and free time blocks for a date, `schedule_tasks` places them on the hourly grid, `unschedule_task` takes one back off
- Subtasks and tags: `add_subtask`, `update_subtask`, `create_tag`, `get_tags`, `add_tag_to_task`
- Five prioritisation strategies to ask for by name — Balanced, Urgent First, Quick Wins, High Impact and Eisenhower — resolving into three tiers: Do Now, Do Soon, Backlog
- Multiple database profiles, so work and personal keep separate lists, tasks and settings and you switch between them in the sidebar
No account and no key — data is local, in `%APPDATA%\.uptier\tasks.db` on Windows or `~/.uptier/tasks.db` elsewhere. A prebuilt Windows installer is available and needs no build. From source you need Node.js 20 or newer and pnpm 8 or newer, then `pnpm install`, an approve-builds step for the native modules, and a rebuild of `better-sqlite3` for Electron's bundled runtime. The MCP server is deployed separately with `pnpm --filter @uptier/mcp-server deploy`, which installs it under `~/.uptier/mcp-server/` with native modules compiled for your system Node — the version Claude Desktop uses, which differs from Electron's — and updates the client config for you. Testing so far is Windows only; the author is asking for help testing macOS and Linux. MIT licensed.
One command — pnpm --filter @uptier/mcp-server deploy
