Omahub
← All plugins
M

TimeWarrior

by Michael Dahl

TimeWarrior tracking status and daily report in the Omarchy bar.

Security review

No obvious issues detected

Deterministic scan — not a security guarantee

None
Risk level
None
Analyzed commit
f44d85e
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
f44d85e
Reviewed
1 month ago

The deterministic scan found no issues, and my independent review agrees. The bundled helper only runs read-only `timew export` commands, while mutating TimeWarrior actions are triggered only by explicit panel button presses. There is no obfuscation, network access, persistence, or destructive behavior.

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/micdahl/omarchy-timewarrior --enable
Productivity #bar

TimeWarrior for Omarchy

An Omarchy bar widget for TimeWarrior. It shows whether time is being tracked, keeps a live stopwatch for the open interval, and opens a keyboard-accessible panel with stop, start and resume controls plus a daily report.

Features

  • Bar icon lights up while an interval is being tracked.
  • Panel shows the open interval's tags, start time and live elapsed time.
  • Stop exactly the open interval with timew stop.
  • Start tracking with an optional tag name (timew start <tag>), or resume the most recent tags with timew continue.
  • Rename the open interval's tags in place (timew retag).
  • Click a completed interval in the TODAY list to rename its tags inline.
  • Lists completed intervals and total tracked time for the current day, matching timew summary :day (intervals crossing midnight are clipped to the day).
  • Switch the report between today, this week, and this month; week and month group intervals by day with per-day subtotals.
  • Polls local commands only; it makes no network requests.

Requirements

  • Omarchy with the Quattro shell plugin system
  • TimeWarrior with timew available on PATH
  • jq
  • GNU coreutils
  • An Omarchy-compatible Nerd Font for the stopwatch icon

Install TimeWarrior following its installation instructions, then confirm the executable is visible:

command -v timew

Omarchy includes ~/.local/bin on the shell process PATH; a binary elsewhere may not be visible to the bar. Point the widget at a specific executable with the TIMEW_BIN environment variable if needed.

Install

Review the source before installing. Omarchy plugins run as unsandboxed code inside the long-running shell process.

omarchy plugin add https://github.com/micdahl/omarchy-timewarrior.git --enable

The widget uses the right bar section by default. If it was installed without --enable, enable it later:

omarchy plugin enable io.github.micdahl.timewarrior --section right

Use

  • Left-click the widget to open or close the panel.
  • Middle- or right-click the widget to refresh immediately.
  • Press R or Enter in the panel to refresh, and Escape to close.
  • Press S to start or stop tracking, and C to resume the most recent tags.
  • Press / to focus the tag field — name a tag before START, or rename the open interval's tags with RENAME.
  • Click a completed interval in the report to open an inline SAVE/CANCEL rename editor for that interval.
  • Switch the report range with the DAY / WEEK / MONTH chips, or with the D, W, and M keys.
  • Press STOP beside the open interval to stop only that interval; press START or CONTINUE when nothing is tracking.

A bar click never stops time; stopping always requires the explicit panel button.

Data and commands

The bundled timewarrior-status helper runs timew export :day, timew export :week, or timew export :month (based on the selected range) and normalises the JSON for the widget. The only mutating commands are the targeted stop, start, resume and retag actions invoked from explicit panel buttons.

Set TIMEW_BIN to an executable path if timew is not available on the shell process PATH.

Security and permissions

Like all Omarchy shell plugins, this widget runs unsandboxed with the current user's permissions. It requires no elevated privileges, starts no service, does not modify shell configuration, and makes no network requests. It reads TimeWarrior's local data through timew export, and runs timew stop, timew start or timew continue only after the user presses the corresponding panel button.

Update

omarchy plugin update io.github.micdahl.timewarrior

Remove

omarchy plugin remove io.github.micdahl.timewarrior

Removal deletes only the plugin checkout and its bar entry. It does not remove TimeWarrior or any tracking data.

Develop

./tests/status_test.sh
shellcheck timewarrior-status tests/status_test.sh
omarchy plugin validate .
qmllint -I "$OMARCHY_PATH/shell" BarWidget.qml Panel.qml

For local use, link this checkout into the user plugin directory, rescan plugins, and enable it:

ln -s "$PWD" ~/.config/omarchy/plugins/io.github.micdahl.timewarrior
omarchy-shell shell rescanPlugins
omarchy plugin enable io.github.micdahl.timewarrior --section right

Plugin files hot-reload after installation.

License

MIT