omarchy-mcp
omarchy-mcp

Дайте любому MCP-совместимому LLM полный контроль над Linux-десктопом Omarchy.
omarchy-mcp превращает ИИ-агентов для кодинга в настоящих операторов рабочего стола. Через один MCP-сервер агент может управлять темами и внешним видом, запускать приложения, делать скриншоты и записи, управлять аудио и сетью, читать состояние системы, управлять окнами Hyprland и тайловыми раскладками, а также оркестрировать целые мультиагентные рабочие пространства — 108 инструментов в 15 модулях.
Проект построен на одном правиле: изменение рабочего стола не считается успешным только потому, что команда выполнилась. Каждое действие подтверждается измеренным состоянием рабочего стола — геометрией, фокусом, статусом служб, — чтобы агенты могли действовать автономно без тихих сбоев.
Статус
Текущее состояние | |
MCP-инструменты | 108 зарегистрированных инструментов в 15 модулях |
Транспорт | Локальный stdio MCP-сервер |
Среда выполнения | Node.js 20+ и TypeScript |
Рабочий стол | Omarchy с мостом конфигурации Hyprland Lua |
Тайлинг | Нативная раскладка |
Безопасность | Деструктивные инструменты отключены по умолчанию; самозащита окна хоста |
Проверка | Модульные тесты, MCP-смоук-тест и журнал доказательств на живом рабочем столе |
См. COMMANDS.md для статуса проверки по каждому инструменту и ROADMAP.md для запланированных этапов.
Related MCP server: linux-computer-use
Зачем это существует
Инструменты управления рабочим столом часто сообщают, что действие было отправлено, не проверяя, сработало ли оно. Это особенно ненадёжно для тайловых оконных менеджеров, где фокус, плавающие правила, полноэкранный режим, правила рабочих пространств и мышь могут изменить цель.
Этот сервер добавляет недостающую петлю обратной связи:
Мутации окон сообщают измеренное состояние до/после и чёткий вердикт.
Явные селекторы адресов и совпадений уменьшают ошибки, связанные с фокусом.
Защита по предкам PID предотвращает закрытие агентом собственного окна хоста.
Деструктивные системные операции требуют явного согласия в конфигурации.
health_checkдиагностирует отсутствующие команды, установку раскладки и подключение к рабочему столу.agent_gridпревращает целый запрос мультиагентного рабочего пространства в одну проверенную MCP-операцию.
Быстрый старт
Требования
Установленный рабочий стол Omarchy
Hyprland с мостом конфигурации Lua от Omarchy
Node.js 20 или новее
npm
Отдельные функции также могут использовать wtype, nmcli, bluetoothctl, wpctl, grim и wl-copy. health_check сообщает, какие дополнительные команды доступны.
Сборка
git clone https://github.com/hlsitechio/Omarchy-MCP.git
cd Omarchy-MCP
npm ci
npm run build
npm testТочка входа MCP:
node /absolute/path/to/Omarchy-MCP/build/index.jsУстановка нативной сеточной раскладки
Обычные инструменты рабочего стола могут работать без пользовательской раскладки, но детерминированный тайлинг сетка/мастер и agent_grid требуют её.
install -Dm644 hypr/layouts.lua ~/.config/hypr/layouts.luaУбедитесь, что пользовательская конфигурация Hyprland загружает её:
require("hypr.layouts")Затем перезагрузите и проверьте конфигурацию:
hyprctl reload
hyprctl configerrorsПакетные файлы Omarchy в /usr/share/omarchy должны оставаться нетронутыми; раскладка принадлежит пользовательской конфигурации в ~/.config/hypr.
Подключение MCP-клиента
Любой клиент, поддерживающий локальные stdio MCP-серверы, может запустить build/index.js.
OpenCode
Добавьте это в ~/.config/opencode/opencode.json, заменив путь на абсолютный путь к репозиторию:
{
"mcp": {
"omarchy": {
"type": "local",
"command": [
"node",
"/absolute/path/to/Omarchy-MCP/build/index.js"
],
"enabled": true
}
}
}Claude Desktop
{
"mcpServers": {
"omarchy": {
"command": "node",
"args": ["/absolute/path/to/Omarchy-MCP/build/index.js"]
}
}
}Перезапустите или переподключите существующий MCP-клиент после пересборки, чтобы он перезагрузил схему инструментов.
Первые промпты для проб
«Проверь, здоров ли мой Omarchy MCP.»
«Покажи каждое окно с его рабочим пространством и геометрией.»
«Открой сетку 2x2 OpenCode на следующем пустом рабочем пространстве.»
«Помести Claude в правый верхний угол, а Codex в правый нижний.»
«Перемести Firefox на рабочее пространство 4 и подтверди, где он оказался.»
«Прикрепи это окно к верхнему левому углу и скажи его конечный размер.»
«Перечисли ближайшие Wi-Fi сети, но ничего не подключай.»
Однокомандные рабочие пространства для агентов кодинга
agent_grid запускает независимые TUI-окна Omarchy, применяет нативную сеточную раскладку, назначает точные или разреженные ячейки и проверяет класс приложения, рабочее пространство, плавающее состояние и наблюдаемую геометрию каждого окна.
Для четырёх приложений запросите сетку 2x2. Буквальная сетка 4x4 содержит 16 ячеек и запускает 16 приложений при полном заполнении.
Однородная сетка
Промпт:
Открой сетку 2x2 OpenCode в этом репозитории.
Эквивалентные аргументы:
{
"agent": "opencode",
"cols": 2,
"rows": 2,
"workspace": "next_empty",
"cwd": "/path/to/project"
}Смешанная разреженная сетка
Промпт:
Открой Claude в правом верхнем углу и Codex в правом нижнем.
Эквивалентные аргументы:
{
"cols": 2,
"rows": 2,
"placements": [
{ "agent": "claude", "position": "top_right" },
{ "agent": "codex", "position": "bottom_right" }
]
}Поддерживаемые агенты: OpenCode, Claude, Codex, Gemini, Copilot, Crush, Grok, Oh My Pi (omp) и Pi. Используйте dry_run: true, чтобы проверить полный план без открытия окон.
Именованные назначения углов и явные назначения строк/столбцов сохраняются при смене пользователем рабочих пространств. Существующие тайловые окна учитываются перед запуском, и запрос отклоняется, если он превышает ёмкость сетки.
Группы инструментов
Домен | Инструменты | Примеры |
Управление окнами и раскладкой | 24 | focus, type, keys, snap, resize, close, workspaces, grid/master |
Основы рабочего стола | 11 | launch, screenshots, reminders, audio, brightness, system status |
Оболочка и локальный UI | 13 | notifications, DND, OSD, bar state/configuration, plugin inspection |
Локальный жизненный цикл плагинов | 4 | bounded detail, enable, disable, and packaged local clone workflows |
Устройства и аудиоуправление | 7 | audio inventory/defaults, media source, keyboard and input devices |
Локальные лаунчеры | 3 | Files/About, validated config files, and allow-listed terminal tools |
Сеть и питание | 11 | Wi-Fi, Bluetooth, battery, power profiles |
Тема и внешний вид | 11 | themes, local backgrounds, thumbnail cache, fonts |
Захват и локальные медиа | 7 | recording, OCR/QR selectors, transcoding, ASCII conversion |
Локальное состояние системы | 6 | versions, resources, monitor state, toggles, hardware readiness |
Ограниченные системные операции | 5 | shutdown, packages, update, configuration refresh |
Настройки по умолчанию и отображение | 3 | application defaults and coordinated text sizing |
Здоровье и обнаружение | 2 | readiness diagnostics, installed command search |
Оркестрация агентов кодинга | 1 | homogeneous and mixed agent grids |
Полный список и статус его живого тестирования поддерживаются в COMMANDS.md.
Модель безопасности
Никакой интерполяции в оболочке
Команды выполняются с массивами аргументов через execFile или spawn Node.js; пользовательский ввод не конкатенируется в команды оболочки.
Деструктивные операции — по согласию
Завершение работы, перезагрузка, установка пакетов, системные обновления и обновления конфигурации отключены по умолчанию. Включите их с помощью:
mkdir -p ~/.config/omarchy-mcp
printf '%s\n' '{"enableDangerous": true}' > ~/.config/omarchy-mcp/config.jsonИли установите переопределение на уровне процесса:
OMARCHY_MCP_ENABLE_DANGEROUS=1 node build/index.jsИспользуйте этот параметр только для клиента и сеанса, которым вы доверяете.
Защита окна хоста
Операции закрытия окон и другие высокорисковые операции определяют предков PID процесса MCP-хоста и отказываются нацеливаться на его собственное окно терминала. Для мутаций предпочтительны явные адреса окон, потому что фокус Hyprland может следовать за мышью.
Проверенные результаты
Инструменты мутации окон возвращают такие статусы, как confirmed, split_confirmed, opened_but_not_split или not_detected, вместе с измеренным состоянием и, где уместно, подсказкой по восстановлению.
Архитектура
MCP client
│ JSON-RPC over stdio
▼
MCP tool + Zod input validation
│
├── Omarchy CLI ───────────── themes, capture, power, applications
├── Hyprland Lua dispatcher ─ windows, workspaces, native layout
└── System CLIs ───────────── nmcli, bluetoothctl, wpctl, upower
│
▼
State reread + geometry/verdict engine
│
▼
Structured MCP result with STATUS, evidence, and HINTСтруктура исходников:
src/index.ts server and tool registration
src/exec.ts shell-free process execution
src/hypr.ts desktop introspection and verification helpers
src/result.ts consistent MCP success/error results
src/config.ts safety configuration
src/tools/ tool domains
hypr/layouts.lua native deterministic grid/master layout
test/ automated and manual live testsДиспетчерские операции окон Hyprland используют Lua API Omarchy, например:
hl.dsp.window.resize({ window = "address:0x...", x = 900, y = 700, relative = false })Нативная раскладка поддерживает режимы grid и master, а также сообщения времени выполнения для принудительных размеров, упорядочивания, обменов, разреженных ячеек и состояния на рабочее пространство.
Разработка и проверка
npm run build # TypeScript compilation
npm test # compilation + deterministic planner tests
npm run smoke # live local MCP/Omarchy smoke testСмоук-тест намеренно учитывает рабочий стол. Он проверяет регистрацию инструментов, отчёт о здоровье, доступ к Omarchy/Hyprland только для чтения, шлюз деструктивных операций и сухой прогон agent_grid. Визуальные мутации проверяются вручную на реальном сеансе Omarchy и записываются в COMMANDS.md.
Для живого упражнения с агентской сеткой:
node test/live-agent-grid.mjsЭта команда открывает реальные окна и меняет активное рабочее пространство; она не является частью npm test.
Устранение неполадок
Новый инструмент не появляется
Запустите npm run build, затем перезапустите или переподключите MCP-клиент. MCP-клиенты обычно кэшируют список инструментов на время жизни процесса сервера.
health_check сообщает, что сеточная раскладка установлена не полностью
Убедитесь, что ~/.config/hypr/layouts.lua существует, что пользовательская конфигурация Hyprland содержит require("hypr.layouts") и что hyprctl configerrors пуст.
Команда окна выбрала неверную цель
Вызовите window_list, затем повторите попытку с возвращённым адресом вместо того, чтобы полагаться на сфокусированное окно. Это позволяет избежать изменений фокуса input:follow_mouse.
Опасный инструмент сообщает, что он отключён
Это безопасное значение по умолчанию. Включите его явно только после ознакомления с моделью безопасности.
Команда раскладки сообщает о предупреждении Hyprland
Некоторые no-op операции композитора ожидаемы — например, обмен полноэкранного окна или обмен в сторону пустой ячейки. Результат MCP отличает эти предупреждения от подтверждённых мутаций.
Вклад
Приветствуются вклады в реализацию, живую проверку, документацию, тестирование, доступность и инженерию релизов. Репозиторий предоставляет структурированные формы вопросов для ошибок, предложений инструментов и отчётов о проверке, а также чек-лист для pull-request, согласованный с моделью безопасности проекта.
Начните с CONTRIBUTING.md, затем выберите направление вклада из ROADMAP.md. Широкие или высокорисковые изменения должны начинаться с issue, чтобы объём, доказательства и поведение при восстановлении были согласованы до написания кода.
Документы проекта
COMMANDS.md — журнал реализации и живой проверки
ROADMAP.md — этапы, приоритеты и шлюзы релизов
CONTRIBUTING.md — рабочий процесс вклада и тестирования
GOVERNANCE.md — роли, решения, обзоры и релизы
SECURITY.md — приватные отчёты и границы безопасности
CODE_OF_CONDUCT.md — стандарты участия сообщества
AGENTS.md — технический контекст для агентов кодинга, работающих с репозиторием
Лицензия
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityDmaintenanceProvides AI assistants with the ability to control Linux desktop environments through tools for file management, application launching, and system operations like clipboard access. It includes a multi-level security model to manage permissions for safe, elevated, and restricted actions.6MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to control Linux/X11 desktops by providing tools for taking screenshots, clicking, typing, and managing windows via AT-SPI and xdotool.3MIT
- AlicenseNot gradedqualityCmaintenanceEnables full Linux desktop control including windows, mouse, keyboard, clipboard, audio, screenshots, OCR, accessibility, and system management through MCP-compatible AI agents.1MIT
- AlicenseNot gradedqualityDmaintenanceEnables computer control via mouse, keyboard, OCR, and screen/window management, similar to Anthropic's computer-use.MIT
Related MCP Connectors
Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.
Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.
Runtime permission, approval, and audit layer for AI agent tool execution.
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