Omahub
← All plugins
L

Pomodoro

by lucas

Pomodoro timer with stats and configurable reminders

Security review

No obvious issues detected

Deterministic scan — not a security guarantee

None
Risk level
None
Analyzed commit
cf2e835
Scanned
1 month ago

No potentially dangerous behavior detected in the analyzed commit.

Automated analysis only — not a security guarantee.

AI advisory review

No obvious issues detected

Language-model assessment · ~deepseek/deepseek-v4-flash-latest — advisory only

None
AI risk level
None
Recommendation
install
Model
~deepseek/deepseek-v4-flash-latest
Analyzed commit
cf2e835
Reviewed
1 month ago

Manual review found a straightforward Pomodoro timer with no obfuscated code, network access, shell command execution, or destructive behavior. The only external actions are launching Omarchy’s own lock/notification helpers based on the user-selected reminder mode, which matches the documented behavior. State is persisted only to a local JSON file under ~/.local/state/omarchy/.

How this check works

This review combines the deterministic scan (the rule-based results above) with an independent look at the plugin's code by a language model. The model reads a trimmed sample of the repository's files, the manifest, and the README, then gives a plain-language risk level and a recommendation: install (no notable danger), review (look closer first), or avoid (clearly dangerous).

It runs on the same analyzed commit as the deterministic scan and is strictly advisory — it is not a security guarantee and never blocks a plugin by itself. A human moderator still reviews plugins before they are listed.

AI advisory only — automated analysis, not a security guarantee.

Install
$ omarchy plugin add https://github.com/GengCen-Qin/omarchy-pomodoro --enable
Productivity #bar

Omarchy Pomodoro

A Pomodoro timer for the Omarchy bar, running inside omarchy-shell (Quickshell). Focus/break sessions, a live bar countdown, today/week/month stats, and three reminder styles.

Features

  • Customizable focus and break durations (1–180 minutes).
  • Start focus / start break / pause / resume / reset.
  • Live countdown on the bar, e.g. 🍅 24:32; break shows ☕, idle shows today's count 🍅 3.
  • Each completed focus records a 🍅.
  • Stats for today, this week (ISO week), and this month.
  • Three reminder modes when a session ends: system notification, fullscreen overlay, or lock screen.
  • Settings and stats survive plugin reloads and shell restarts.

Requirements

  • Omarchy (the plugin runs inside omarchy-shell).

No external dependencies — it uses only Quickshell and the Omarchy UI kit (qs.Commons), which ship with Omarchy itself.

Install

omarchy plugin add https://github.com/GengCen-Qin/omarchy-pomodoro.git --enable --yes

This clones the repo into ~/.config/omarchy/plugins/lucas.pomodoro/ (named by the manifest id), validates it, and enables the plugin. The bar widget appears immediately; move it later with omarchy bar move lucas.pomodoro --section right.

--enable turns it on right away. Omit it (and --yes) to install disabled and review the code first, then run omarchy plugin enable lucas.pomodoro.

To update to the latest version later:

omarchy plugin update lucas.pomodoro

The plugin id is lucas.pomodoro. To use a different id, rename the directory and update id in manifest.json, plus every moduleName, ipcTarget, and serviceFor("lucas.pomodoro") reference in Service.qml, BarWidget.qml, and Panel.qml.

Uninstall

omarchy plugin remove lucas.pomodoro

This removes the plugin from the bar and deletes the checkout. Settings and stats are stored in ~/.local/state/omarchy/pomodoro.json; delete that file too to wipe all data.

To keep the files but stop it running, use omarchy plugin disable lucas.pomodoro.

Usage

Interaction Action
Left click Open the control panel
Right click Reset current session
Middle click Pause / resume

Panel

Left-click opens the panel, which shows the current countdown and lets you:

  • Start focus, start break, pause/resume, reset.
  • Adjust focus and break durations with the − / + steppers.
  • Toggle auto-start of the next phase (break after focus, focus after break).
  • Pick the reminder mode: Notify (desktop notification), Overlay (fullscreen page), or Lock (lock screen).
  • View today / week / month pomodoro counts.

Keyboard

With the panel focused: s start focus, p pause/resume, r reset, Esc close.

IPC

Drive the timer from scripts or keybindings:

omarchy-shell pomodoro status
omarchy-shell pomodoro startFocus
omarchy-shell pomodoro startBreak
omarchy-shell pomodoro pause
omarchy-shell pomodoro resume
omarchy-shell pomodoro reset

status returns JSON, e.g.

{
  "phase": "focus",
  "running": true,
  "remaining": 1499175,
  "total": 1500000,
  "focusMinutes": 25,
  "breakMinutes": 5,
  "autoStartBreak": true,
  "autoStartFocus": false,
  "reminderMode": "notification",
  "overlay": false,
  "today": 3,
  "week": 7,
  "month": 22
}

Data

Settings and stats are stored in ~/.local/state/omarchy/pomodoro.json. Delete that file to reset everything.

Files

  • Service.qml — singleton timer engine, stats, persistence, reminders, IPC.
  • BarWidget.qml — bar label and panel host.
  • Panel.qml — the control panel popup.
  • Model.js — pure logic (time formatting, ISO week, stat bucketing).
  • StepperRow.qml — − value + control for durations.

Maintainer notes

  • Install — nothing special: omarchy plugin add <repo-url> --enable works out of the box; the plugin is a plain git checkout.
  • Permissions — runs unsandboxed inside omarchy-shell like every plugin; it never runs shell commands, never touches the network, and never modifies user config. The only file it writes is its own state file ~/.local/state/omarchy/pomodoro.json.
  • Dependencies — none beyond Omarchy itself (Quickshell + qs.Commons).

License

MIT