Skip to content

claudioavgo/simple-task

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simple Task

A minimal, Things 3-inspired task manager for macOS. Lives in your menu bar with a global quick capture shortcut.

macOS Swift License

Features

  • Menu Bar App — Always one click away from your system tray
  • Quick Capture ( Space) — Spotlight-style floating panel to capture tasks instantly
  • Smart Lists — Inbox, Today, Later with live task counts
  • Scheduling — Set a "When" date and tasks auto-promote to Today when the day arrives
  • Deadlines — Due dates with color-coded countdown badges (overdue, today, upcoming)
  • Categories — User-created areas with custom SF Symbol icons and colors
  • Main Window — Full Things 3-style NavigationSplitView with sidebar
  • Context Menus — Move between sections, schedule, assign categories, delete
  • SwiftData Persistence — Everything saved locally, no account required

Quick Capture

The quick capture modal ( Space) provides:

  • Section selection via pills (⌘1 Inbox, ⌘2 Today, ⌘3 Later)
  • Quick date scheduling (Today, Tomorrow, Next Monday)
  • Deadline shortcuts (Today, Tomorrow, Next Friday)
  • Optional category assignment
  • to save, to close

Requirements

  • macOS 15.0+
  • Xcode 16+
  • Swift 6.0

Getting Started

git clone https://github.com/claudioavgo/simple-task.git
cd simple-task
open Simple/Simple.xcodeproj

Build and run with R.

Architecture

Simple/Simple/
├── App/             Entry point, app delegate, scene configuration
├── Model/           SwiftData models — TodoItem, Category, TodoSection
├── Views/           SwiftUI views — main window, sidebar, task list, quick capture
├── Utilities/       FloatingPanel, keyboard helpers, date formatting, Color+Hex
└── Resources/       Assets, Info.plist, entitlements

Date System

Inspired by Things 3's dual-date approach:

Field Purpose Behavior
whenDate When should I start? Auto-promotes task to Today when the date arrives
deadline When is it due? Color-coded badge — red (overdue), orange (today), yellow (soon)

Tasks without dates stay in their assigned section. The effectiveSection computed property handles auto-promotion transparently.

Tech Stack

Layer Technology
UI SwiftUI
Persistence SwiftData
Platform AppKit (menu bar, floating panels)
Dependencies KeyboardShortcuts

Keyboard Shortcuts

Shortcut Action
Space Open quick capture
⌘1 / ⌘2 / ⌘3 Inbox / Today / Later
Save task
Close quick capture
⌘O Open main window (from menu bar)
⌘Q Quit

Contributing

Contributions are welcome! Please read CONTRIBUTING.md for details on:

  • Branch naming (feat/, fix/, refactor/, ...)
  • Commit messages (Conventional Commits)
  • Pull request process
  • Code style guidelines

Changelog

See CHANGELOG.md for a detailed history of changes.

License

MIT License — see LICENSE for details.

Acknowledgments

About

Organize your tasks in a simple way.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors

Languages