Plugins
The plugin system is not yet publicly available. Contact us for early access to start building plugins.
🎯 Overview
The plugin system transforms Desktop Time Tracker from a standalone tool into an extensible platform, empowering users to adapt the application to their unique workflows.
Desktop Time Tracker is built with extensibility at its core, following a plugin architecture similar to VS Code and Obsidian. Just as VS Code transforms from a text editor into a full IDE through extensions, and Obsidian evolves from a note-taking app into a knowledge management system through community plugins, Desktop Time Tracker provides a robust plugin system that allows developers to extend functionality, customize behavior, and integrate with external services without modifying the core codebase.
🏗️ Architecture Principles
Similar to VS Code & Obsidian
Like these popular extensible applications, Desktop Time Tracker's plugin system provides:
- Isolated Execution: Each plugin runs independently with controlled access to core APIs (similar to VS Code extensions)
- Rich API Surface: Comprehensive APIs for UI, data access, and system integration (like Obsidian's plugin API)
- TypeScript-First Development: Full type safety and IntelliSense support throughout development
- Hot Reload: Rapid development with automatic reload on code changes
- Community Extensibility: Users can install third-party plugins or build their own
Plugin Capabilities
The plugin architecture follows a sandbox model where each plugin runs in isolation with a well-defined API. Plugins can:
- Access user activity data through secure queries
- Create custom windows and UI components
- Integrate with AI providers for intelligent features
- Store data in dedicated SQLite databases
- Communicate with external services
- Add custom tray menu items and keyboard shortcuts
Core Components
Plugin API - A TypeScript-first interface providing access to:
- Activity tracking data
- AI prompt execution with cost tracking
- Window management and UI rendering
- Database operations (per-plugin SQLite instances)
- System notifications and clipboard access
- Configuration management with validation
Plugin Manifest - Each plugin declares metadata including version requirements, permissions, and capabilities through a manifest.json file.
Hot Reload Development - Plugins can be developed with live reload capability, connecting remotely to the running application for rapid iteration.
✨ Plugin Capabilities
- Data Access - Query activity records with time filters, and active/passive tracking via TypeScript-typed APIs
- UI Flexibility - Create standalone windows, main window views, or frameless overlays with full customization
- AI Integration - Execute prompts through configured providers with automatic cost tracking, caching, and reasoning support
- Configuration - Define validated user settings with support for string, number, boolean, enum, and action field types
💡 Inspiration for Plugins
- Project Management Integration: Connect with Jira, Asana, or Linear to auto-log time entries
- Reporting & Analytics: Generate weekly summaries, productivity charts, or export to custom formats
- Focus Tools: Detect distracting websites/apps and provide gentle nudges
- Team Collaboration: Share anonymized productivity patterns with team dashboards
- Health Reminders: Periodic break notifications based on continuous work detection