omarchy-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OMARCHY_MCP_ENABLE_DANGEROUS | No | Set to '1' to enable destructive operations (shutdown, reboot, package installation, system updates, configuration refreshes). Defaults to 'false' if not set. Alternatively, create ~/.config/omarchy-mcp/config.json with {"enableDangerous": true}. | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| theme_listA | List all available Omarchy themes. |
| theme_currentA | Show the name of the currently applied Omarchy theme. |
| theme_setA | Apply a theme from theme_list and verify the current theme afterwards. |
| theme_bg_nextA | Switch to the next background for the current theme and report the resulting path. |
| font_listA | List monospace fonts available for the terminal/UI in Omarchy. |
| font_setA | Change Omarchy's font using a value from font_list, then verify font_current. |
| background_current_detailsA | Report the current background's canonical local path, source, MIME, dimensions and size. Read-only. |
| theme_directory_lookupB | Resolve and verify a local installed theme directory. Slugs only; no URLs, installation, or downloads. |
| background_set_localA | Set one strictly validated absolute local image as the background and confirm the Omarchy state symlink. Never downloads or copies files. |
| background_thumbnail_cache_statusA | Verify the current theme's local background thumbnail rows, source signature and generated files. Read-only. |
| background_thumbnail_cache_buildA | Build current-theme thumbnails locally through Omarchy and verify its signature, rows and output files afterwards. |
| omarchy_defaultsA | Read the current browser, editor, terminal, and coding-agent defaults plus locally available supported choices. No selectors or applications are launched. |
| omarchy_default_setA | Set a locally available browser, editor, terminal, or coding-agent default with before/after verification. Agent state is updated without invoking Omarchy's install-and-launch setter. Supports dry-run. |
| display_text_sizeA | Read, preview, set, or reset Omarchy's coordinated shell/GTK/terminal text size. Set/reset supports dry-run and verifies every queryable post-state. |
| launch_appA | Launch a supported desktop app via Omarchy. A URL is accepted only for browser. |
| capture_screenshotC | Take a screenshot. region/windows require an interactive selection. save returns and verifies a PNG path; copy writes only to the clipboard. |
| reminder_setA | Set a notification reminder after N minutes and verify it appears in the reminder store. |
| reminder_showA | List pending desktop reminders as structured JSON. |
| reminder_clearA | Clear all pending reminders and verify the store is empty. |
| audio_volumeA | Raise, lower or toggle mute and report the PipeWire sink state before and after. |
| mic_mute_toggleA | Toggle microphone mute and report the PipeWire source state before and after. |
| brightness_displayB | Read or adjust brightness on the focused display and report the measured value afterwards. |
| toggle_featureA | Toggle or explicitly enable/disable nightlight, screensaver availability, or suspend availability. Handles Omarchy 4's specialized toggle routes and verifies final state. |
| system_infoB | Print Omarchy debug/system information using safe non-sudo flags. |
| hypr_statusB | Get current Hyprland workspaces and the focused window. |
| screenrecording_statusA | Report whether gpu-screen-recorder is active and measure the current output file. Read-only. |
| screenrecording_startA | Start a non-interactive full-screen recording and verify the recorder process. Never opens a region picker. |
| screenrecording_stopA | Stop the active recording gracefully and verify that the recorder exited and its MP4 exists. |
| webcam_overlay_resizeA | Resize the active screen-recording webcam overlay and report its geometry before and after. |
| capture_region_clipboardA | Launch Omarchy's interactive region selector without blocking the MCP request. OCR text or the sensitive QR value is copied locally to the clipboard and is not returned to the model. |
| media_transcodeA | Deterministically transcode one absolute local media path using Omarchy. Refuses output overwrite and interactive menus. |
| image_to_asciiB | Convert an absolute local PNG or SVG to a new .txt file. Paths and numeric arguments are bounded; existing outputs are never overwritten. |
| self_window_infoA | Resolve and report the terminal window this agent is running in, by walking PID ancestry — like Windows' 'which window am I'. This locks our identity for tools that move/resize us. |
| self_window_snapA | Float + pin + resize + position OUR OWN host window (found via PID lock) to a corner of a monitor, then verify the result. corner: tl=tr/bl=br or center. No focus stealing; targets by address. |
| window_snapA | Float + pin + resize + position ANY window to a corner of the focused monitor, then verify on-screen. Target by exact address or by class/title substring match (e.g. match="chrome"). Defaults to the SUPER+O standard size 1300x900. Example: "open chrome bottom right" = launch_app(browser) then window_snap(match="chrome", corner="br"). |
| layout_modeA | Switch the active workspace between layout modes of the native Lua grid: "grid" (deterministic row-major cells) or "master" (first window = full-height left column, rest stacked right). Returns the layout's own confirmation. |
| layout_gridA | Force an explicit C x R cell grid on the active workspace (e.g. 4x4). Omit both to return to aspect-aware auto sizing. |
| layout_orderA | Debug view: the placement order (and titles) of tiled windows on the active workspace. Position 1 becomes the master slot in master mode; position 1 is top-left in grid mode. |
| layout_tomasterA | In master mode, move the Nth window (see layout_order) into the full-height left column; the remaining windows stack in the right column. |
| layout_swap_windowsC | Exchange the grid/master placement order of two windows by their positions in layout_order (1-based). Verified with fresh geometry afterwards. |
| desktop_statusA | Read-only snapshot of the desktop: monitors, workspaces and the currently focused window. Call this before/after window operations to see actual state. |
| window_listA | List all mapped windows with class, title, pid, workspace and geometry. Use to identify targets before acting. |
| window_focusA | Move focus to the neighboring window in a direction. |
| window_typeA | One-shot text input to ANY window: resolve target (match/address), focus it with measured verification, then type via wtype. Defaults to the currently focused window if no target given. submit=true presses Return afterwards. Example: window_type(match="opencode", text="hi", submit=true) — talk to another agent. |
| window_keysA | One-shot keyboard shortcuts to ANY window: resolve + verify-focus target, then inject keys via wtype. Each step is a keysym with optional modifiers joined by "+": "Return", "Escape", "Tab", "ctrl+p", "alt+shift+e". For menus and TUI navigation (e.g. ctrl+p in opencode). |
| window_swapC | Swap a tiled window with its neighbor using a locked address target, then verify geometry changed. |
| window_resizeA | Resize by pixel deltas, e.g. x=100 grows right side, x=-100 shrinks. relative=true is implied. Optionally pass address/match to resize an explicit window instead of the focused one (safer with follow_mouse=1). |
| window_float_toggleB | Toggle a window between floating and tiling. Defaults to the focused window; pass address/match for an explicit target. |
| window_fullscreenA | Toggle fullscreen (real) or maximized (fake). Defaults to the focused window; pass address/match for an explicit target. |
| window_closeA | Close a window by explicit address/match, or the currently focused window if omitted. REFUSES to close this agent's own host terminal either way. Check window_list/desktop_status to pick a target first. |
| window_to_workspaceA | Move a window to another workspace, optionally following focus. Defaults to the focused window; pass address/match for an explicit target. |
| workspace_layoutA | Switch a workspace between the MCP grid, Hyprland dwindle, master, or scrolling tiling engine and verify tiledLayout. Use dwindle before layout_preselect/open_window_split; use omarchy-grid for deterministic grids. |
| layout_preselectA | Choose which side of the focused tile the NEXT opened window will occupy. Chain with open_window for split layouts, e.g. preselect 'r' then open a terminal to get a right-hand split. |
| layout_togglesplitA | Flip the split orientation of the active workspace (horizontal <-> vertical). |
| open_window_splitA | Preselect a split direction and launch a command, then VERIFY on-screen that the new window actually tiled into that split. Returns the landed window's geometry and a verdict with correction hints. Example: direction='d', app='terminal' opens a terminal below the focused one. |
| hypr_dispatchA | Run any Hyprland dispatcher via the Omarchy Lua API. Expression must start with 'hl.' and only use the safe allow-listed charset, e.g. "dsp.focus({ monitor = '+1' })". For power users / creative layouts. |
| agent_gridA | ONE-CALL agent workspace orchestration. For 'open a 2x2 OpenCode grid', pass agent=opencode, cols=2, rows=2 (count defaults to all cells). For mixed layouts, pass placements such as Claude position=top_right and Codex position=bottom_right. Launches independent Omarchy TUI windows, assigns sparse/exact cells in lua:omarchy-grid, and verifies each final class/workspace/geometry. Defaults to the next empty workspace so an existing task is not displaced. |
| wifi_statusA | Report Wi-Fi radio state and active Wi-Fi connection names. Read-only. |
| wifi_toggleA | Turn Wi-Fi on or off and verify the radio state afterwards. Turning it off may disconnect the MCP client. |
| wifi_listA | Scan visible networks, de-duplicate SSIDs, and show strongest signal/security. Read-only. |
| wifi_connectA | Activate a saved NetworkManager Wi-Fi connection by its connection name and verify it becomes active. Does not accept or create passwords. |
| bluetooth_statusA | Report whether the default Bluetooth adapter is powered. Read-only. |
| bluetooth_toggleB | Use Omarchy's persistent rfkill-aware Bluetooth power command and verify the adapter state. |
| bluetooth_devicesB | List known Bluetooth devices. Read-only. |
| bluetooth_connectA | Connect to or disconnect a known device by MAC address using Omarchy's wrapper, then verify BlueZ state. |
| powerprofiles_listA | List profiles and mark the active one. Read-only. |
| powerprofiles_setB | Set and remember a profile for the detected, AC, or battery power source; verify the active profile afterwards. |
| battery_statusA | Return Omarchy's formatted battery status. An empty result means no battery is installed. |
| system_powerA | Lock is always available. Reboot and shutdown require enableDangerous because they terminate the desktop session. |
| pkg_addC | Install packages through Omarchy, then verify that all are present. Requires enableDangerous. |
| pkg_add_aurA | Install AUR packages through Omarchy, then verify that all are present. Requires enableDangerous. |
| update_systemB | Run the full Omarchy update workflow. It can take many minutes and requires enableDangerous. |
| refresh_configB | Reset one known Omarchy configuration target to packaged defaults. Omarchy creates its normal backup. Requires enableDangerous. |
| health_checkA | Diagnose local dependencies, Omarchy/Hyprland runtime access, custom grid-layout installation, and the destructive-tool gate. Use this first when tools are failing. |
| omarchy_commandsA | Search the machine-readable command catalog from the installed Omarchy version. Useful for discovering the correct current route and arguments before adding or troubleshooting a wrapper. |
| omarchy_version_infoA | Read the installed Omarchy version, active channel, configured mirror/package channel, and timestamp of the last package upgrade. Fully local; does not check remote updates. |
| system_resource_statsA | Read Omarchy CPU/memory statistics plus local load averages and uptime. Read-only and offline. |
| monitor_panel_stateA | Read Omarchy's monitor panel protocol as structured JSON: brightness, internal/external/focused displays, mirroring, scaling, and enabled monitor geometry. |
| omarchy_toggle_statusA | Read normalized enabled/disabled state for an allow-listed Omarchy feature without changing it. Idle enabled means normal idle behavior is allowed. |
| audio_sink_availabilityA | List local PulseAudio/PipeWire sinks and whether their ports are available, respecting Omarchy speaker-tuning exclusions. Read-only. |
| hardware_readinessA | Read battery/power, external-monitor, backlight, hybrid-GPU, and hibernation readiness using only local Omarchy predicates and kernel state. |
| audio_devicesA | List PipeWire/PulseAudio output sinks and real input sources with stable node IDs, availability, active ports, mute state, and current defaults. Read-only. |
| audio_device_set_defaultA | Select an exactly enumerated local output sink or input source, move active streams through Omarchy, verify the default, and roll back on mismatch. Supports dry-run. |
| audio_output_switchB | Cycle to Omarchy's next available output while preserving mute state, then report the measured default before and after. Supports dry-run. |
| media_source_switchA | Cycle the active local MPRIS media source forward/backward, optionally transferring playback, with before/after shell status evidence. Supports dry-run. |
| speaker_tuning_statusA | Read Omarchy speaker-tuning installation, service, virtual-sink, default-sink, and hardware-match state. Read-only. |
| keyboard_backlightA | Read or adjust a detected keyboard-backlight LED using Omarchy's bounded actions. Mutations are measured and rolled back if the expected level is not observed. Supports dry-run. |
| input_device_controlA | Read or explicitly enable/disable the locally detected touchpad or touchscreen using Omarchy's persistent Hyprland state, with verification and rollback. Supports dry-run. |
| local_utility_openB | Open About or Files using local installed commands, or focus an exact existing class. An optional Files directory is validated and always opens a new window. |
| local_config_openB | Open one existing readable local file through Omarchy's configured editor. No URLs, shell commands, file creation, or installer fallbacks. |
| local_tui_launchC | Launch a supported local TUI in Omarchy's terminal with an argv array and exact app ID, or focus an existing matching window. No shell strings or URLs. |
| notification_sendA | Send a local desktop notification and return the daemon-assigned ID. Click commands, remote images, and arbitrary notify-send options are intentionally unsupported. |
| notification_dismissA | Dismiss visible notifications whose headline contains the supplied substring. |
| notification_timeA | Show Omarchy's local current time and date notification. Does not use weather or network services. |
| notification_dnd_statusA | Read the Omarchy shell notification-silencing state without changing it. |
| notification_dnd_setB | Set Omarchy notification silencing explicitly and verify the resulting state. |
| osd_showC | Display a local Omarchy on-screen message or 0-100 progress value and verify that the OSD opened. |
| bar_stateA | Read visibility, position, transparency, active bar, and widget layout without changing anything. |
| bar_visibility_setA | Explicitly show or hide the bar, then verify the on-disk visibility flag. |
| bar_position_setB | Move the bar to an exact screen edge and verify shell.json afterwards. |
| bar_transparency_setA | Set bar transparency explicitly (never toggle blindly), then verify shell.json. |
| bar_widget_moveB | Move an existing widget to an exact bar section/index and verify its final location. |
| plugin_listA | List locally discovered plugins and their state. This performs no install, update, or network access. |
| plugin_validateA | Validate a local plugin folder against Omarchy's manifest schema. Symlink roots are rejected; nothing is installed or downloaded. |
| plugin_local_detailA | Inspect one already-discovered local plugin, its sanitized manifest, runtime state, and bar location. No URLs or network access are used. |
| plugin_local_enableA | Enable an already-discovered plugin. Bar widgets require an exact section/index; bar replacements are refused. Defaults to dry-run. |
| plugin_local_disableC | Disable a reversible local plugin and verify catalog/bar state. Critical first-party services and active bars are refused. Defaults to dry-run. |
| plugin_local_cloneA | Clone a stock non-service UI plugin from packaged files into the user's plugin directory, refusing collisions and verifying discovery/activation. Defaults to dry-run. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/hlsitechio/Omarchy-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server