|Core Hammerspoon functionality
|Simple on-screen alerts
|Execute AppleScript code
|Manipulate running applications
|Watch for application launch/terminate events
|Manipulate the system's audio devices
|Inspect/manipulate the data sources of an audio device
|Watch for system level audio hardware events
|This module allows you to access the accessibility objects of running applications, their windows, menus, and other user interface elements that support the OS X accessibility API.
|This submodule allows hs.axuielement to support using AXTextMarker and AXTextMarkerRange objects as parameters for parameterized Accessibility attributes with applications that support them.
|This submodule allows you to create observers for accessibility elements and be notified when they trigger notifications. Not all notifications are supported by all elements and not all elements support notifications, so some trial and error will be necessary, but for compliant applications, this can allow your code to be notified when an application's user interface changes in some way.
|Base64 encoding and decoding
|Watch for battery/power state changes
|Support for the Blackmagic DaVinci Resolve Speed Editor Keyboard and Editor Keyboard.
|Find and publish network services advertised by multicast DNS (Bonjour) with Hammerspoon.
|Represents the service records that are discovered or published by the hs.bonjour module.
|Inspect/manipulate display brightness
|Control system power states (sleeping, preventing sleep, screen locking, etc)
|Watch for display and system sleep/wake/power events
|Inspect the system's camera devices
|A different approach to drawing in Hammerspoon
|A sub module to
hs.canvas which provides support for basic matrix manipulations which can be used as the values for
transformation attributes in the
|Graphical, interactive tool for choosing/searching data
|Some functions for manipulating the Hammerspoon console.
|Various features/facilities for developers who are working on Hammerspoon itself, or writing extensions for it. It is extremely unlikely that you should need any part of this extension, in a normal user configuration.
|Controls for Deezer music player.
|A collection of useful dialog boxes, alerts and panels for user interaction.
|A panel that allows users to select a color.
|Interact with NSDistributedNotificationCenter
|Create documentation objects for interactive help within Hammerspoon
|Builds documentation support files. Still experimental.
|Manage the internal documentation web server.
|Markdown to HTML and plaintext conversion support used by hs.doc
|Control Hammerspoon's dock icon
|DEPRECATED. Primitives for drawing on the screen in various ways.
|Provides access to the system color lists and a wider variety of ways to represent color within Hammerspoon.
|Tap into input events (mouse, keyboard, trackpad) for observation and possibly overriding them
|Create, modify and inspect events for
|Keyboard-driven expose replacement/enhancement
|Functional programming utility functions
|Access/inspect the filesystem
|Interact with OS X filesystem volumes
|Get and manipulate extended attributes for files and directories
|Utility object to represent points, sizes and rects in a bidimensional plane
|Move/resize windows within a grid
|Various hashing algorithms
|HID interface for Hammerspoon, controls and queries caps lock state
|HID LED interface for Hammerspoon, controls the state of keyboard LEDs
|Switch focus with a transient per-application keyboard shortcut
|Inspect information about the machine Hammerspoon is running on
|Retrieve information about the user's Language and Region settings.
|Create and manage global keyboard shortcuts
|Create/manage modal keyboard shortcut environments
|Perform HTTP requests
|Simple HTTP server
|Minimalist Web Server for Hammerspoon
|Provides support functions in the
cgilua module for Hammerspoon Minimal Web Server Lua templates.
|Support functions for the CGILua compatibility module for including and translating Lua template pages into Lua code for execution within the Hammerspoon environment to provide dynamic content for http requests.
|Support functions for the CGILua compatibility module for encoding and decoding URL components in accordance with RFC 3986.
|A module for capturing and manipulating image objects from other modules for use with hs.drawing.
|Produce human-readable representations of Lua variables (particularly tables)
|Provides Hammerspoon with the ability to create both local and remote message ports for inter-process communication.
|Controls for iTunes music player
|JSON encoding and decoding
|Convert between key-strings and key-codes. Also provides functionality for querying and changing keyboard layouts.
|Window layout manager
|Determine the machine's location and useful information about that location
|Converts between GPS coordinates and more user friendly representations like an address or points of interest.
|Simple logger for debugging purposes
|Various helpful mathematical functions
|Create and manage menubar icons
|Send messages via iMessage and SMS Relay (note, SMS Relay requires OS X 10.10 and an established SMS Relay pairing between your Mac and an iPhone running iOS8)
|MIDI Extension for Hammerspoon.
|Simple controls for the MiLight LED WiFi bridge (also known as LimitlessLED and EasyBulb)
|tmuxomatic-like window management
|Inspect/manipulate the position of the mouse pointer
|This module provides functions for inquiring about and monitoring changes to the network.
|This sub-module provides access to the current location set configuration settings in the system's dynamic store.
|This sub-module provides functions for acquiring host information, such as hostnames, addresses, and reachability.
|This module provides a basic ping function which can test host availability. Ping is a network diagnostic tool commonly found in most operating systems which can be used to test if a route to a specified host exists and if that host is responding to network traffic.
|Provides lower-level access to the ICMP Echo Request infrastructure used by the hs.network.ping module. In general, you should not need to use this module directly unless you have specific requirements not met by the hs.network.ping module and the
hs.network.ping object methods.
|This sub-module can be used to determine the reachability of a target host. A remote host is considered reachable when a data packet, sent by an application into the network stack, can leave the local device. Reachability does not guarantee that the data packet will actually be received by the host.
|Contains two low latency audio recognizers for different mouth noises, which can be used to trigger actions like scrolling or clicking.
|This module allows you to create on screen notifications in the User Notification Center located at the right of the users screen.
|Open Sound Control (OSC) support.
|Inspect/manipulate pasteboards (more commonly called clipboards). Both the system default pasteboard and custom named pasteboards can be interacted with.
|Watch for Pasteboard Changes.
|Watch paths recursively for changes
|Read and write Property List files
|Razer device support.
|Inverts and/or lowers the color temperature of the screen(s) on a schedule, for a more pleasant experience at night
|Manipulate screens (i.e. monitors)
|Watch for screen layout changes
|Communicate with external devices through a serial port (most commonly RS-232).
|Serialize simple Lua variables across Hammerspoon launches
|Share items with the macOS Sharing Services under the control of Hammerspoon.
|List and run shortcuts from the Shortcuts app
|Talk to custom protocols using asynchronous TCP sockets.
|Talk to custom protocols using asynchronous UDP sockets.
|Load/play/manipulate sound files
|This module provides some basic functions for controlling macOS Spaces.
|Watches for the current Space being changed
|This module provides access to the Speech Synthesizer component of OS X.
|This module provides access to the Speech Recognizer component of OS X.
|Utility and management functions for Spoons
|Controls for Spotify music player
|This module allows Hammerspoon to preform Spotlight metadata queries.
|This sub-module is used to access results to a spotlightObject query which have been grouped by one or more attribute values.
|This sub-module is used to access the individual results of a spotlightObject or a spotlightGroupObject.
|Interact with SQLite databases
|Configure/control an Elgato Stream Deck.
|This module adds support for controlling the style of the text in Hammerspoon.
|Place the windows of an application into tabs drawn on its titlebar
|Tangent Control Surface Extension
|Execute processes in the background and capture their output
|Execute functions with various timing rules
|Specialized timer objects to coalesce processing of unpredictable asynchronous events into a single callback
|A generalized framework for working with OSX UI elements
|Watch for events on certain UI elements (including windows and applications)
|Allows CommandPost to respond to URLs
|Inspect USB devices
|Watch for USB device connection/disconnection events
|Functions providing basic support for UTF-8 encodings
|Controls for VOX music player
|A minimalistic Key-Value-Observer framework for Lua.
|Simple websocket client.
|Display web content in a window from Hammerspoon
|Provides methods to list and purge the various types of data used by websites visited with
|Create and manipulate toolbars which can be attached to the Hammerspoon console or hs.webview objects.
|Inspect WiFi networks
|Watch for changes to the associated wifi network
|Filter windows by application, title, location on screen and more, and easily subscribe to events on these windows
|Highlight the focused window
|WARNING: EXPERIMENTAL MODULE. DO NOT USE IN PRODUCTION.
|Window-based cmd-tab replacement
|WARNING: EXPERIMENTAL MODULE. DO NOT USE IN PRODUCTION.