Skip to content

jamespheffernan/Comprehensive-Inbox-Dashboard

Repository files navigation

Inbox Zero Dashboard

A GTD-style live dashboard for tracking all your inboxes with "inbox zero" timers. Built with Electron, React, TypeScript, and Zustand.

Inbox Zero Dashboard Platform License

✨ Features

  • πŸ”΄ Live Data: Automatic polling of digital inboxes (iMessage, WhatsApp, OmniFocus, file system, browser tabs, AI chats, Photos, Email)
  • ⏱️ Inbox Zero Timer: Tracks time since each inbox was last cleared to zero, with visual states at 12h (warning) and 24h (due)
  • πŸ“¦ Physical Inbox Tracking: Manual tap-to-clear for physical inboxes (mailbox, notebooks, etc.)
  • πŸ”— Deep Links: Click any inbox card to open the corresponding app
  • πŸ’Ύ Persistent State: Timer state persists across app restarts
  • πŸ”” Desktop Notifications: Get notified when inboxes become overdue
  • 🎨 6 Themes: Deep Focus, Ocean, Forest, Sunset, Midnight, Monochrome
  • ⌨️ Keyboard Shortcuts: Cmd+R to sync, Cmd+, for settings, Cmd+/ for help
  • πŸ” Privacy-First: All data stays local, no cloud sync

Inboxes Tracked

Communication

  • Email accounts (iCloud, Gmail, School)
  • WhatsApp
  • iMessage

Device Capture

  • Downloads folder
  • Desktop
  • Screenshots
  • Photos app (recent imports)

Tasks & Browser

  • OmniFocus Inbox
  • Browser tabs (Comet)

AI Chats

  • ChatGPT
  • Claude
  • Gemini

Physical

  • Physical Mailbox
  • Notebooks
  • Backpack Folder
  • In-Tray

Requirements

  • macOS 12+ (for JXA/AppleScript integrations)
  • Node.js 18+
  • Full Disk Access permission (for iMessage/WhatsApp database access)
  • OmniFocus 4 Pro (for OmniFocus integration)

Setup

1. Install Dependencies

npm install

2. Grant Full Disk Access

For iMessage and WhatsApp integration:

  1. Open System Settings β†’ Privacy & Security β†’ Full Disk Access
  2. Add your terminal app and/or the Inbox Zero Dashboard app

3. Development

# Start Vite dev server and Electron
npm run electron:dev

4. Build

# Build for distribution
npm run electron:build

Integration Details

iMessage & WhatsApp

Queries the SQLite databases directly:

  • iMessage: ~/Library/Messages/chat.db
  • WhatsApp: ~/Library/Group Containers/group.net.whatsapp.WhatsApp.shared/ChatStorage.sqlite

OmniFocus

Uses JXA (JavaScript for Automation) to query OmniFocus 4. Based on patterns from OmniFocus-MCP.

AI Chats

Integrates with the Inbox Importer AI Chats project. Reads from conversation-index.json to track new conversations.

Browser Tabs

Uses AppleScript to count open tabs in Comet browser. Falls back to manual tracking if AppleScript access is unavailable.

File System

Uses chokidar to watch Downloads, Desktop, and Screenshots folders.

Tech Stack

  • Electron: Cross-platform desktop app
  • React 18: UI framework
  • TypeScript: Type safety
  • Vite: Build tool
  • Zustand: State management with persistence
  • better-sqlite3: SQLite database access
  • chokidar: File system watching

Project Structure

β”œβ”€β”€ electron/
β”‚   β”œβ”€β”€ main.cjs              # Main process
β”‚   β”œβ”€β”€ preload.cjs           # Secure IPC bridge
β”‚   └── connectors/           # Data source connectors
β”‚       β”œβ”€β”€ messaging.cjs     # iMessage/WhatsApp
β”‚       β”œβ”€β”€ omnifocus.cjs     # OmniFocus JXA
β”‚       β”œβ”€β”€ filesystem.cjs    # File system watcher
β”‚       β”œβ”€β”€ browser.cjs       # Browser tabs
β”‚       β”œβ”€β”€ ai-chats.cjs      # AI chat importer
β”‚       └── photos.cjs        # Photos app
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/           # React components
β”‚   β”œβ”€β”€ store/                # Zustand stores
β”‚   β”œβ”€β”€ types/                # TypeScript types
β”‚   └── App.tsx               # Main app
└── package.json

πŸ“š Documentation

⌨️ Keyboard Shortcuts

  • Cmd+R - Sync all inboxes
  • Cmd+, - Open settings
  • Cmd+/ - Show help
  • Cmd+Q - Quit app
  • Cmd+W - Close window

🎨 Screenshots

Dashboard View

The main dashboard shows all your inboxes organized by category with live counts and timers.

Settings

Configure themes, email accounts, and notification preferences.

Timer States

  • Green - At zero, timer counting up
  • Blue - Active with items to process
  • Orange - 12+ hours since last zero (warning)
  • Red - 24+ hours since last zero (due!)

🀝 Contributing

This is a personal productivity tool, but contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly
  5. Submit a pull request

πŸ› Bug Reports

Found a bug? Please open an issue with:

  • macOS version
  • App version
  • Steps to reproduce
  • Expected vs actual behavior
  • Console logs (if applicable)

πŸ—ΊοΈ Roadmap

  • Windows/Linux support (limited - some integrations are macOS-only)
  • Slack/Discord integration
  • GitHub notifications
  • Calendar events as inbox
  • Custom inbox types
  • Export/import settings
  • Stats and analytics
  • Mobile companion app (view-only)

πŸ™ Acknowledgments

Built with inspiration from:

  • OmniFocus-MCP - OmniFocus automation patterns
  • elie222/inbox-zero - Email management approach
  • Your existing tools: Daily Brief Skill, Inbox Importer AI Chats, Blinders

πŸ“„ License

MIT License - see LICENSE file for details


Made with ❀️ for GTD practitioners who want to stay on top of all their inboxes.

About

A local desktop dashboard for tracking digital and physical inbox zero.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors