A beautiful, feature-rich CLI Pomodoro timer with customizable presets, desktop notifications, and an elegant progress bar interface. Boost your productivity with the proven Pomodoro Technique right from your terminal.
- 🎯 Classic Pomodoro Technique: Traditional 25/5/15 minute work/break cycles
- 🔧 Fully Customizable: Adjust work, short break, long break durations and session counts
- 📋 Smart Presets: Quick-start with
fast,focus, ordefaultconfigurations - 🎨 Beautiful Progress Bar: Colorful, animated progress indicator with time remaining
- 🔔 Desktop Notifications: Native OS notifications with custom sounds and images
- 💡 Session Tracking: Visual session counter to track your productivity streaks
- 🎵 Custom Sound Alerts: Distinctive notification sounds for phase transitions
- 🖥️ Cross-Platform: Works on macOS, Windows, and Linux
- ⚡ Lightweight: Fast startup and minimal resource usage
Install globally via npm:
npm install -g clifficiencyStart a default Pomodoro session:
cliffThat's it! CLIfficiency will start a 25-minute work session, followed by 5-minute breaks, with a 15-minute long break every 4 sessions.
cliff [options]| Option | Short | Description | Example |
|---|---|---|---|
--work <minutes> |
-w |
Set work duration in minutes | cliff -w 30 |
--short <minutes> |
-s |
Set short break duration in minutes | cliff -s 10 |
--long <minutes> |
-l |
Set long break duration in minutes | cliff -l 20 |
--sessions <number> |
-n |
Sessions before long break | cliff -n 3 |
--preset <name> |
-p |
Use a predefined preset | cliff -p focus |
--version |
-V |
Show version number | cliff --version |
--help |
-h |
Display help information | cliff --help |
CLIfficiency comes with three built-in presets:
cliff -p default
# or simply
cliff- Work: 25 minutes
- Short Break: 5 minutes
- Long Break: 15 minutes
- Sessions: 4 (classic Pomodoro)
cliff -p focus- Work: 50 minutes
- Short Break: 10 minutes
- Long Break: 30 minutes
- Sessions: 4 (deep work sessions)
cliff -p fast- Work: 1 minute
- Short Break: 1 minute
- Long Break: 2 minutes
- Sessions: 2 (for testing/demo)
Override any preset or create your own timing:
# Custom work and break times
cliff -w 45 -s 15 -l 25
# Custom session count with focus preset
cliff -p focus -n 3
# Completely custom configuration
cliff -w 30 -s 7 -l 20 -n 5When running, CLIfficiency displays:
Work █████████████████████████████████████████████ 100% | (#2) 25:00 time remaining
- Phase Name: Current activity (Work, Short Break, Long Break)
- Progress Bar: Visual progress with completion percentage
- Session Counter: Current session number (#2)
- Time Remaining: Countdown timer in MM:SS format
CLIfficiency sends native desktop notifications for each phase transition:
- Title: "¡Hora de trabajar! 💻"
- Message: "Enfócate por unos minutos más."
- Title: "Tómate un respiro ☕"
- Message: "Estira un poco o toma agua."
- Title: "¡Descanso largo! 🧘"
- Message: "Tómate tu merecido descanso."
Each notification includes:
- Custom CLIfficiency sound alert
- Application icon
- Automatic dismissal (non-blocking)
CLIfficiency automatically installs a custom notification sound (CLIfficiency_noti.wav) to your system's sound library. The sound is automatically copied to:
- macOS:
~/Library/Sounds/ - Windows: System sounds directory
- Linux: User sound directory
- Node.js: 14.0.0 or higher
- npm: 6.0.0 or higher
- Operating System: macOS, Windows 10+, or Linux
- commander: CLI argument parsing
- cli-progress: Beautiful progress bars
- ansi-colors: Terminal color support
- node-notifier: Cross-platform notifications
- TypeScript: Type safety and modern JavaScript features
clifficiency/
├── dist/ # Compiled JavaScript
├── src/
│ ├── core/
│ │ └── PomodoroTimer.ts # Core timer logic
│ ├── ui/
│ │ └── ProgressBar.ts # Progress bar interface
│ ├── cli.ts # Command line interface
│ ├── presets.ts # Timer presets
│ └── index.ts # Main application entry
├── assets/
│ ├── sounds/ # Notification sounds
│ └── images/ # Application icons
└── package.json
We welcome contributions! Here's how you can help:
-
Clone the repository:
git clone https://github.com/JosueIsOffline/CLIfficiency.git cd CLIfficiency -
Install dependencies:
npm install
-
Run in development mode:
npm run dev
-
Build the project:
npm run build
Test your changes with the fast preset:
npm run dev -- -p fastThis runs 1-minute cycles for quick testing.
- Fork the repository and create a feature branch
- Write clear, descriptive commit messages
- Test your changes thoroughly
- Update documentation if needed
- Submit a pull request with a detailed description
# Standard Pomodoro for focused work
cliff -p default# Longer focus periods for complex tasks
cliff -p focus# 40-minute study periods with longer breaks
cliff -w 40 -s 10 -l 25 -n 3# 15-minute focused sessions
cliff -w 15 -s 5 -l 10 -n 2This project is licensed under the MIT License - see the LICENSE file for details.
Josué R. Hernández Montero
- GitHub: @JosueIsOffline
Found a bug or have a feature request? Please create an issue on our GitHub Issues page.
When reporting bugs, please include:
- Your operating system and version
- Node.js version (
node --version) - CLIfficiency version (
cliff --version) - Steps to reproduce the issue
- Expected vs actual behavior
- Initial release
- Core Pomodoro timer functionality
- Three built-in presets (default, focus, fast)
- Desktop notifications with custom sounds
- Colorful progress bar interface
- Cross-platform compatibility
- Full TypeScript implementation
Happy Productivity! 🍅✨
Made with ❤️ using TypeScript and the Pomodoro Technique