A minimal, keyboard-first, full-screen terminal Pomodoro timer with soft pastel themes and synthetic 8-bit audio cues.
Focus on your work, not your timer.
- Distraction-Free UI: Full-screen, minimalist design keeps you focused.
- Keyboard-First: Navigate and control everything from your keyboard.
- Responsive Layout: Adapts to any terminal size, from tiny to wide.
- Color Themes: Switch between
modernandcalmthemes with a keypress. - Audio Cues: Lightweight, generated 8-bit sounds for timer events (no media files needed).
- Mouse Support: Optional mouse control for key actions.
| Small | Medium (Text Hints) | Medium (Icon Hints) | Wide |
|---|---|---|---|
![]() |
![]() |
![]() |
Requires Node.js >= 22.
npm install -g doro-cliOnce installed, just run doro in your terminal!
# Clone the repository
git clone https://github.com/dnim/doro-cli.git
cd doro-cli
# Install dependencies
npm install
# Build the project
npm run build
# Run it!
node dist/cli.jsRun in development mode with hot-reloading:
npm run devTo run doro from anywhere:
npm link
doro| Key | Action |
|---|---|
q |
Quit |
p or Space |
Pause / Resume |
r |
Reset Timer |
c |
Toggle Color Scheme |
m |
Mute / Unmute |
w |
Start Work Timer |
s |
Start Short Break |
l |
Start Long Break |
L |
Lock / Unlock Hotkeys |
Shift+R |
Reset All Settings |
Shift+D |
Debug: Fast-forward timer |
doro-cli automatically saves your settings (volume mode and color scheme) to a persistent configuration file.
- Settings Location:
- macOS:
~/Library/Preferences/doro-cli-nodejs/settings.json - Linux:
~/.config/doro-cli-nodejs/settings.json - Windows:
%LOCALAPPDATA%\doro-cli-nodejs\Config\settings.json
- macOS:
To reset all settings to their factory defaults, press Shift+R within the app.
- A long break is offered every 3 completed work sessions.
- When a timer finishes, you have 60 seconds to confirm the next mode before it auto-starts.
This project uses release-it to automate versioning, Git tagging, GitHub Releases, and npm publishing.
To create a new release, ensure your working directory is clean, then run:
npm run releaseThe interactive wizard will guide you through:
- Selecting the next version (patch, minor, major).
- Committing the version bump in
package.json. - Creating a Git tag.
- Pushing the commit and tag to GitHub.
- Creating an official GitHub Release.
- Publishing the package to npm.
Contributions are welcome! Please keep pull requests small and focused.
Before submitting, please run:
npm run lint:local
npm run typecheck
npm run test:unitMade with love and TypeScript



