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