Omahub
← All plugins
P

OmaLive

by Prudhvi Yalamanchili

Live Activities for long-running commands, scripts, apps, and plugins on Omarchy.

Security review

No obvious issues detected

Deterministic scan — not a security guarantee

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

OmaLive is a well-structured plugin that provides live activity tracking for the Omarchy bar. The code is transparent, performs no network calls, and does not execute arbitrary payloads. The optional Zsh hook is opt-in and clearly documented, with no hidden persistence or destructive operations.

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/prudhviy99/omalive --enable
System #bar #quickshell #system

OmaLive

Live Activities for long-running commands, scripts, apps, and plugins on Omarchy.

OmaLive Preview

OmaLive gives long-running work one native, temporary lifecycle in the Omarchy bar and panel: start → appear in bar → update → inspect in panel → finish → brief result → disappear.

When nothing is running, OmaLive consumes zero width in your bar.

What OmaLive does

Long-running terminal tasks (tests, builds, ffmpeg conversions, backups, AI agents) are often scattered across workspaces and tabs. OmaLive provides a unified, event-driven protocol so any process can report its state directly into the Omarchy bar without adding permanent clutter.

Installation

Install using the Omarchy plugin CLI:

omarchy plugin add https://github.com/prudhviy99/omalive.git --enable --yes

Quick Demo (about 20 seconds)

Run the interactive demo script:

~/.config/omarchy/plugins/io.github.prudhviy99.omalive/bin/omalive demo

Command Wrapper (omalive run)

Wrap any command to automatically track its execution, exit status, and completion:

~/.config/omarchy/plugins/io.github.prudhviy99.omalive/bin/omalive \
  run --title "Running test suite" -- pytest -q

After the optional PATH setup below, the shorter omalive run ... form works anywhere.

Shell Integration API (Raw IPC)

You can publish and control activities directly from any shell script or tool using Omarchy shell IPC:

# Start an activity
omarchy-shell omalive upsert '{"id":"build","title":"Compiling project","progress":0.1,"source":"cargo"}'

# Update progress
omarchy-shell omalive upsert '{"id":"build","progress":0.75,"detail":"750/1000 crates"}'

# Complete activity
omarchy-shell omalive finish build success

Use a stable ID for the lifetime of one job. Reusing that ID patches the existing activity, and every update refreshes its TTL. Producers should call finish on completion or remove when abandoning an activity without a result; TTL expiry is only a crash-recovery fallback.

CLI Reference

omalive start --id ID --title TEXT [options]
omalive update --id ID [options]
omalive finish --id ID [--status RESULT]
omalive remove --id ID
omalive status
omalive clear-history
omalive run --title TEXT [--id ID] [--source TEXT] -- COMMAND [ARG...]
omalive demo
omalive help

start and update accept --detail, --progress 0..100, --indeterminate, --status active|paused, --source, --icon, --ttl 5..86400, and --quiet. finish accepts success, error, warning, or cancelled and defaults to success. Run omalive help for the complete usage text.

Optional PATH Setup

To use omalive anywhere in your terminal without specifying the full plugin path:

mkdir -p "$HOME/.local/bin"
ln -s "$HOME/.config/omarchy/plugins/io.github.prudhviy99.omalive/bin/omalive" "$HOME/.local/bin/omalive"

If the link already exists, verify where it points before replacing it.

Automatic Zsh Command Tracking (Optional)

Zsh users can automatically surface commands that run longer than four seconds. This integration is disabled until explicitly sourced:

source "$HOME/.config/omarchy/plugins/io.github.prudhviy99.omalive/shell/omalive.zsh"

Set an integer threshold before sourcing to customize the delay:

export OMALIVE_THRESHOLD_SECONDS=8
source "$HOME/.config/omarchy/plugins/io.github.prudhviy99.omalive/shell/omalive.zsh"

The hook never changes how a command runs or writes command text to disk. It shows a truncated command line in the bar, so leave it disabled if command text may contain secrets.

Architecture & Resource Behavior

  • Service singleton (Service.qml): Single state manager running within omarchy-shell, hosting the omalive IPC target.
  • Bar widget (BarWidget.qml): Zero-width when idle; displays primary active task or recent completion transient.
  • Nested panel (Panel.qml): Interactive popup listing all active tasks and recent history with keyboard navigation (Esc, Tab).
  • Memory & Limits: Bounded to 32 active items and 20 recent items; payloads capped at 4KB. State is in-memory and resets cleanly with the shell.

Dependencies

  • bash (4.0+)
  • jq
  • omarchy-shell / quickshell
  • GNU coreutils (date, dirname, and related basics)

Security and Privacy

  • Omarchy plugins run unsandboxed with the user's permissions.
  • OmaLive performs no network calls, uses no background daemons or systemd services, and requests no elevated privileges.
  • It never executes activity payloads or shell commands received via IPC.
  • IPC-provided labels are rendered as plain display text; markup and resource references are not interpreted.
  • omalive run executes only the explicit command arguments passed after --.
  • State is strictly session-local in memory.

Limitations

  • Activities do not persist across shell restarts.
  • OmaLive is event-driven; it does not scrape or poll un-wrapped background processes.
  • Automatic tracking is currently available for Zsh; other shells can use omalive run or raw IPC.

Troubleshooting

Check the status of the OmaLive service:

omarchy-shell omalive ping
omarchy-shell omalive status | jq

View shell logs:

qs log -p "$OMARCHY_PATH/shell" --tail 100

Management

# Update
omarchy plugin update io.github.prudhviy99.omalive --yes

# Disable
omarchy plugin disable io.github.prudhviy99.omalive

# Remove
omarchy plugin remove io.github.prudhviy99.omalive --yes

Development Checks

From the repository root:

omarchy plugin validate .
qmllint -I "$OMARCHY_PATH/shell" Service.qml BarWidget.qml Panel.qml
QT_QPA_PLATFORM=minimal QT_QPA_PLATFORMTHEME= \
  /usr/lib/qt6/bin/qmltestrunner -input tests/tst_activity_model.qml
tests/test_service.sh
tests/test_cli.sh
tests/test_zsh_hook.sh

License

MIT © 2026 Prudhvi Yalamanchili