Omahub
← All plugins
Y

Port Manager

by yuler

Find open TCP ports and close them from the Omarchy bar and overlay.

Security review

No obvious issues detected

Deterministic scan — not a security guarantee

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

This is a legitimate port manager that lists listening ports and can kill processes or stop Docker containers. The code is well-structured, documented, and includes tests. No malicious, obfuscated, or hidden behavior was found.

  • The plugin can terminate processes and stop Docker containers, which is a powerful capability, but all actions require explicit user confirmation and are gated behind a confirmation dialog.
  • The `sh -c` usage in `PortCollector.qml` is safe because the command strings are hardcoded and not user-controlled.
  • The plugin reads `/proc` and runs `ss`, `docker`, `xdg-open`, and `wl-copy`, but only with user interaction.
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/yuler/omaports --enable
Developer Tools #bar #system

Omaports

Find open TCP ports and close them from the Omarchy bar.

Bar panel (drops from the Port Manager mark in the Omarchy bar):

Port Manager bar panel

Centered overlay (same content, larger window; Super+Ctrl+P):

Port Manager overlay

Install

omarchy plugin add https://github.com/yuler/omaports.git --enable

Local checkout (symlink, so edits reload without copying):

make link enable

That replaces a previously copied ~/.config/omarchy/plugins/yuler.omaports with a symlink to this repo. Saved QML/JS reloads in the shell automatically.

omarchy plugin validate refuses a plugin path that is itself a symlink (it walks -type l). make validate therefore checks this checkout, which is a real directory. omarchy plugin add still installs a normal clone.

make test       # Model.js unit tests
make validate   # tests + omarchy plugin validate
make unlink     # remove the symlink only
make restart    # omarchy restart shell

Summon the overlay (larger centered window, same content as the bar panel):

omarchy-shell shell toggle yuler.omaports

Suggested Hyprland binding (~/.config/hypr/bindings.lua):

o.bind("SUPER + CTRL + P", "Port Manager", "omarchy-shell shell toggle yuler.omaports")

Usage

  • Bar: Port Manager mark (RJ45 jack with a slash, theme-colored — not the network ethernet glyph). Left click opens the panel. Right click refreshes.
  • Panel / overlay: icon + Port Manager + port count, then search and the port list. Super+Ctrl+P opens the larger centered overlay; shortcuts are the same as the bar panel.

Kill always asks first. Only the current user's processes are signaled, after checking /proc uid and start time. Docker stop runs only when you already have permission to talk to the daemon. Names live in ~/.local/state/omarchy/omaports/names.json.

Keyboard shortcuts

Search starts focused. Tab switches focus between search and the list (the active pane gets a border). Arrows and j/k move in the list. Single-letter actions apply once the list is focused.

Key Action
Type Filter ports (search focused)
Tab Switch focus between search and list
↑/↓/j/k Move in the list (from search, ↓ enters the list; from the first row, ↑ returns to search)
Enter Open the selected port in a browser (http(s)://localhost:<port>)
y/c Copy the URL
x/K Kill / stop (confirmation; docker stop for published container ports). Lowercase k still moves up; K (Shift+k) kills
r Refresh
Esc Clear search, or close

The footer follows focus. Search shows Tab. The list shows Tab, ↑/↓/j/k move, then r refresh last; only after a row is selected also Enter / y/c / x/K before refresh.

Configure

Bar settings expose kill signal (TERM/KILL), Docker, UDP, ignored ports, HTTPS ports, and refresh interval.

Remove

omarchy plugin remove yuler.omaports

Dependencies

  • ss (iproute2) — required
  • docker — optional, for published container ports
  • xdg-open, wl-copy — optional actions