Omaharness for Omarchy
A Quattro bar widget for Omaharness, the desktop harness that gives coding agents direct access to an Omarchy session.
The widget runs omaharness doctor and turns its report into a compact dashboard: backend readiness, background-safe capture and input capabilities, blockers, and degraded features. It does not install packages or change system configuration.
Requirements
- Omarchy Quattro
omaharnessavailable onPATHxdg-openfor the optional Setup guide button
The widget remains usable before the backend is installed and shows the setup path instead of failing to load.
Install
Install the Python backend first. Matching the system Python minor version matters because PyGObject is a compiled dependency:
uv tool install --python /usr/bin/python3 \
--with 'PyGObject==3.56.3' \
--constraints "https://raw.githubusercontent.com/fabiopauli/omarchy-quattro-harness/2614ba03fe98ef711575f0c830a8eb518804e7d4/constraints.txt" \
--build-constraints "https://raw.githubusercontent.com/fabiopauli/omarchy-quattro-harness/2614ba03fe98ef711575f0c830a8eb518804e7d4/build-constraints.txt" \
--upgrade "git+https://github.com/fabiopauli/omarchy-quattro-harness.git@2614ba03fe98ef711575f0c830a8eb518804e7d4"
omaharness doctor
The backend source, complete runtime dependency graph, and Python build dependency graph all come from the same immutable commit. uv tool install does not read a repository's uv.lock by itself, so both constraint arguments are required. Future plugin releases will advance the commit and its constraints together after testing that exact environment.
Then install and enable the widget:
omarchy plugin add https://github.com/fabiopauli/omarchy-omaharness-plugin.git --enable
The widget is placed in the right bar section by default. Left-click opens the dashboard; middle-click refreshes it. In the panel, press R to refresh, G to open the backend setup guide, or Esc to close it.
The same status is available to scripts and agents, including whether the installed backend version and source commit match this plugin release:
omarchy-shell io.github.fabiopauli.omaharness status
Update
omarchy plugin update io.github.fabiopauli.omaharness --yes
# The backend is installed separately. Re-run the pinned install command above
# when the panel reports "Backend update required".
Remove
Remove the widget and its Omarchy configuration entry:
omarchy plugin remove io.github.fabiopauli.omaharness --yes
This does not remove the separately installed backend. If you no longer use Omaharness:
uv tool uninstall omaharness
Security and privacy
Omarchy plugins run unsandboxed. This plugin executes /usr/bin/env omaharness doctor when loaded, when its panel opens, and when refresh is requested. That diagnostic reads local compositor, dependency, input, and capability state; it does not install software or perform desktop actions. The panel streams output under a combined 128 Ki-character ceiling, stops the diagnostic after 15 seconds, escalates to SIGKILL if normal termination stalls, and renders all diagnostic values as plain text. Rendered diagnostic lists are limited to 25 entries of 512 characters each, and an error is limited to 2,048 characters. The backend independently caps every child command's combined output at 1 MiB and terminates its process group when the time or output limit is reached. Its documented installation constrains both runtime and Python build dependencies to files from the pinned backend commit. The plugin makes no network requests. Opening the setup guide is the only action that launches another application.
Review Panel.qml to see the complete process surface.
Development
Validate the repository against the same manifest contract used by Omarchy:
omarchy plugin validate .
python -m unittest discover -s tests -v
For a live development copy, add this repository through omarchy plugin add, edit the installed checkout under ~/.config/omarchy/plugins/io.github.fabiopauli.omaharness, and let the shell's file watcher reload it.