Tasky is a lightweight, opinionated task manager for macOS built with SwiftUI. It focuses on fast keyboard-driven task capture, project-based organization, and a clean split-view layout that keeps your sidebar and task list always in view.
- Projects & colors: Create projects, each with its own accent color, to group related tasks.
- Priorities: Four priority levels (
Critical,High,Medium,Low) with clear colors and SF Symbol icons. - Smart filters: Sidebar sections for All, Due Today, Overdue, and Completed tasks, plus per‑project views.
- Quick search: Filter tasks by title or description with a free‑text search query.
- Sorting: Sort tasks by date created, due date, priority, or title.
- Completion stats: Basic completion percentage and counts derived from the current task list.
- Local persistence: Tasks and projects are stored in
UserDefaultsusingCodablemodels, so your data survives app restarts. - Keyboard shortcuts: System‑level menu commands to quickly create tasks and projects.
- Language: Swift
- UI framework: SwiftUI (
NavigationSplitView, sheets, environment objects) - Platform: macOS (hidden title bar window, Command‑key shortcuts)
- Persistence:
UserDefaultswithCodableTaskItemandProjectmodels
TaskyApp.swift: App entry point; creates and injects the sharedTaskyViewModel, configures the main window, and defines app‑wide commands.Models/Models.swift:Priority: Enum for task priority with labels, colors, icons, and sort order.Project: Model for user projects, including color handling.TaskItem: Core task model with due‑date helpers (overdue / due‑today) and aColorhex extension.
ViewModels/TaskyViewModel.swift:- Manages arrays of
TaskItemandProject. - Computes
filteredTasks,pendingTasks, anddoneTasksbased on the selected sidebar section, priority filter, search query, and sort order. - Handles all CRUD operations for tasks and projects and persists them to
UserDefaults.
- Manages arrays of
Views/:ContentView: Hosts theNavigationSplitViewwithSidebarViewandTaskListView, plus sheets for task/project forms.SidebarView: Sidebar navigation with smart sections and project list (see counts and filters).TaskListView: Main area that shows pending and completed tasks based on filters.TaskRow: Visual representation of a single task with priority styling.TaskFormView/ProjectFormView: Sheets for creating and editing tasks and projects.
- Xcode: Xcode 15 or newer recommended
- Platform: macOS 13 Ventura or newer (to support
NavigationSplitViewand modern SwiftUI APIs)
-
Open the project
- In Finder, double‑click
Tasky.xcodeproj, or - From a terminal:
open Tasky.xcodeproj
- In Finder, double‑click
-
Select the scheme & target
- In Xcode, choose the
Taskyscheme. - Make sure a My Mac destination is selected.
- In Xcode, choose the
-
Build & run
- Press
Cmd + Rto build and launch the app.
- Press
- New Task:
⌘N - New Project:
⇧⌘N
These commands are also available from the app’s menu under the File section (after the standard “New” items).
- Local only: There is no syncing or multi‑device support; all data lives in
UserDefaultson the local Mac. - No authentication: Tasky is a single‑user desktop app with no login or accounts.
- Experimental UI: The UI is optimized for a medium‑sized window; very small window sizes are not a primary target.