Hammerspoon

Search descriptions

Project links

Resource Link
Website http://www.hammerspoon.org/
GitHub page https://github.com/Hammerspoon/hammerspoon
Getting Started Guide http://www.hammerspoon.org/go/
Spoon Plugin Documentation https://github.com/Hammerspoon/hammerspoon/blob/master/SPOONS.md
Official Spoon repository http://www.hammerspoon.org/Spoons
IRC channel irc://chat.freenode.net/#hammerspoon
Mailing list https://groups.google.com/forum/#!forum/hammerspoon/
LuaSkin API docs http://www.hammerspoon.org/docs/LuaSkin/

API documentation

hs

Core Hammerspoon functionality

hs.alert

Simple on-screen alerts

hs.appfinder

Easily find hs.application and hs.window objects

hs.applescript

Execute AppleScript code

hs.application

Manipulate running applications

hs.application.watcher

Watch for application launch/terminate events

hs.audiodevice

Manipulate the system's audio devices

hs.audiodevice.datasource

Inspect/manipulate the data sources of an audio device

hs.audiodevice.watcher

Watch for system level audio hardware events

hs.base64

Base64 encoding and decoding

hs.battery

Battery/power information

hs.battery.watcher

Watch for battery/power state changes

hs.brightness

Inspect/manipulate display brightness

hs.caffeinate

Control system power states (sleeping, preventing sleep, screen locking, etc)

hs.caffeinate.watcher

Watch for display and system sleep/wake/power events

hs.canvas

A different approach to drawing in Hammerspoon

hs.canvas.drawing

An wrapper to replace hs.drawing with hs.canvas.

hs.canvas.matrix

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 hs.canvas module.

hs.chooser

Graphical, interactive tool for choosing/searching data

hs.console

Some functions for manipulating the Hammerspoon console.

hs.crash

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.

hs.deezer
hs.distributednotifications

Interact with NSDistributedNotificationCenter

hs.doc

Create documentation objects for interactive help within Hammerspoon

hs.doc.builder

Builds documentation support files. Still experimental.

hs.doc.hsdocs

Manage the internal documentation web server.

hs.doc.markdown

Markdown to HTML and plaintext conversion support used by hs.doc

hs.doc.spoonsupport

Provides run-time support for generating and including documentation for installed Hammerspoon Spoon bundles.

hs.dockicon

Control Hammerspoon's dock icon

hs.drawing

Primitives for drawing on the screen in various ways

hs.drawing.color

Additions to hs.drawing which provide access to the system color lists and a wider variety of ways to represent color within Hammerspoon.

hs.eventtap

Tap into input events (mouse, keyboard, trackpad) for observation and possibly overriding them

hs.eventtap.event

Create, modify and inspect events for hs.eventtap

hs.expose

Keyboard-driven expose replacement/enhancement

hs.fnutils

Functional programming utility functions

hs.fs

Access/inspect the filesystem

hs.fs.volume

Interact with OS X filesystem volumes

hs.geometry

Utility object to represent points, sizes and rects in a bidimensional plane

hs.grid

Move/resize windows within a grid

hs.hash

Various hashing algorithms

hs.hints

Switch focus with a transient per-application keyboard shortcut

hs.host

Inspect information about the machine Hammerspoon is running on

hs.host.locale

Retrieve information about the user's Language and Region settings.

hs.hotkey

Create and manage global keyboard shortcuts

hs.hotkey.modal

Create/manage modal keyboard shortcut environments

hs.http

Perform HTTP requests

hs.httpserver

Simple HTTP server

hs.httpserver.hsminweb

Minimalist Web Server for Hammerspoon

hs.httpserver.hsminweb.cgilua

Provides support functions in the cgilua module for Hammerspoon Minimal Web Server Lua templates.

hs.httpserver.hsminweb.cgilua.lp

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.

hs.httpserver.hsminweb.cgilua.urlcode

Support functions for the CGILua compatibility module for encoding and decoding URL components in accordance with RFC 3986.

hs.image

A module for capturing and manipulating image objects from other modules for use with hs.drawing.

hs.inspect

Produce human-readable representations of Lua variables (particularly tables)

hs.ipc

Provides the server portion of the Hammerspoon command line interface

hs.itunes

Controls for iTunes music player

hs.javascript

Execute JavaScript code

hs.json

JSON encoding and decoding

hs.keycodes

Convert between key-strings and key-codes. Also provides funcionality for querying and changing keyboard layouts.

hs.layout

Window layout manager

hs.location

Determine the machine's location and useful information about that location

hs.location.geocoder

Converts between GPS coordinates and more user friendly representations like an address or points of interest.

hs.logger

Simple logger for debugging purposes

hs.menubar

Create and manage menubar icons

hs.messages

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)

hs.milight

Simple controls for the MiLight LED WiFi bridge (also known as LimitlessLED and EasyBulb)

hs.mjomatic

tmuxomatic-like window management

hs.mouse

Inspect/manipulate the position of the mouse pointer

hs.network

This module provides functions for inquiring about and monitoring changes to the network.

hs.network.configuration

This sub-module provides access to the current location set configuration settings in the system's dynamic store.

hs.network.host

This sub-module provides functions for acquiring host information, such as hostnames, addresses, and reachability.

hs.network.ping

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.

hs.network.ping.echoRequest

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.

hs.network.reachability

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.

hs.noises

Contains two low latency audio recognizers for different mouth noises, which can be used to trigger actions like scrolling or clicking.

hs.notify

This module allows you to create on screen notifications in the User Notification Center located at the right of the users screen.

hs.osascript

Execute Open Scripting Architecture (OSA) code - AppleScript and JavaScript

hs.pasteboard

Inspect/manipulate pasteboards (more commonly called clipboards). Both the system default pasteboard and custom named pasteboards can be interacted with.

hs.pathwatcher

Watch paths recursively for changes

hs.redshift

Inverts and/or lowers the color temperature of the screen(s) on a schedule, for a more pleasant experience at night

hs.screen

Manipulate screens (i.e. monitors)

hs.screen.watcher

Watch for screen layout changes

hs.settings

Serialize simple Lua variables across Hammerspoon launches

hs.sharing

Share items with the macOS Sharing Services under the control of Hammerspoon.

hs.socket

Talk to custom protocols using asynchronous TCP sockets

hs.socket.udp

Talk to custom protocols using asynchronous UDP sockets

hs.sound

Load/play/manipulate sound files

hs.spaces.watcher

Watches for the current Space being changed

hs.speech

This module provides access to the Speech Synthesizer component of OS X.

hs.speech.listener

This module provides access to the Speech Recognizer component of OS X.

hs.spotify

Controls for Spotify music player

hs.spotlight

This module allows Hammerspoon to preform Spotlight metadata queries.

hs.spotlight.group

This sub-module is used to access results to a spotlightObject query which have been grouped by one or more attribute values.

hs.spotlight.item

This sub-module is used to access the individual results of a spotlightObject or a spotlightGroupObject.

hs.sqlite3

Interact with SQLite databases

hs.styledtext

This module adds support for controlling the style of the text in Hammerspoon.

hs.tabs

Place the windows of an application into tabs drawn on its titlebar

hs.task

Execute processes in the background and capture their output

hs.timer

Execute functions with various timing rules

hs.timer.delayed

Specialized timer objects to coalesce processing of unpredictable asynchronous events into a single callback

hs.uielement

A generalized framework for working with OSX UI elements

hs.uielement.watcher

Watch for events on certain UI elements (including windows and applications)

hs.urlevent

Allows Hammerspoon to respond to URLs

hs.usb

Inspect USB devices

hs.usb.watcher

Watch for USB device connection/disconnection events

hs.utf8

Functions providing basic support for UTF-8 encodings

hs.vox

Controls for VOX music player

hs.watchable

A minimalistic Key-Value-Observer framework for Lua.

hs.webview

Display web content in a window from Hammerspoon

hs.webview.datastore

Provides methods to list and purge the various types of data used by websites visited with hs.webview.

hs.webview.toolbar

Create and manipulate toolbars which can be attached to the Hammerspoon console or hs.webview objects.

hs.webview.usercontent

This module provides support for injecting custom JavaScript user content into your webviews and for JavaScript to post messages back to Hammerspoon.

hs.wifi

Inspect WiFi networks

hs.wifi.watcher

Watch for changes to the associated wifi network

hs.window

Inspect/manipulate windows

hs.window.filter

Filter windows by application, title, location on screen and more, and easily subscribe to events on these windows

hs.window.highlight

Highlight the focused window

hs.window.layout

WARNING: EXPERIMENTAL MODULE. DO NOT USE IN PRODUCTION.

hs.window.switcher

Window-based cmd-tab replacement

hs.window.tiling

WARNING: EXPERIMENTAL MODULE. DO NOT USE IN PRODUCTION.