GUI Computer Use
FERAL can see your screen and interact with any desktop application using Anthropic-style computer-use primitives: screenshots, mouse clicks, typing, key combos, scrolling, and window management.
GUI computer-use is supported on macOS and Linux only. On Windows the implementation returns {"success": false, "reason": "unsupported_platform"} for every action — earlier docs marked Windows as “Stable”, which was wrong. If you need GUI control on Windows today, run FERAL inside WSL2 (Linux subsystem) — the X11 path works there.
Permission Requirements
macOS
- Open System Settings → Privacy & Security → Accessibility
- Add your terminal app (Terminal, iTerm2, or the app running FERAL)
- Also grant Screen Recording permission for screenshots
Linux (X11)
No special permissions needed on X11. Wayland requires xdg-portal or running FERAL in an X11 session.
Install one of: gnome-screenshot, scrot, or imagemagick (for the import command).
Windows
Not supported — see warning above. WSL2 (Ubuntu running an X11 server) is the supported path.
Rate Limits
FERAL enforces a configurable rate limit on GUI actions to prevent runaway automation:
Screenshots are exempt from rate limiting. When the limit is exceeded, the action returns {"success": false, "reason": "rate_limit_exceeded"}.
Coordinate Scaling (Retina / HiDPI)
VLMs see a screenshot image (max 1920px wide). On Retina/HiDPI displays, the physical screen is larger. FERAL automatically detects the DPI scale factor and converts coordinates:
- macOS: Queries
NSScreen.backingScaleFactor() (typically 2.0)
- Linux: Reads
GDK_SCALE environment variable
- Windows: Falls back to 1.0
Troubleshooting
- “Screenshot capture failed” — Check that Screen Recording permission is granted (macOS) or that
scrot/gnome-screenshot is installed (Linux).
- Clicks land in the wrong spot — Usually a DPI mismatch. Check the
dpi_scale value in screenshot responses. Override with GDK_SCALE on Linux.
- “rate_limit_exceeded” errors — Increase
FERAL_GUI_MAX_ACTIONS_PER_S or slow down the automation loop.
- Typing non-ASCII fails — Install
pyperclip. FERAL uses clipboard paste for non-ASCII text.
- Window focus doesn’t work — macOS needs Accessibility permission. Linux needs
wmctrl or xdotool.