Skip to content

Repository files navigation

BarTask

Logo

A beautiful, minimalist task manager living in your macOS menu bar

macOS Swift License

FeaturesScreenshotsInstallationUsageDevelopment中文版Download/下载


What is BarTask?

BarTask is a companion app for macOS Reminders that brings your tasks to the menu bar. It's not a standalone task manager—instead, it provides a beautiful, quick-access interface to your existing Reminders data.

Key Point: All your tasks are stored in and synced with the native macOS Reminders app. BarTask simply offers a more convenient way to view and manage them without leaving your current workspace. Any changes you make in BarTask are instantly reflected in Reminders, and vice versa.

Think of it as a menu bar shortcut with an enhanced UI for your Reminders—perfect for quick task management without switching apps.


Features

Elegant Design

  • Classic notepad-inspired UI with paper texture and red margin lines
  • Skeuomorphic design elements with realistic shadows and depth
  • Smooth animations and transitions

📋 Smart Task Management

  • Seamlessly integrates with macOS Reminders
  • Multiple list support with horizontal paging
  • Quick task entry directly in each list card
  • Inline editing with auto-save
  • Task completion tracking

🎯 Two View Modes

  • List View: Horizontal paging through individual list cards
  • All View: Vertical scrolling through all tasks at once

Productivity Features

  • Lives in your menu bar for instant access
  • No window clutter - appears only when needed
  • Keyboard shortcuts for quick task entry
  • Persistent scroll position across view switches

🎨 Customization

  • Adapts to your existing Reminders lists
  • Automatic color coding per list
  • Clean, distraction-free interface

Screenshots

List View

List View

All View

All View

Requirements

  • macOS 14.0 (Sonoma) or later
  • Xcode 15.0 or later (for building from source)
  • Access to Reminders (permission will be requested on first launch)

Installation

Option 1: Download Pre-built App (Coming Soon)

Download the latest release from the Releases page.

Option 2: Build from Source

  1. Clone the repository

    git clone https://github.com/wildematt/bartask.git
    cd bartask
  2. Build the app

    chmod +x Scripts/package.sh
    ./Scripts/package.sh
  3. Launch the app

    open BarTask.app
  4. Grant Reminders access when prompted

Usage

Basic Operations

  • Add Task: Click the "+" icon or "add task" field in any list card
  • Complete Task: Click the checkbox next to a task
  • Edit Task: Click on task text to edit inline
  • Switch Views: Use the "List" / "All" toggle in the header
  • Navigate Lists: Swipe horizontally or click page indicator dots
  • Refresh: Click the refresh icon to sync with Reminders

Keyboard Shortcuts

  • Enter - Submit new task
  • Esc - Cancel editing
  • Click outside - Save changes

Tips

  • Tasks are automatically synced with the macOS Reminders app
  • Scroll position is preserved when switching between views
  • Each list maintains its own scroll state
  • Hover over page indicators to see pointer cursor

Technical Stack

Core Technologies

  • SwiftUI - Modern declarative UI framework
  • EventKit - Integration with macOS Reminders
  • AppKit - Native macOS functionality

Architecture

  • MVVM Pattern - Clean separation of concerns
  • Combine Framework - Reactive state management
  • MenuBarExtra - Native menu bar integration

Key Components

  • BarTaskApp.swift - App entry point and menu bar setup
  • TaskListView.swift - Main UI implementation
  • ReminderManager.swift - EventKit integration and data management
  • Theme.swift - Design system and styling

Project Structure

bartask/
├── Sources/
│   └── BarTask/
│       ├── BarTaskApp.swift          # App entry point
│       ├── TaskListView.swift        # Main view implementation
│       ├── ReminderManager.swift     # Reminders integration
│       └── Theme.swift                # Design system
├── Resources/
│   ├── Assets/
│   │   └── AppIcon.icns              # App icon
│   └── Images/
│       ├── PaperTexture.jpg          # Notepad background
│       └── bg.jpg                     # Main background
├── Scripts/
│   └── package.sh                     # Build script
├── Info.plist                         # App configuration
└── README.md                          # This file

Development

Prerequisites

  • Xcode 15.0+
  • macOS 14.0+
  • Swift 5.9+

Building

# Build and run
./Scripts/package.sh && open BarTask.app

# Clean build
rm -rf BarTask.app
./Scripts/package.sh

Code Style

  • Follow Swift API Design Guidelines
  • Use SwiftUI best practices
  • Maintain consistent indentation (4 spaces)
  • Add comments for complex logic

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Roadmap

  • Custom themes and color schemes
  • Keyboard shortcuts customization
  • Task priorities and tags
  • Due date reminders
  • iCloud sync support
  • Export/import functionality

Known Issues

  • Deprecation warning for onChange(of:perform:) on macOS 14.0+ (cosmetic only)

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Inspired by the classic macOS Reminders app
  • Paper texture design influenced by traditional notepad aesthetics
  • Built with ❤️ using SwiftUI

Support

If you encounter any issues or have suggestions, please open an issue.


Made with ❤️ by Matt Shan(https://github.com/wildematt)

⭐ Star this repo if you find it helpful!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages