https://github.com/maxlorenz/todoist-pomodoro-extension
Simple Chrome extension which adds a pomodoro timer to the Todoist website
https://github.com/maxlorenz/todoist-pomodoro-extension
Last synced: 4 months ago
JSON representation
Simple Chrome extension which adds a pomodoro timer to the Todoist website
- Host: GitHub
- URL: https://github.com/maxlorenz/todoist-pomodoro-extension
- Owner: maxlorenz
- License: mit
- Created: 2025-08-09T05:03:32.000Z (10 months ago)
- Default Branch: master
- Last Pushed: 2025-08-10T02:33:08.000Z (10 months ago)
- Last Synced: 2026-01-28T18:59:39.729Z (5 months ago)
- Language: JavaScript
- Size: 8.87 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Todoist Pomodoro Timer Extension
A Chrome extension that seamlessly integrates a Pomodoro timer directly into Todoist's interface, helping you stay focused and productive while managing your tasks.


## ๐
What is the Pomodoro Technique?
The Pomodoro Technique is a time management method developed by Francesco Cirillo in the late 1980s. It uses a timer to break work into intervals, traditionally 25 minutes in length, separated by short breaks. The technique helps improve focus, reduce mental fatigue, and maintain consistent productivity throughout the day.
### How it works:
1. **Choose a task** from your Todoist list
2. **Work for 25 minutes** (one "Pomodoro") with complete focus
3. **Take a 5-minute break** to rest and recharge
4. **Repeat the cycle** - after 4 Pomodoros, take a longer 15-minute break
## โจ Features
- **Seamless Integration**: Timer widget integrates directly into Todoist's sidebar
- **Click-to-Start**: Simply click any task to start a focused work session
- **Visual Feedback**: Selected tasks are highlighted with progress indicators
- **Smart Notifications**: Desktop notifications for timer completion with break suggestions
- **Persistent State**: Timer continues running across browser sessions
- **Customizable Settings**: Adjust work duration, break lengths, and session intervals
- **Task Statistics**: Track daily and total Pomodoro completions per task
- **Dark Mode Support**: Automatically adapts to your system theme
## ๐ Quick Start (2 minutes)
### Installation
1. **Open Chrome Extensions**
- Go to `chrome://extensions/`
- Toggle on "Developer mode" (top right)
2. **Load Extension**
- Click "Load unpacked"
- Select this `todoist-pomo` folder
- Extension should appear in your list
3. **Test Installation**
- Go to [app.todoist.com](https://app.todoist.com)
- Timer widget appears in top-right corner immediately! ๐
- Select a task from dropdown and click "Start"
### How to Use
#### Method 1: Use Task Dropdown (Recommended)
- **Timer widget appears** automatically in top-right corner
- **Select task** from dropdown (first task selected by default)
- **Click "Start"** to begin 25-minute work session
- **Single clicks work normally** in Todoist (task details, navigation)
#### Method 2: Click Tasks Directly
- **Click any task** in Todoist โ Timer starts with that task name
- **Works as before** for quick timer starting
#### Method 3: Use Extension Popup
- **Click extension icon** in toolbar
- **Click "25 min Work"** to start a generic work session
- **Click "5 min Break"** or "15 min Break" for breaks
### Work/Break Cycles
- **Work session completes** โ Hear beep sound ๐ + modal
- **Choose break** โ "Take short break (5 min)" or "Take long break (15 min)"
- **Break completes** โ Notification + returns to idle with task ready
- **Continue working** โ Starts fresh 25-minute work session
## ๐ฏ Smart Task Integration
### Intelligent Task Detection
- **Extracts real task names** from Todoist (e.g., "write email", "review proposal")
- **Prevents accidental activation** on buttons, checkboxes, and interactive elements
- **Works across all Todoist views** - Today, Upcoming, Projects, Labels, Filters
### Per-Task Pomodoro Tracking
- **Individual task statistics** - Each task remembers its own Pomodoro count
- **Daily and total counters** - See both today's progress and all-time totals
- **Task history** - Extension remembers every task you've worked on
- **Project integration** - Shows which project each task belongs to
### Smart Click Behavior
**โ
WILL Start Timer:**
- Clicking on task name/content
- Clicking empty space around task text
- Clicking task background area
**โ WON'T Start Timer:**
- Task completion checkboxes
- Edit/more menu buttons (โฏ)
- Priority indicators (๐ด๐กโช)
- Due date elements
- Project/label tags
- Any interactive buttons
## ๐จ User Interface
### Timer Widget (Embedded in Todoist):
```
โโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Write Email โ
โ โ
โ โญ 15:30 โ
โ โ
โ [Pause] [Stop] โ
โ โ
โ work Today: 2 Total: 8โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโ
```
### Extension Popup:
```
โโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐
Pomodoro โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Write Email โ
โ work โข 2 today, 8 total โ
โ โ
โ โญ 15:30 โ
โ โ
โ [Pause] [Stop] โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Recent Tasks โ
โ โข Write Email 2โ8 โ
โ โข Review Docs 1โ5 โ
โ โข Team Meeting 0โ3 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ Quick Start โ
โ [25min Work] [5min Break]โ
โ [15min Break] โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโ
```
## ๐ง Customize Settings
Click the extension icon (๐
) in your toolbar:
- **Work Duration**: Default 25 minutes
- **Short Break**: Default 5 minutes
- **Long Break**: Default 15 minutes
- **Sessions until long break**: Default 4
- **Click "Save"** to apply changes
## ๐ Troubleshooting
### Extension Not Working
**Problem**: Timer doesn't appear when clicking tasks
**Solutions**:
1. Refresh the Todoist page (`Ctrl+R` or `Cmd+R`)
2. Make sure you're on `app.todoist.com` (not `todoist.com`)
3. Check that the extension is enabled in `chrome://extensions/`
4. Try disabling and re-enabling the extension
**Problem**: Extension popup shows "Open Todoist"
**Solutions**:
1. Navigate to `app.todoist.com` in the current tab
2. Make sure you're logged into Todoist
3. Refresh the page if needed
### Timer Issues
**Problem**: Timer seems inaccurate or jumps
**Solutions**:
1. This can happen if your computer goes to sleep
2. The timer will auto-correct when you return
3. For best accuracy, keep your computer awake during sessions
**Problem**: No notifications when timer completes
**Solutions**:
1. Check Chrome notification permissions:
- Go to `chrome://settings/content/notifications`
- Make sure notifications are allowed
- Check that the extension has notification permission
2. Check your system notification settings
3. Try clicking the extension icon to see if timer completed
## ๐๏ธ Development
### Prerequisites
- Node.js 16+
- Chrome browser (for testing)
- Git
### Setup
```bash
git clone
cd todoist-pomo
npm install
```
### Running Tests
```bash
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Generate coverage report
npm run test:coverage
```
### Code Quality
```bash
# Run linter
npm run lint
# Fix linting issues automatically
npm run lint:fix
# Validate everything (lint + test)
npm run validate
```
### Testing the Extension
1. Make your changes
2. Reload the extension in `chrome://extensions/`
3. Navigate to [Todoist](https://todoist.com)
4. Test your changes in the browser
## ๐ Project Structure
```
todoist-pomo/
โโโ manifest.json # Extension configuration
โโโ src/
โ โโโ content/ # Scripts injected into Todoist
โ โ โโโ content.js # Main content script
โ โ โโโ content.css # Injected styles
โ โโโ popup/ # Extension popup UI
โ โ โโโ popup.html # Popup interface
โ โ โโโ popup.js # Popup logic
โ โ โโโ popup.css # Popup styles
โ โโโ background/ # Service worker
โ โโโ background.js # Background script
โโโ assets/ # Icons and images
โโโ tests/ # Unit tests
โโโ docs/ # Documentation
```
## ๐ค Contributing
1. Fork the repository
2. Create a feature branch
3. Make your changes with appropriate tests
4. Ensure all tests pass (`npm run validate`)
5. Submit a pull request
### Commit Message Guidelines
Use conventional commit format:
```
feat(timer): add pause/resume functionality
fix(ui): resolve timer display issue in dark mode
docs(readme): update installation instructions
test(timer): add tests for timer completion
```
## ๐ Browser Compatibility
### Fully Supported
- Google Chrome 88+
- Microsoft Edge 88+
- Brave Browser (latest)
- Opera (latest)
### Limited Support
- Firefox: Not supported (uses different extension system)
- Safari: Not supported (uses different extension system)
## ๐ Privacy & Security
This extension:
- Only runs on app.todoist.com
- Stores timer data locally in your browser
- Does not collect or transmit personal data
- Does not access your Todoist account data
- No external API calls or tracking
### What Data is Stored
- Timer settings (durations, preferences)
- Current timer state (task name, remaining time)
- Session completion counts
### Where Data is Stored
- Locally in your browser only
- Settings sync across Chrome browsers if you're signed in
- No data is sent to external servers
## ๐ License
MIT License - see LICENSE file for details
## ๐ Getting Help
### Common Issues
- Check this troubleshooting section first
- Try refreshing the Todoist page
- Disable and re-enable the extension
### Reporting Bugs
If you encounter issues:
1. Note your Chrome version (`chrome://version/`)
2. Note the exact steps that caused the problem
3. Check the browser console for errors (`F12` โ Console tab)
4. Report the issue with these details
---
**Simple, focused, and effective! ๐ฏ**