CrossMacro v1.4.0 - Visual Automation, Window Control & Intelligent Desktop Workflows
CrossMacro v1.4.0 is the largest release yet. It introduces visual automation with image matching, cross-platform window control, a local MCP server for AI-assisted workflows, a much more capable CLI, and substantial improvements to recording, playback, and native platform support.
Key changes
Visual automation and screen reading
- Image-based automation: Macros can now save reusable image assets, find an image on screen, wait for an image to appear, and use the match in later actions. Image actions are available in the editor, scripts, CLI, runtime, and saved macro files.
- Automatic image matching: Automatic matching is now the default. CrossMacro selects the most suitable matching method internally and uses a 0.95 confidence threshold, so reliable matching no longer requires manual scale or downsampling tuning.
- Wait for screen changes: Added time-bounded polling for colour and image conditions, including image-click actions. Screen commands now clearly distinguish immediate reads from actions that wait for a condition.
- More reliable capture: Screen captures retain transparency, coverage, and valid-pixel information, improving image automation on multi-monitor desktops with gaps between displays. PNG capture also preserves transparency correctly on Windows, macOS, and Wayland.
- Improved Wayland portal capture: Screen capture through PipeWire now handles common SDR formats, multiple selected monitors, cached frames, timeouts, session changes, and malformed frame data more reliably.
- Accurate multi-monitor results: Image matching accounts for display scale, and macOS now captures the correct pixels on displays positioned to the left, right, above, or below the primary monitor.
Window automation and focused shortcuts
- Window control across platforms: CrossMacro can now list, find, wait for, focus, close, move, resize, center, maximize, fullscreen, float, and move windows between workspaces where the platform supports it.
- Broad Linux desktop support: Added window-management support for KDE Plasma, GNOME Shell, Hyprland, Niri, and Sway. This includes compositor detection, accurate geometry changes, workspace handling, maximize-state support, position tracking, and reliable KDE script cleanup.
- Windows and macOS window control: Added native Windows support and macOS Accessibility-based control for querying and managing windows. macOS support includes focus, close, fullscreen, zoom, centering, hidden-window filtering, and safe CLI window references.
- Focused-window shortcut rules: Shortcuts can now run only when the focused window matches a class, title, or process rule. The feature includes a visual window picker, CLI support, persistent rules, and safe handling when no shortcut is selected. Addresses #76.
- Graceful platform support: Unsupported window features are hidden or skipped instead of causing startup failures.
Recording, timing, and playback accuracy
- Two relative mouse-recording modes: Raw mode records hardware-style mouse deltas on Linux, Windows, and macOS. Logical mode records movement in desktop pixels when that behaviour is preferred. Both modes are available through settings, the recorder, editor, CLI, and saved macros.
- More dependable relative playback: Raw movement no longer waits for unavailable cursor feedback. Logical movement can re-anchor after manual cursor movement and still waits before pointer-dependent actions. Relative editor moves also begin from the current cursor position.
- Microsecond timing: Captured delays, saved macros, editor actions, and static script delays now preserve microsecond precision while continuing to support existing millisecond-based macros.
- Motion-fidelity controls: Added precision-rate limits and strict-speed resampling for more deterministic relative mouse paths. The new controls are available in the editor, Playback tab, CLI, settings, and documentation.
- Safer input delivery: Linux input playback now reports partial or failed writes, safely reuses virtual devices, and reliably replays repeated absolute cursor targets. Cursor settling uses a bounded time limit instead of a fixed number of polls.
- Safer repeated playback: CrossMacro asks for confirmation before starting a rapidly repeating macro with a very low delay, helping prevent accidental system lockups. Addresses #78.
- More accurate input capture: Windows records input timestamps more precisely. macOS uses native event timestamps where available, captures continuous horizontal and vertical scrolling, and handles capture startup and shutdown more safely. Linux preserves evdev timestamps and resumes capture after a keyboard or mouse is reconnected.
Script macros and desktop actions
- Structured script actions: Added editor and runtime support for structured script actions, including shell commands and clipboard operations.
- Shell steps: Macros can run shell commands on native installations. In Flatpak, shell steps run inside a nested networkless sandbox and cannot access host commands, while retaining timeout, cancellation, input, and output-limit protection.
- Clipboard steps: Scripts can get and set clipboard text, and the editor can capture selected text with standard copy shortcuts. Clipboard text expansion now handles backend and owner-process failures more safely.
- Mouse-position steps: Scripts can save the current mouse coordinates in variables for use by later actions. The feature is available in the editor and CLI and reports platform availability safely.
- More expressive arithmetic: Added
mulanddivcommands, plus arithmetic expressions inrepeat,for,if, andwhilearguments. Script execution now reports malformed expressions and overflow consistently instead of producing unexpected results. - Improved coordinate authoring: The editor supports variable mouse coordinates, preserves raw keyboard actions and random delays, and no longer writes the legacy
# IsAbsolutemacro header.
CLI, profiles, and MCP integration
- Expanded management CLI: Added commands to manage profiles, text expansions, settings, schedules, and shortcuts, as well as commands for clipboard access, screenshots, windows, screen reading, direct input, and runtime automation.
- Screen and desktop CLI: The CLI can export screenshots, use native capture services, automate windows, read and write the clipboard, run colour and image actions, and report coordinate modes and backend capabilities.
- Wayland Quick Setup: Flatpak and AppImage users can now run temporary input setup from the CLI. CrossMacro selects an available
run0orpkexecpath, refreshes its capability status afterwards, and gives clearer guidance when authorization fails. - Local MCP server: Added a local Model Context Protocol (MCP) server so compatible AI tools can work with CrossMacro through a controlled stdio connection. Tools are organised by feature and apply operation-specific permissions, authorization, and file-path policies.
- Profile continuity: CrossMacro now restores loaded macro sessions separately for each profile. Addresses #77.
- Better configuration-path support: Added support for Bazzite and Linux environments that use directory-backed identities.
Editor, themes, and everyday usability
- More capable editor: Added image-action editing, structured script editing, variable coordinates, selected-text capture, inline macro testing, and responsive motion-fidelity controls. Action loading, selection, undo updates, and playback testing are also more reliable.
- Custom JSON themes: You can add JSON theme files to the CrossMacro themes folder. On first use, CrossMacro creates a README and
_template.json, ignores underscore-prefixed draft files, and provides refresh and open-folder actions in Settings. - Theme refresh fix: Refreshing the theme list now keeps the selected theme active instead of switching to a transient selection. Fixes #75.
- Steadier settings and UI: Settings writes are debounced, text-expansion trigger polling is reduced, and the UI now handles theme loading, clipboard controls, tab bindings, and startup conditions more safely.
Linux, macOS, Windows, and distribution improvements
- Native Linux backends: CrossMacro now uses native Wayland and X11 services for screen capture and clipboard access across the GUI, CLI, and headless runtime. This improves Wayland startup, shared-memory capture formats, COSMIC coordinate mapping, KDE capture support, and recovery after daemon restarts.
- Portable Linux input: Flatpak and AppImage select direct input devices predictably instead of probing a daemon. Quick Setup remains available when additional permissions are required.
- Directory-service identity support: Linux daemon authorization, package setup, Nix modules, and documentation now support NSS, Active Directory, LDAP, SSSD, Userborn, and other directory-backed group identities without attempting to create conflicting local accounts. Fixes #72.
- Linux packages and development builds: Updated application launchers and package identity handling across DEB, RPM, Arch, Nix, AppImage, and Flatpak. Development snapshots are now published to the
crossmacro-gitAUR package with Git snapshot version metadata. - macOS desktop services: Added native text and PNG clipboard support, Accessibility-based window control, and shared native services for the GUI and CLI. Screen Recording is now requested only when visual automation needs it; Input Monitoring and Accessibility remain the required startup permissions.
- Windows compatibility: Improved Unicode Win32 interop, Native AOT compatibility, clipboard initialization, native clipboard and screenshot services, and Windows-specific input handling.
Reliability and documentation
- More resilient runtime behaviour: Improved asynchronous lifecycle and persistence handling, startup reuse, Linux daemon reconnection with quiet backoff, automatic text-expansion capture recovery, and protection against duplicate GUI startup.
- Package quality: Refined Flatpak, Nix, and native Linux packaging so launchers, runtime dependencies, profiles, and desktop integration match the installed application.
- Documentation overhaul: Reworked the project overview, installation guide, platform setup and troubleshooting guides, CLI reference, MCP reference, Unix man page, contribution guide, security policy, theme documentation, and screenshots. Documentation links, local assets, HTML images, and cross-document heading links are now checked automatically.
Full Changelog: v1.3.1...v1.4.0
