Skip to content

Ajmaljalal/task-paper

Repository files navigation

πŸ“ TaskPaper

TaskPaper helps you stay focused on what matters most by intelligently surfacing urgent tasks from your calendar right on your desktop. A macOS menu bar app that generates dynamic wallpapers based on your calendar events with AI-powered task triaging.

TaskPaper Icon Python License

✨ Features

  • 🎨 Dynamic Wallpapers - Automatically generates beautiful wallpapers based on your calendar events
  • οΏ½οΏ½ AI Task Triaging - Uses OpenAI GPT-4 to intelligently identify urgent tasks from calendar events
  • 🎀 Voice Recording - Capture voice memos for tasks directly from the menu bar
  • πŸ“… Google Calendar Integration - Seamlessly syncs with your Google Calendar
  • πŸ”„ Auto-Updates - Refreshes wallpaper every 60 seconds with latest calendar data
  • πŸ“ Menu Bar Interface - Clean, minimal interface that stays out of your way
  • βš™οΈ Easy Configuration - Simple setup through intuitive settings window

πŸ“₯ Download

Download Latest Release

Installation Options:

  • TaskPaper-v1.0.0.dmg (49MB)

πŸš€ Quick Start

1. Installation

  • DMG: Double-click β†’ Drag to Applications

2. First Launch

  1. Launch TaskPaper from Applications
  2. Look for the πŸ“ icon in your menu bar
  3. Enter your OpenAI API key when prompted
  4. Connect your Google Calendar (Menu β†’ "Connect Google…")
  5. Grant calendar and notification permissions

3. Enjoy!

Your wallpaper will now automatically update with urgent tasks from your calendar!

πŸ“‹ Requirements

  • macOS: 10.14 (Mojave) or later
  • Architecture: Universal (Intel & Apple Silicon)
  • OpenAI API Key: Required for AI features (Get yours here)
  • Google Calendar: Optional but recommended

🎯 How It Works

  1. Calendar Sync: Connects to your Google Calendar to fetch today's events
  2. AI Analysis: Uses OpenAI GPT-4 to analyze events and identify urgent, actionable tasks
  3. Wallpaper Generation: Creates a beautiful wallpaper displaying your most important tasks
  4. Auto-Refresh: Updates every 60 seconds to keep information current
  5. Menu Bar Control: Manage everything from the convenient menu bar interface

πŸ› οΈ Menu Bar Options

  • πŸ“ - TaskPaper icon (click for menu)
  • Add Task - Record voice memos for future task capture
  • Connect Google… - Set up Google Calendar integration
  • Settings… - Configure OpenAI API key and preferences
  • Pause/Resume - Control automatic wallpaper updates
  • Refresh Now - Force immediate wallpaper update

βš™οΈ Configuration

OpenAI API Key

  1. Get your API key from OpenAI Platform
  2. Click the πŸ“ menu bar icon β†’ "Settings…"
  3. Enter your API key and click "Save"
  4. The key is stored securely in: ~/Library/Application Support/TaskPaper/config.json

Google Calendar

  1. Click the πŸ“ menu bar icon β†’ "Connect Google…"
  2. Follow the OAuth flow to grant calendar access
  3. Credentials are stored in: ~/Library/Application Support/TaskPaper/token.json

πŸ”§ Development

Prerequisites

  • Python 3.10+
  • macOS development environment

Setup

# Clone the repository
git clone https://github.com/Ajmaljalal/task-paper.git
cd task-paper

# Create virtual environment
python -m venv env
source env/bin/activate

# Install dependencies
pip install -r requirements.txt

# Run in development mode
python main.py

Building

Quick Development Build

./dev_build.sh

Complete Release Build

./production_build.sh

This creates:

  • dist/TaskPaper.app - The application bundle
  • release/TaskPaper-v1.0.0.dmg - Professional installer
  • release/TaskPaper-v1.0.0.zip - Direct app bundle
  • release/RELEASE_NOTES.md - Release documentation

Project Structure

task-paper/
β”œβ”€β”€ main.py                 # Application entry point
β”œβ”€β”€ settings.py             # Settings window and OpenAI config
β”œβ”€β”€ voice_window.py         # Voice recording interface
β”œβ”€β”€ config_window.py        # Configuration window wrapper
β”œβ”€β”€ config.py               # App configuration and constants
β”œβ”€β”€ auth.py                 # Google OAuth handling
β”œβ”€β”€ calendar_service.py     # Google Calendar API integration
β”œβ”€β”€ triage.py               # AI-powered task triaging
β”œβ”€β”€ renderer.py             # Wallpaper generation
β”œβ”€β”€ wallpaper_manager.py    # macOS wallpaper management
β”œβ”€β”€ voice_recorder.py       # Voice recording functionality
β”œβ”€β”€ models.py               # Data models
β”œβ”€β”€ TaskPaper.spec          # PyInstaller configuration
β”œβ”€β”€ requirements.txt        # Python dependencies
β”œβ”€β”€ build_and_package.sh    # Complete build script
└── quick_build.sh          # Development build script

πŸ” Privacy & Security

  • Local Storage: All data is stored locally on your Mac
  • API Keys: OpenAI API key stored securely in macOS Application Support
  • Google Auth: Uses OAuth 2.0 with minimal required permissions
  • No Telemetry: No usage data is collected or transmitted
  • Open Source: Full source code available for audit

πŸ› Troubleshooting

Common Issues

"App is damaged" Error

# Right-click the app and select "Open" (first time only)
# Or remove quarantine attribute:
xattr -cr /Applications/TaskPaper.app

No Wallpaper Updates

  • Check Google Calendar connection in menu
  • Verify calendar permissions in System Preferences
  • Try "Refresh Now" from menu

AI Features Not Working

  • Verify OpenAI API key in Settings
  • Check API key has sufficient credits
  • Ensure internet connection

Voice Recording Issues

  • Grant microphone permissions in System Preferences
  • Install audio dependencies: pip install sounddevice numpy

Reset Configuration

# Remove all app data (will require re-setup)
rm -rf ~/Library/Application\ Support/TaskPaper/

πŸ“Š System Integration

Wallpaper Management

  • Automatically sets wallpaper on all displays
  • Keeps last 3 wallpapers for cleanup
  • Generates high-resolution images for Retina displays

Voice Recordings

  • Saved to: ~/Library/Application Support/TaskPaper/voice_recordings/
  • WAV format at CD quality (44.1kHz)
  • Automatic cleanup keeps last 10 recordings

Background Operation

  • Runs as LSUIElement (no dock icon)
  • Minimal CPU usage when idle
  • Smart refresh scheduling

🀝 Contributing

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

Development Workflow

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

Code Style

  • Follow PEP 8 for Python code
  • Use meaningful variable names
  • Add docstrings for functions and classes
  • Keep functions focused and small

πŸ“„ License

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

πŸ™ Acknowledgments

  • rumps - For the excellent macOS menu bar framework
  • OpenAI - For powerful AI capabilities
  • Google Calendar API - For seamless calendar integration
  • Pillow - For image processing and wallpaper generation
  • PyInstaller - For creating standalone macOS applications

πŸ“ž Support


Made with ❀️ for productivity enthusiasts

TaskPaper helps you stay focused on what matters most by intelligently surfacing urgent tasks from your calendar right on your desktop.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published