Omaport
Omaport is an Omarchy bar widget for seeing what is listening on your machine without leaving the desktop. It presents local TCP listeners and Docker-published ports in a native, theme-aware popup.
Features
- Compact, icon-only Omarchy bar indicator with listener status in its tooltip.
- Search by port, process, command, project directory, or container.
- Open a listener in the browser or copy its local URL.
- Gracefully terminate or force-kill user-owned processes after confirmation.
- Stop Docker containers through Docker rather than killing proxy processes.
- Highlight listeners bound beyond loopback.
- Optional UDP discovery and configurable ignored ports.
Omaport deliberately shows system-owned processes as read-only. Before signaling a process, the helper verifies its owner and Linux process start time so a reused PID cannot target a different process.
Requirements
- Omarchy 4.0 or newer
- Python 3
ssfromiproute2xdg-openandwl-copyfor the open and copy actions- Docker CLI and access to the Docker daemon for optional container discovery
Install
omarchy plugin add https://github.com/sahzudin/omaport.git --enable
For local development, place or link this repository at:
~/.config/omarchy/plugins/io.github.sahzudin.omaport
Then discover and enable it:
omarchy-shell shell rescanPlugins
omarchy plugin enable io.github.sahzudin.omaport --section right
Right-click the bar widget to refresh it manually. Left-click opens the panel.
Remove
omarchy plugin remove io.github.sahzudin.omaport
Removing Omaport deletes its plugin checkout and bar entry. It does not modify other Omarchy configuration or leave a background service running.
Settings
The Omarchy bar settings expose:
refreshIntervalSec: listener refresh interval, from 2 to 120 seconds.includeDocker: include published ports from running Docker containers.includeUdp: include unconnected UDP sockets.ignoredPorts: comma-separated ports or ranges such as53,631,8000-8010.
The default ignore list hides DNS, CUPS, and mDNS ports: 53,631,5353.
Security
Like every Omarchy shell plugin, Omaport runs as unsandboxed code under your
user account. Its helper reads local socket and process metadata using ss and
/proc. It can send SIGTERM or SIGKILL only to processes owned by the
current user, after confirming both the PID owner and process start time.
Docker container discovery and stopping are available only when Docker support
is enabled and the current user already has access to the Docker daemon.
Omaport operates entirely with the current user's existing access. It does not install packages, download or execute remote code, overwrite user configuration, or run a persistent background service.
Development
Run the collector directly:
python3 omaport.py list --ignore-ports 53,631,5353 | python3 -m json.tool
Run the tests and validate the plugin manifest:
python3 -m unittest discover -s tests -v
omarchy plugin validate .
Plugin files hot-reload while installed under ~/.config/omarchy/plugins/.