Automate your macOS environment with Lua scripts.
Good to know
Requires ~/.hammerspoon/init.lua; does nothing until configured.
Written by @iluxav from the project's code and releases, not by its maintainers. Last updated for 1.1.1 (2026-02-26), so it may lag behind newer releases.
Thanks. Marked useful.
Thanks. The report went to osfeed, and the line gets checked against the repository.
Automate macOS windows, keyboard shortcuts, menus and devices with your own Lua scripts.
Requires ~/.hammerspoon/init.lua; does nothing until configured.
Requires a Lua configuration.
Requires a Lua configuration.
Requires a Lua configuration.
Requires a Lua configuration.
Requires a Lua configuration.
Requires supported hardware; the official Elgato Stream Deck app must not be running.
Requires a Lua configuration.
Requires a Lua configuration.
Requires a Lua configuration.
Unavailable information may return nil.
Requires a Lua configuration.
Requires a Lua configuration.
Requires a Lua configuration.
Requires a serial device.
Requires a Lua configuration.
Requires a Lua configuration.
Requires a Lua configuration.
Requires a Lua configuration.
Requires Spotify.
Only Razer Tartarus V2 is supported.
Requires a Lua configuration.
Requires a Lua configuration.
Requires a Stream Deck Mk2; quit the official Elgato app.
Requires a Lua configuration.
Requires a Lua configuration.
Set an autosave name for the menu item.
Requires matching a running application.
Requires a Lua configuration.
Enable the default-for-query option.
Requires a Lua configuration.
Requires an open serial device that supports the relevant lines.
Requires supported hardware; quit the official Elgato Stream Deck app.
Requires a Lua configuration.
Requires a reachable WebSocket service.
Configure traversal and filtering through `hs.fs.fileListForPath()` options.
CRC32 is a checksum; available algorithms are listed by `hs.hash.types`.
Requires Spotify; returns nil on error.
Enable `alwaysNotify` for the watcher.
Requires a Lua configuration.
Requires a Lua configuration.
Set the trackpad argument in `hs.mouse.trackingSpeed()`.
Requires hardware Thru support, such as a microphone with a headphone jack.
Requires a Lua configuration.
Requires Hammerspoon to handle the incoming browsing activity.
Experimental private APIs and Accessibility actions; Mission Control may visibly open and Apple changes can break behavior.
Experimental API; forcing a move into a full-screen Space only works for floating windows.
The download archive no longer includes the spurious resource forks described in the release notes.
Download 1.1.1; minimum macOS version is 13.0.
Seeded by @iluxav with Codex
Adds trackpad speed control, direct audio monitoring and smart-magnify events; fixes WebSocket serving and window movement.
Download 1.1.0; requires macOS 13 or later.
Seeded by @iluxav with Codex
Restores Spaces window moves on Sonoma 14.5 and adds file enumeration, incremental hashes, Spotify artwork URLs and full URL callback data.
Download 1.0.0; requires macOS 12 or later.
Seeded by @iluxav with Codex
0.9.98 adds saved menu positions and more Stream Deck devices; 0.9.99 restores WebSocket connections; 0.9.100 adds binary digest output.
Download 0.9.100; requires macOS 11 or later.
Seeded by @iluxav with Codex
0.9.96 adds experimental Spaces control; 0.9.97 fixes Docker-related Spaces errors and menu bar image positioning.
Download Hammerspoon 0.9.97 from its GitHub release.
Seeded by @iluxav with Codex
Fixes camera usage checks and restores hs.automaticallyCheckForUpdates().
Download Hammerspoon 0.9.95 from its GitHub release.
Seeded by @iluxav with Codex
Adds Razer Tartarus V2 support, Stream Deck Mk2 support, mailto handling and HTTP PUT requests.
Download Hammerspoon 0.9.94 from its GitHub release.
Seeded by @iluxav with Codex
Existing capabilities before the ten-release window include window control, global shortcuts, menu items, device access and scripted notifications.
Historical baseline at 0.9.93; create ~/.hammerspoon/init.lua to configure automations.
Seeded by @iluxav with Codex