Omahub
← All plugins
M

Git Pulse

by markbus-ai

Branch and dirty counts of the focused terminal's git repository

Security review

No obvious issues detected

Deterministic scan — not a security guarantee

None
Risk level
None
Analyzed commit
ffeffd0
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

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

The plugin is a straightforward bar widget that reads git status and the focused terminal's working directory, with no obfuscation, persistence, or destructive actions. The only notable behavior is that it reads /proc and runs git commands on the user's repositories, which is expected for its function. The deterministic scan found no issues, and my review agrees, though I note the scripts are invoked with user-controlled paths, which is a minor consideration.

  • The plugin executes git commands in the focused terminal's working directory, which could be a repository the user did not intend to expose, but this is inherent to the widget's purpose.
  • The terminal-cwd.sh script reads /proc and uses hyprctl to resolve the active window, which is standard for such widgets but does involve system introspection.
  • The shellQuote function in GitPulse.qml is used to safely quote values passed to bar.run, mitigating injection risks; no unsafe shell usage was found.
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/markbus-ai/git-pulse --enable
Widgets #bar #quickshell #system

Git Pulse

A bar widget for Omarchy that shows the git state of the focused terminal's working directory: the branch plus staged, modified, untracked and conflict counts. It appears in the bar only while the focused window is inside a git repository, and hides again outside one.

Git Pulse preview

What you see

  • Pill — the branch name and count chips for dirty files. Click it to open the popup.
  • Popup — the repository path, the count chips, a scrollable git status --short list, and actions: open lazygit, copy the branch name, open a terminal in the repository, and open the repository on GitHub.

The widget tracks focus churn cheaply: each toplevel's state is cached for a few seconds, so switching between windows never re-runs the git pipeline for one measured within the cache window. While the popup is open or the pill is hovered, the pill stays on its last repository instead of flickering away.

Install

omarchy plugin add https://github.com/markbus-ai/git-pulse --enable

The widget joins the bar's default layout at the next shell reload (omarchy-restart-shell). Remove it with:

omarchy plugin remove markbusai.git-pulse

Requirements

  • Omarchy with a bar (Quickshell)
  • git in the runtime PATH
  • hyprctl (Hyprland) to resolve the focused terminal's working directory
  • Optional: lazygit for the "Open lazygit" action
  • Optional: wl-clipboard for the "Copy branch" action

The widget ships its own omarchy-git-status and omarchy-cmd-terminal-cwd equivalents under scripts/; it does not depend on any Omarchy core command beyond the bar itself.

Settings

Settings live in the widget's entry in ~/.config/omarchy/shell.json. Set them with omarchy bar set markbusai.git-pulse <key> <value>:

Key Default Description
showUntracked false Append ?N for untracked files to the label.
showAheadBehind false Append up/down arrows for commits ahead/behind upstream.
ttl 10000 Cache time-to-live in milliseconds for a measured toplevel.
maxWidth 160 Upper bound for the pill label width before it elides.

How it works

The focused window's process tree is walked to find a terminal shell (or a tmux client, when the terminal runs tmux) and its working directory is read from /proc. A small git status --porcelain=v1 -b query produces the stable four-line state the widget parses:

<repo top-level>
<branch or "detached <sha>">
ahead <n> behind <m>
staged <n> modified <n> untracked <n> conflict <n>

License

MIT — see LICENSE.