Download the latest release β
- Download
TickTaskPro-X.X.X-mac-arm64.dmg - Open the DMG file
- Drag TickTaskPro to your Applications folder
- Launch from Applications
Note: On first launch, you may need to right-click β Open if macOS blocks the app (unsigned developer).
- Download
TickTaskPro-X.X.X-win-x64.exe - Run the installer
- Choose installation directory (or use default)
- Launch TickTaskPro from Start Menu or Desktop
- Define your own rules for automatic task placement
- Drag-and-drop between quadrants
- Manual override with persistent placement
- AND/OR logic for complex rule combinations
- Natural language date parsing ("tomorrow at 2pm", "next Friday")
- Inline tags with
#syntax - Auto-completion for existing tags
- Keyboard shortcut:
β/Ctrl + N
- Daily, weekly, monthly, yearly patterns
- Custom recurrence intervals
- Automatic creation of next instance on completion
- Organize tasks in custom lists with colors & icons
- Color-coded tags for visual organization
- Tag manager for bulk operations
- Filter by lists, tags, and due dates
- Default priority for new tasks
- Default due date rules
- Auto-apply tags based on patterns
- Dark/Light theme
- Desktop notifications for upcoming tasks
- Background scheduler checks every minute
- Click notification to jump to task
- One-click backup to JSON
- Import/restore from backup files
- All data included: tasks, lists, tags, settings, rules
- 100% offline operation
- Local SQLite database
- No telemetry or cloud sync
- Your data never leaves your machine
| Shortcut | Action |
|---|---|
β/Ctrl + N |
Quick add task |
β/Ctrl + F |
Focus search |
Esc |
Close modal/drawer |
Enter |
Submit quick add |
The matrix engine evaluates tasks against rules in this order:
- Do First (Urgent & Important)
- Schedule (Important, Not Urgent)
- Delegate (Urgent, Not Important)
- Eliminate (Neither)
| Condition Type | Operators |
|---|---|
| Priority | is, is not, is one of |
| Due Date | within X days, after X days, overdue, no due date |
| Tag | includes, does not include |
| List | is, is not |
All data is stored locally in SQLite:
- macOS:
~/Library/Application Support/TickTaskPro/ticktask.db - Windows:
%APPDATA%/TickTaskPro/ticktask.db - Linux:
~/.config/TickTaskPro/ticktask.db
| Concern | Technology |
|---|---|
| Runtime | Electron 33 |
| UI | React 18 + TypeScript 5 |
| Styling | TailwindCSS + Framer Motion |
| Database | SQLite (better-sqlite3) |
| State | Zustand |
| Date Parsing | chrono-node |
| Drag & Drop | react-beautiful-dnd |
| Build | Vite + electron-builder |
- Node.js 18+ (20 recommended)
- npm or yarn
- Python 3 (for native module compilation)
- (macOS) Xcode Command Line Tools
- (Windows) Visual Studio Build Tools
# Clone the repository
git clone https://github.com/MidnightRambo/TickTaskPro.git
cd TickTaskPro
# Install dependencies
npm install
# Rebuild native modules for Electron
npm run postinstall# Start development server with hot reload
npm run dev
# Or start with Electron immediately
npm run electron:devThe app will open with:
- Frontend:
http://localhost:5173 - Hot reload enabled for both frontend and Electron main process
# Build installers for your current platform
npm run dist
# Build for macOS (ARM64)
npm run dist:mac
# Build for Windows (x64)
npm run dist:win
# Output directory: release/The GitHub Actions workflow automatically builds and releases on push to main:
# Tag a new version
npm version patch # or minor, major
# Push to GitHub
git push origin main --follow-tagsArtifacts are uploaded to GitHub Releases automatically.
TickTaskPro/
βββ electron/
β βββ main.ts # Electron main process
β βββ preload.ts # Preload script (IPC bridge)
β βββ database.ts # SQLite initialization & migrations
βββ src/
β βββ components/
β β βββ EisenhowerMatrix.tsx
β β βββ TaskCard.tsx
β β βββ TaskDrawer.tsx
β β βββ QuickAddModal.tsx
β β βββ RulesEditor.tsx
β β βββ SettingsModal.tsx
β β βββ TagManager.tsx
β β βββ Sidebar.tsx
β β βββ ListView.tsx
β β βββ Topbar.tsx
β βββ store/
β β βββ index.ts # Zustand store
β βββ types/
β β βββ index.ts # TypeScript types
β βββ utils/
β β βββ date.ts # Date utilities
β βββ App.tsx
β βββ main.tsx
β βββ index.css
βββ assets/
β βββ icons/ # App icons (icns, ico, png, svg)
βββ .github/
β βββ workflows/
β βββ release.yml # CI/CD pipeline
βββ package.json
βββ vite.config.ts
βββ tailwind.config.js
βββ tsconfig.json
| Script | Description |
|---|---|
npm run dev |
Start Vite dev server |
npm run electron:dev |
Start app in dev mode with hot reload |
npm run dist |
Build installer for current platform |
npm run dist:mac |
Build macOS DMG (local) |
npm run dist:win |
Build Windows installer (local) |
npm run typecheck |
Run TypeScript type checking |
npm run preview |
Preview production build |
All database operations use Electron IPC:
// Example: Get all tasks
const tasks = await window.electron.db.tasks.getAll()
// Example: Create a task
await window.electron.db.tasks.create({
id: uuid(),
title: 'My task',
priority: 'high',
// ...
})Available handlers:
db:tasks:*- Task CRUD operationsdb:lists:*- List managementdb:tags:*- Tag managementdb:settings:*- Settings operationsdb:rules:*- Eisenhower rulesbackup:export/backup:import/backup:restorenotification:show
Every push to main triggers:
- β Build on macOS and Windows runners
- β Package installers with electron-builder
- β Create/update GitHub Release with artifacts
- β Upload artifacts to workflow (30-day retention)
Release naming: vX.Y.Z (based on package.json version)
MIT Β© MidnightRambo
Built with β€οΈ using: