app-control

Drives a named macOS application via raw keyboard and mouse input bypassing the Accessibility tree.

1|Updated Mar 30, 2026
One-click install
npx skills add https://github.com/Logarn/Worklin-ai --skill app-control-logarn
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: app-control
Source: https://github.com/Logarn/Worklin-ai/tree/main/assistant/src/config/bundled-skills/app-control
Command: npx skills add https://github.com/Logarn/Worklin-ai --skill app-control-logarn

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Some macOS applications — emulators, games, OpenGL canvases, and custom-rendered Electron apps — expose little or nothing through the Accessibility tree, making standard UI automation impossible. This Skill lets an assistant control such apps directly with raw keyboard, mouse, and screenshot input. ## Core Features & Use Cases - Raw Input Control: Send key presses, key combos, ordered key sequences, typed text, clicks, and drags to a specific named app identified by bundle ID or process name. - Screen Observation: Capture window state and screenshots with a configurable settle delay so slow-feedback apps like emulators render a fresh frame before capture. - Session Management: Start a control session targeting one app and cleanly stop it when finished without quitting the controlled app. - Use Case: You need to navigate menus in a game emulator that renders its own UI. Observe the screen, send an ordered sequence of arrow keys and return presses in a single round-trip, and re-observe to confirm the result. ## Quick Start Use app control to open the emulator with bundle ID com.example.emulator, take a screenshot, then press the right arrow key three times and press return.

Frequently Asked Questions about app-control

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I automate a macOS app that has no Accessibility support?▼

Use raw input automation that sends keyboard and mouse events directly to the app, bypassing the Accessibility tree. Start a session with the app's bundle ID, observe the screen via screenshot, then send key presses, combos, clicks, or drags.

How do I send keyboard shortcuts to a specific macOS application?▼

Use the combo action with the target app's bundle ID and a key list like ["cmd", "shift", "4"] so all keys are held simultaneously. For ordered batches of single presses, use a sequence which runs in one round-trip without focus drift.

When should I use raw app control instead of computer-use UI automation?▼

Use raw app control only when the Accessibility tree is empty or unhelpful, such as with emulators, games, OpenGL canvases, or custom-rendered Electron apps. For general macOS UI navigation, AX-based computer-use automation is preferred.

Why does my screenshot look one input behind the app's actual state?▼

Slow-feedback apps like emulators may not have composited a fresh frame when the screenshot is captured. Increase the settle_ms parameter so the app and WindowServer can flush pending input before capture, or pass 0 for static UIs.

Does app control quit the target application when finished?▼

No. Calling stop only ends the app-control session and leaves the target application running. The controlled app is never auto-quit, so its state remains intact after the session ends.