awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
Hammerspoon avatar

Hammerspoon/hammerspoon

0
View on GitHub↗
14,497 stars·666 forks·Objective-C·mit·44 viewswww.hammerspoon.org↗

Hammerspoon

Hammerspoon is a programmable automation engine for macOS that enables deep system-level control through a Lua scripting environment. By bridging high-level scripts with native Objective-C APIs, it allows users to interact with the operating system's accessibility tree, intercept hardware input streams, and manage the lifecycle of running applications.

The project distinguishes itself through an event-driven architecture that registers asynchronous hooks for system notifications and hardware events. This allows for real-time automation, such as remapping keyboard and mouse inputs, managing window layouts via grid-based positioning, and responding to changes in network status, battery levels, or display configurations. Its modular extension system supports the loading of self-contained units of functionality, enabling users to tailor the environment to specific workflows.

Beyond core automation, the platform provides a comprehensive suite of capabilities for network integration, media and hardware control, and data persistence. It includes tools for managing audio devices, interacting with professional control panels, rendering custom graphical overlays, and executing shell commands or system scripts. The environment also supports complex window management, including spatial navigation and tabbed grouping, alongside monitoring utilities for system hardware and diagnostic logging.

The project provides a command-line interface for managing configurations and includes built-in documentation servers to assist with script development.

Features

  • Input Automation Tools - Intercepts and modifies system-wide mouse and keyboard input events for custom automation.
  • Scripting Environments - Executes scripts that interact with native accessibility APIs, system notifications, and hardware interfaces.
  • Window Managers - Provides grid-based window management and automated layout positioning for desktop applications.
  • Desktop Automation - Provides a programmable automation engine for controlling system windows, hardware, and OS events.
  • Window Management Utilities - Enables programmatic positioning, resizing, and organization of application windows using custom grid layouts and keyboard shortcuts.
  • System Event Monitors - Provides a background service that triggers custom scripts in response to system-level events like network changes, battery status, and hardware connections.
  • Keyboard Input Automation - Intercepts and modifies keyboard and mouse input to create custom shortcuts and macros.
  • Modular Library Extensions - Supports loading self-contained modular extensions to tailor functionality to specific workflows.
  • Application Scripting APIs - Automates interactions between applications by manipulating UI elements and accessibility objects.
  • Grid Layout Managers - Positions and resizes windows to align with a virtual screen grid for precise layout management.
  • Workflow Event Triggers - Triggers custom scripts and workflows in response to system-level events like battery or network changes.
  • Input Event Interceptors - Intercepts keyboard and mouse events in real-time to allow for custom input remapping and automation.
  • Language Bridges - Bridges Lua scripting with native Objective-C APIs to enable deep system-level automation.
  • Runtime Lifecycle Controllers - Enables automated reloading of configurations and application restarts.
  • Event-Driven Hook Systems - Registers asynchronous hooks for system-level notifications and hardware events to trigger scripts.
  • System Automation Scripts - Executes AppleScript or JavaScript code to interact with system components via the Open Scripting Architecture.
  • System Notifications - Creates and delivers custom alerts to the system notification center, supporting configurable text, images, sounds, and interactive buttons.
  • Device-Specific Input Rules - Applies custom input remapping and transformation logic to specific hardware devices.
  • Accessibility Inspection Tools - Retrieves accessibility objects to programmatically inspect and interact with system and application components.
  • Accessibility-Based Window Manipulators - Interacts with the operating system accessibility tree to programmatically inspect and control application windows.
  • Playback Controllers - Provides programmatic control over media playback states like play, pause, and seek.
  • Window Lifecycle Controllers - Enables programmatic control over window visibility and lifecycle states.
  • Notification Interaction Handlers - Registers callback functions that execute automatically when a user clicks or interacts with a specific notification.
  • Automation And Scripting - Powerful automation tool using the Lua scripting engine.
  • System Utilities - macOS automation tool for scripting system behavior.
  • More to explore - Powerful automation tool driven by Lua scripting.
  • Productivity Tools - Listed in the “Productivity Tools” section of the Awesome Mac awesome list.
  • Window Management - Powerful automation and window management scripting engine.
  • Script-to-Native Type Mappings - Translates data types and function calls between high-level scripting and native system APIs.
  • Media Controllers - Manages system audio, media playback, and external hardware devices through programmable interfaces.
  • Mouse Control Automation - Provides programmatic control over mouse cursor movement and positioning.
  • Plugin Lifecycle Management - Provides a framework for loading, configuring, and managing the lifecycle of modular automation extensions.
  • Task Scheduling - Automates the execution of functions at fixed intervals or based on conditional predicates.
  • Automated Action Execution - Triggers accessibility actions like button clicks or menu interactions to automate application workflows.
  • Hardware Hub Callbacks - Registers callbacks to detect and respond to hardware button presses and state changes.
  • Audio Volume APIs - Integrates system audio volume control into automation workflows.
  • Window State Observers - Retrieves lists of open, visible, minimized, or focused windows to identify and interact with specific application interfaces.
  • Modular Extension Systems - Loads self-contained units of functionality at runtime to extend core capabilities.
  • User Interaction Simulation - Simulates user input by generating synthetic keyboard and mouse events to automate application interactions.
  • Window Rules - Defines rule-based filters to include or exclude application windows from automation tasks.
  • Window Lifecycle Monitors - Triggers callbacks when a webview window is moved, resized, closed, or changes focus state to enable responsive desktop automation.
  • Input Event Dispatchers - Dispatches synthetic input events to the operating system to enable complex automation macros.
  • Interactive UI Components - Accesses accessibility APIs to inspect and manipulate UI components of running applications.
  • UI Element Selectors - Locates and queries UI elements based on structural relationships within the accessibility tree.
  • Audio Hardware Interfaces - Queries and manages system audio hardware including volume, balance, and input sources.
  • Configuration Persistence - Persists application settings and configuration states to local storage.
  • Key Code Mappers - Facilitates event monitoring and hotkey assignment through key code mapping.
  • Application Lifecycle Managers - Locates and manages running applications by process ID or bundle identifier to control their lifecycle.
  • Window Visualizers - Displays a grid of active application windows to allow quick selection and navigation.
  • Shell Command Utilities - Runs system shell commands and captures output for use within automation scripts.
  • Interactive Resizers - Launches a modal interface for visually adjusting window dimensions and positions using keyboard shortcuts.
  • Task Schedulers - Execute a function after a specified delay or at a specific time of day, with options for recurring intervals.
  • Event Filter Lifecycle Managers - Allows for the temporary suspension and reactivation of event monitoring filters.
  • Interactive Overlays - Displays interactive dialogs and alerts on the screen to provide visual feedback.
  • Peripheral Device Managers - Supports the discovery and monitoring of specialized hardware peripherals.
  • MIDI Message Transmitters - Transmits standard MIDI messages to control external hardware and virtual instruments.
  • Spatial Window Managers - Provides spatial window management capabilities to organize and navigate application windows on the desktop.
  • Process Lifecycle Managers - Runs automation logic within a persistent host process that manages lifecycle events.
  • Power State Controllers - Provides programmatic control over system power states.
  • Communication Bridges - Enables bidirectional data exchange and automation triggering between webview content and the host system.
  • Application Lifecycle Monitors - Triggers custom logic in response to application launch, termination, or state changes via system-level notifications.
  • Display Configuration Managers - Provides granular control over monitor hardware settings like resolution, scaling, and refresh rate.
  • File System Monitors - Monitors file system paths for creation, modification, or deletion events to trigger automated scripts.
  • Inter-Process Communication - Enables asynchronous data exchange and remote command execution between separate processes via local or remote ports.
  • Window Query Filters - Retrieves lists of open windows based on active filter rules and focus history.
  • Event Handling - Registers callbacks to respond to input events from external control hardware like encoders and touch screens.
  • UI Event Watchers - Tracks UI interactions and state changes to trigger automated responses.
  • Accessibility Attribute Modifiers - Allows for the programmatic modification of application UI element attributes.
  • Script Injection Engines - Injects custom scripts into webviews to modify page environments and frame structures.
  • Observable State Tables - Exposes shared data tables that trigger notifications upon modification for external observation.
  • Application Identifiers - Identifies running applications by name or window title patterns.
  • Automation Shortcuts - Triggers system shortcuts by name to perform automated tasks or workflows on the desktop.
  • Clipboard Change Watchers - Triggers custom functions whenever the system clipboard contents are updated.
  • Clipboard Writers - Updates the system clipboard with diverse data types for cross-application use.
  • Input Source Switchers - Enables programmatic switching of system keyboard layouts and input methods.
  • Modal Input Systems - Provides mechanisms to define temporary keyboard modes that intercept specific key combinations for custom automation workflows.
  • Process Execution Utilities - Executes system binaries with custom arguments and captures output streams for integration into automation scripts.
  • Remote Panel Controllers - Synchronizes software logic with the physical layout of professional control panels.
  • URL Scheme Handlers - Registers callbacks to execute scripts when custom URL schemes or application events are triggered.
  • URL Scheme Handlers - Allows for the programmatic management of default URL scheme handlers.
  • Tabbed Window Groupers - Consolidates open windows of a specific application into a single tabbed interface.
  • Volume Mount Watchers - Triggers callbacks whenever disk volumes are mounted, unmounted, or modified.
  • Network Bridges - Manages smart lighting zones by sending network commands to hardware bridges.
  • Custom Shape Rendering - Enables rendering of custom shapes, text, and images on a drawing surface for desktop overlays.
  • Hardware Hub Connectors - Enables interaction with professional control panels via external hub software.
  • Audio Device Watchers - Monitors audio hardware connections and triggers custom scripts upon configuration changes.
  • Text Message Automation - Transmits text messages to specific recipients using the system messaging service via email address or phone number.
  • HTTP Request Customization - Executes synchronous and asynchronous HTTP requests with support for custom headers and caching.
  • Network Change Observers - Tracks the connectivity status of a specific network destination and triggers a callback function whenever the connection state changes.
  • Socket Networking - Implements low-level TCP and Unix domain socket management for inter-process and network communication.
  • Wireless Interface Controllers - Allows for the automated management of wireless network connections.
  • Space Change Monitors - Provides event-driven hooks to trigger automation when the user switches between virtual desktop spaces.
  • USB Device Connection Watchers - Triggers functions when USB devices are connected or disconnected, providing device identity details.
  • Audio Input Selectors - Manages and selects system audio input and output sources for routing control.
  • Space Change Monitors - Enables automation triggered by changes in the active desktop space.
  • Hardware Connection Watchers - Detects and handles the connection or disconnection of external control devices.
  • Scheduled Notification Triggers - Delivers alerts at a specific future time by defining a timestamp or date string for the notification trigger.
  • Device Power Monitors - Triggers automated functions in response to changes in system battery status.
  • Configuration Change Watchers - Triggers automated callbacks whenever specific system configuration keys are modified.
  • Media Playback Observers - Tracks media application status and playback state for automated workflows.
  • Location Tracking - Retrieves and monitors geographic location data to enable location-aware system automation.
  • System Configuration Watchers - Watches system configuration keys and triggers callbacks upon modification.
  • Application Window Managers - Provides programmatic control to list, filter, and retrieve application windows.
  • Color Temperature Managers - Schedules and manages display color temperature shifts based on time of day.
  • Menu Interaction Utilities - Discovers and programmatically selects application menu items to trigger actions.
  • Element Property Inspection - Inspects accessibility objects to retrieve metadata and state information from application interface components.
  • File Pickers - Invokes native system dialogs to select files or directories from local storage.
  • Focus Management - Programmatically identifies the interface component currently holding system or application focus.
  • Keyboard Navigation - Implements keyboard-driven window selection using visual overlays for efficient desktop navigation.
  • Display Layout Managers - Positions screens within the global coordinate space to organize multi-monitor setups.
  • Navigation Titles - Locates specific windows by searching for exact title matches or dynamic patterns.
  • Screen Capture Tools - Generates image snapshots of displays or specific screen regions.
  • Tabbed Window Navigation - Provides components for switching between grouped tabbed windows.
  • Visual Overlays - Displays graphical objects and visual elements directly on the screen for custom desktop overlays.
  • Hardware Control State Managers - Allows dynamic visual feedback and state management for connected professional hardware control panels.
  • Accessibility Event Listeners - Provides hooks to track and respond to accessibility notifications from application interface elements.

Star history

Star history chart for hammerspoon/hammerspoonStar history chart for hammerspoon/hammerspoon

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Hammerspoon

These projects share indexed features with Hammerspoon. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • simular-ai/agent-ssimular-ai avatar

    simular-ai/Agent-S

    11,855View on GitHub↗

    Agent-S is a multimodal AI agent and LLM desktop automation framework designed to control operating systems through graphical user interface interactions. It functions as a computer use interface, utilizing vision-language grounding to translate natural language goals into precise screen coordinates and system actions. The project differentiates itself by combining structured accessibility tree inspection with vision-based element localization. It manages cross-application workflows by mapping conceptual descriptions to physical pixels and simulating low-level keyboard and mouse events to mov

    Pythonagent-computer-interfaceai-agentscomputer-automation
    View on GitHub↗11,855
  • asmvik/yabaiasmvik avatar

    asmvik/yabai

    29,093View on GitHub↗

    Yabai is a system-level utility for macOS that provides automated window management and workspace organization. It functions as a tiling window manager that uses binary space partitioning to arrange application windows into grid layouts, bypassing standard desktop constraints through direct interaction with the system window server. The project distinguishes itself by offering granular control over the graphical user interface via a socket-based command interface and event-driven system hooks. This allows for the programmatic manipulation of window states, display configurations, and virtual

    C
    View on GitHub↗29,093
  • pqrs-org/karabiner-elementspqrs-org avatar

    pqrs-org/Karabiner-Elements

    22,362View on GitHub↗

    Karabiner-Elements is a system-level utility designed for advanced keyboard and mouse customization. It functions as a background service that intercepts raw hardware input signals at the driver level, allowing for the transformation of key presses and pointer movements before they reach the operating system. By utilizing virtual input device emulation, the software re-injects modified events into the system stream, enabling complex remapping, macro execution, and hardware-specific control. The project distinguishes itself through a sophisticated state-based logic engine that enables context-

    C++keyboardmacos
    View on GitHub↗22,362
  • ianyh/amethystianyh avatar

    ianyh/Amethyst

    16,009View on GitHub↗

    Amethyst is a tiling window manager for macOS designed to automate the arrangement of application windows. It functions as a productivity utility that organizes windows into non-overlapping layouts, allowing users to manage their desktop environment through keyboard-driven controls rather than manual mouse interaction. The application distinguishes itself by providing a state-machine engine that calculates window geometry based on user-defined tiling patterns. It maintains an accurate representation of the desktop by monitoring system-level notifications for window events, enabling it to auto

    Swiftmacmacoswindow-manager
    View on GitHub↗16,009
Compare all 30 related projects→

Frequently asked questions

What does hammerspoon/hammerspoon do?

Hammerspoon is a programmable automation engine for macOS that enables deep system-level control through a Lua scripting environment. By bridging high-level scripts with native Objective-C APIs, it allows users to interact with the operating system's accessibility tree, intercept hardware input streams, and manage the lifecycle of running applications.

What are the main features of hammerspoon/hammerspoon?

The main features of hammerspoon/hammerspoon are: Input Automation Tools, Scripting Environments, Window Managers, Desktop Automation, Window Management Utilities, System Event Monitors, Keyboard Input Automation, Modular Library Extensions.

Which projects share features with hammerspoon/hammerspoon?

Projects with overlapping indexed features include: simular-ai/agent-s — Agent-S is a multimodal AI agent and LLM desktop automation framework designed to control operating systems through… asmvik/yabai — Yabai is a system-level utility for macOS that provides automated window management and workspace organization. It… pqrs-org/karabiner-elements — Karabiner-Elements is a system-level utility designed for advanced keyboard and mouse customization. It functions as a… ianyh/amethyst — Amethyst is a tiling window manager for macOS designed to automate the arrangement of application windows. It… go-vgo/robotgo — Robotgo is a cross-platform desktop automation framework for the Go programming language. It provides a comprehensive… rxhanson/rectangle — Rectangle is a desktop window manager that organizes open application windows into predefined layouts and grid…