Omahub
← All plugins
2

LM Studio

by 25cent9

LM Studio server status, model management, and quick actions in the Omarchy bar.

Security review

No obvious issues detected

Deterministic scan — not a security guarantee

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

The plugin is a straightforward LM Studio control widget that invokes the user's `lms` CLI and reads system resource files; all commands are expected and user-initiated. The only external network call is fetching publisher logos from cdn.simpleicons.org, which is benign. No obfuscation, persistence, or destructive behavior was found.

  • Executes arbitrary commands via the configurable `lmsPath` setting, but this is user-controlled and expected for the plugin's purpose.
  • Runs a `bash -c` resource-polling script that reads /proc and nvidia-smi; this is read-only and safe.
  • Fetches remote images from cdn.simpleicons.org when the panel is opened; only the publisher slug is sent, and it is a well-known CDN.
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/25cent9/omarchy-lmstudio-plugin --enable
Widgets #bar #quickshell #ai

LM Studio Plugin for Omarchy

Monitor and control the LM Studio server from the Omarchy Quattro bar: start/stop the server, load/unload models, copy identifiers and the LLM base URL, and watch live GPU/CPU/RAM usage — all in a menu-style panel mirroring the native LM Studio tray card.

LM Studio panel while a model is generating

Features

  • Bar widget: LM Studio server status icon (running/stopped), model count badge, warning state
  • Menu-style panel: Mirrors the native LM Studio hover card
    • Open LM Studio (launches the GUI app)
    • Copy LLM Server Base URL (header button)
    • Load Model (searchable dropdown of on-disk models)
    • Unload All Models
    • Quit LM Studio
    • Start/stop server toggle in the header
  • Loaded models list: Display name, memory, quantization/architecture, params, status badge, per-model unload and copy (name or identifier)
  • Publisher logos: Model cards show the publisher's brand logo from Simple Icons (CC0), like LM Studio's model picker — e.g. Gemma shows the Google logo. Publishers without an icon (or offline) get a deterministic colored initial tile; no request is made until the panel is first opened, and only the publisher slug is sent to cdn.simpleicons.org
  • Live resource monitor: GPU utilization, VRAM, system CPU/RAM, per-process LM Studio CPU/RAM, plus context-window and model-count cells — polled directly from the OS (nvidia-smi, /proc/meminfo, /proc/stat), btop-style two-sample CPU deltas
  • Keyboard navigation: Full cursor-driven navigation across header → models → actions
  • Optimistic UI: Instant feedback when toggling server (like Tailscale plugin)
  • Auto-refresh: Configurable interval with startup ramp
  • Settings: Custom LMS CLI path, refresh interval

Install

omarchy plugin add https://github.com/25cent9/omarchy-lmstudio-plugin.git --enable

Or for local development:

# Plugin is already at ~/.config/omarchy/plugins/io.github.25cent9.lmstudio
omarchy plugin enable io.github.25cent9.lmstudio

Uninstall

omarchy plugin remove io.github.25cent9.lmstudio

This disables the plugin and removes it from ~/.config/omarchy/plugins/io.github.25cent9.lmstudio. No user configuration is modified outside the plugin's own folder.

Usage

Action Method
Open/close panel Click bar icon (left click)
Toggle server Right-click bar icon, S in panel, or the header toggle
Refresh status Middle-click bar icon, or press R in panel
Open LM Studio Open footer button, or press O
Copy base URL Header copy button
Load model Load Model dropdown (searchable, keyboard-friendly)
Navigate ↑/↓ arrows in panel (header → models → actions)
Unload model Select model, press U (or per-model button / Unload All footer)
Copy model name Select model, press C
Copy model identifier Select model, press I
Quit LM Studio Quit footer button, or press Q
Copy menu ↑/↓ or j/k to choose, Enter to copy, Escape to close
Close panel Escape

Requirements

  • LM Studio installed with the lms CLI (default: ~/.lmstudio/bin/lms, or set a custom path in settings)
  • Omarchy with Quattro shell (quickshell)
  • wl-copy (package: wl-clipboard) for the copy actions (base URL, model name/identifier)
  • gtk-launch (package: glib2) for launching the LM Studio GUI app
  • nvidia-smi for GPU/VRAM metrics (falls back to — if absent; system CPU/RAM always work)

Configure

# Move to different bar section
omarchy bar move io.github.25cent9.lmstudio --section right

# Change refresh interval (via plugin settings UI or config)
# Set custom LMS path if not at ~/.lmstudio/bin/lms

Development

# Validate plugin
omarchy plugin validate ~/.config/omarchy/plugins/io.github.25cent9.lmstudio
qmllint -I $OMARCHY_PATH/shell ~/.config/omarchy/plugins/io.github.25cent9.lmstudio/Panel.qml ~/.config/omarchy/plugins/io.github.25cent9.lmstudio/Service.qml

# Test panel
omarchy-shell shell summon io.github.25cent9.lmstudio '{}'
omarchy-shell shell hide io.github.25cent9.lmstudio

# Rescan after changes
omarchy-shell shell rescanPlugins

File Structure

~/.config/omarchy/plugins/io.github.25cent9.lmstudio/
├── manifest.json       # Plugin manifest
├── Model.js            # Pure JS parsing + resource polling script (shared)
├── Service.qml         # Headless service (CLI calls, state, resource polling)
├── Panel.qml           # Bar widget entry point (loads PanelContent.qml)
├── PanelContent.qml    # Panel UI (menu-style actions, models, resource grid)
├── PublisherLogo.qml   # Publisher brand logo / initial-tile fallback
├── LMStudioIcon.qml    # Bar icon component
├── images/             # Screenshots used in this README
├── README.md           # This file
└── LICENSE             # MIT License

Architecture

Follows the Tailscale plugin pattern:

  • Single bar-widget kind with Panel.qml as entry point
  • Service.qml as headless singleton for all CLI communication
  • Model.js for pure parsing logic (testable in isolation)
  • KeyboardPanel with cursor-driven navigation
  • Optimistic toggle state (_desiredServerState) for instant UI feedback

License

MIT License - see LICENSE file.