{
  "slug": "hammerspoon",
  "name": "Hammerspoon",
  "aliases": [],
  "vendor": { "name": "Hammerspoon contributors", "slug": "hammerspoon", "website": "https://www.hammerspoon.org/" },
  "homepage_url": "https://www.hammerspoon.org/",
  "docs_url": "https://www.hammerspoon.org/docs/",
  "repo_url": "https://github.com/Hammerspoon/hammerspoon",
  "license_url": "https://github.com/Hammerspoon/hammerspoon/blob/master/LICENSE",
  "product_type": "application",
  "product_status": "active",
  "summary": "Open-source macOS automation app that exposes system APIs to a Lua configuration file for hotkeys, window management and event-driven scripts",
  "description": "Hammerspoon is an open-source macOS automation tool (MIT license) that acts as a bridge between the operating system and an embedded Lua interpreter. It does nothing until the user writes `~/.hammerspoon/init.lua`; from there, Lua code can bind global hotkeys, move and resize windows, react to application, screen, Wi-Fi, USB, battery or filesystem events, draw on-screen overlays, control audio devices, read the clipboard, run shell commands and AppleScript, and expose a menu-bar item or a local URL/IPC endpoint.\n\nThe extension modules are documented API by API, and reusable plug-ins called Spoons package common setups such as window grids or caffeine toggles. Because everything is text, configurations are easy to version-control and share, which appeals to developers who want programmable, keyboard-driven control of their Mac without a GUI macro editor.\n\nIt is distributed as a signed app from GitHub releases (also via Homebrew cask), requires Accessibility permission, and supports recent macOS versions on Intel and Apple Silicon. Limits: Lua is a prerequisite, there is no visual editor, and features depending on private or changing macOS APIs can break between OS releases.",
  "capabilities": ["Global hotkeys and key remapping in Lua", "Window placement and multi-display management", "Watchers for application, screen, Wi-Fi, USB, battery and path events", "Menu-bar items, alerts and on-screen drawing", "Shell, AppleScript and URL-scheme integration", "Reusable Spoon plug-ins"],
  "workflows": ["Tile windows with keyboard shortcuts", "Switch audio output or Wi-Fi settings when a display connects", "Trigger scripts from a URL scheme or another app"],
  "advantages": ["Fully scriptable and version-controllable configuration", "Free and MIT-licensed", "Broad coverage of macOS APIs in one tool"],
  "limitations": ["Requires writing Lua", "No graphical macro editor", "Some modules depend on APIs that change across macOS releases"],
  "prerequisites": ["Recent macOS release", "Accessibility permission for the app"],
  "audiences": ["Developers and power users who prefer code to GUIs", "Keyboard-centric window-management enthusiasts"],
  "alternatives": ["keyboard-maestro", "raycast", "alfred", "karabiner-elements", "applescript"],
  "categories": [{ "slug": "macos-automation", "primary": true }],
  "tags": ["macos", "automation", "lua", "open-source", "window-management", "hotkeys"],
  "use_cases": ["automate-desktop-tasks"],
  "operating_systems": ["macos"],
  "execution_modes": ["local"],
  "interfaces": ["desktop", "library"],
  "deployment_models": ["desktop"],
  "integrations": ["AppleScript", "Shell", "URL schemes", "Homebrew cask"],
  "data_formats": ["Lua scripts"],
  "languages": ["Lua", "Objective-C"],
  "source_model": "open-source",
  "license_spdx": "MIT",
  "pricing_model": ["open-source", "free"],
  "self_hostable": true,
  "sources": [
    { "url": "https://www.hammerspoon.org/", "type": "official_site", "title": "Hammerspoon", "supports": ["name", "summary", "capabilities", "prerequisites"], "checked_at": "2026-11-02" },
    { "url": "https://www.hammerspoon.org/docs/", "type": "official_docs", "title": "Hammerspoon API docs", "supports": ["capabilities"], "checked_at": "2026-11-02" },
    { "url": "https://github.com/Hammerspoon/hammerspoon/blob/master/LICENSE", "type": "license_page", "supports": ["license_spdx", "source_model"], "checked_at": "2026-11-02" }
  ],
  "confidence": "high",
  "discovery_method": "editorial-research",
  "depth": "standard",
  "editorial_status": "reviewed",
  "visibility": "public",
  "featured": false,
  "author": "batch-C"
}
