Hammerspoon

ProductivitymacOS

Automate macOS with Lua.

Latest 1.1.1 · · macOSby HammerspoonWebsiteHammerspoon/hammerspoon

Release activity

Release activity — 2 releases across 2 days in the last year. Each cell is one day; darker means more releases that day. Older weeks are hidden at this screen width.
MayJunJulAug
SundayNo releases on Apr 19, 2026No releases on Apr 26, 2026No releases on May 3, 2026No releases on May 10, 2026No releases on May 17, 2026No releases on May 24, 2026No releases on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026
MondayNo releases on Apr 20, 2026No releases on Apr 27, 2026No releases on May 4, 2026No releases on May 11, 2026No releases on May 18, 2026No releases on May 25, 2026No releases on Jun 1, 2026No releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026
TuesdayNo releases on Apr 21, 2026No releases on Apr 28, 2026No releases on May 5, 2026No releases on May 12, 2026No releases on May 19, 2026No releases on May 26, 2026No releases on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026
WednesdayNo releases on Apr 22, 2026No releases on Apr 29, 2026No releases on May 6, 2026No releases on May 13, 2026No releases on May 20, 2026No releases on May 27, 2026No releases on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 2026No releases on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026
ThursdayNo releases on Apr 23, 2026No releases on Apr 30, 2026No releases on May 7, 2026No releases on May 14, 2026No releases on May 21, 2026No releases on May 28, 2026No releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026
FridayNo releases on Apr 24, 2026No releases on May 1, 2026No releases on May 8, 2026No releases on May 15, 2026No releases on May 22, 2026No releases on May 29, 2026No releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026
SaturdayNo releases on Apr 25, 2026No releases on May 2, 2026No releases on May 9, 2026No releases on May 16, 2026No releases on May 23, 2026No releases on May 30, 2026No releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026

2 releases in the last year

Changelog

1.1.1

Fixed 1
  • Download archive of Hammerspoon should no longer contain spurious resource forks that can confuse macOS Gatekeeper

layout: post title: 1.1.1 permalink: /releasenotes/1.1.1.html

Minimum macOS version: 13.0

Fixed
  • Download archive of Hammerspoon should no longer contain spurious resource forks that can confuse macOS Gatekeeper
View originalPermalink
How 1.1.1 went

1.1.0

Added 5
  • Lua skin additions
  • Add NSUserActivityTypeBrowsingWeb handling
  • Support creation of smart magnify events
  • Add hs.audiodevice:thru() and hs.audiodevice:setThru(thru)
  • Improve window move and resize by managing AXEnhancedUserInterface attribute
Changed 1
  • window_filter: track applications by PID
Fixed 11
  • Validate that all arguments provided for an hs.task are strings
  • Fixes for Xcode 16
  • hs.urlevent callback parameters are now lowercase
  • Fix package.paths under userruntime with unexpanded tilde
  • Fixed websocket support in hs.httpserver:start()
  • hs.ipc: Avoid reentrance when in printReplacement
Fixed
  • Validate that all arguments provided for an hs.task, are strings #3664
  • Fixes for Xcode 16 #3690
  • hs.urlevent callback parameters are now lowercase #3691
  • Fix package.paths under userruntime w/ unexpanded tilde #3703
  • Fixed websocket support in hs.httpserver:start() #3665
  • hs.ipc: Avoid reentrance when in printReplacement #3718
  • Fix Lua stack corruption in window:application() when process terminated #3827
  • Reuse [statusItem menu] if possible (fixes #1923) #3812
  • The window_filter event handler might receive an invalid pid #3814
  • hs.mouse - fixes setMouseSpeed and adds trackpad support #3758
Added
  • Lua skin additions #3667
  • Add NSUserActivityTypeBrowsingWeb handling #3635
  • Support creation of smart magnify events #3679
  • Add hs.audiodevice:thru() and hs.audiodevice:setThru(thru) #3716
  • Improve window move and resize by managing AXEnhancedUserInterface attribute #3836
  • hs.mouse - fixes setMouseSpeed and adds trackpad support #3758
Other
  • window_filter: track applications by PID #3745
  • Fixed Stream Deck Mini Button 1 Callback Trigger #3767
  • Update copyrights. #3804
  • Actually create a proper PR for build fixes #3834
  • Fix typo in logger's documentation #3778
View originalPermalink
How 1.1.0 went

1.0.0

Fixed
  • [READY] hs.battery -- Fix for systems that report an empty array for powerSources #3449
  • add exit call to fix empty space issue #3465 #3466
  • Include docs.css in build for built in web help #3476
  • fix attempt to index a nil value (local 'child') #3481 #3485
  • Fix hs.network.ping to always call didFinish callback #3531
  • Allow passing nil as name to hs.pasteboard.callbackWhenChanged #3616
  • [Review] Fix moving window to space in Sonoma 14.5 #3638
  • Improve Console window performance and RAM usage #3659
Changed
  • Fix blockAlert documentation #3484
  • Rewrite of hs.hash to simplify adding new hashes #3483
Added
  • [Ready] hs.watchable -- added alwaysNotify to watcher #3440
  • Update alert.lua: allow window object as parameter #3542
  • Add getCurrentTrackArtworkURL() to spotify extension #3546
  • Added new Stream Deck XL PID #3570
  • Pass in fullURL to url event callback handler #3640
  • Improve preferences resetting dialog #3657
  • Update Lua to 5.4.7 #3658
Other
  • fix(ci): Manage secrets/permissions #3396
View originalPermalink
How 1.0.0 went

0.9.100


layout: post title: 0.9.100 permalink: /releasenotes/0.9.100.html
Fixed
  • None
Changed
  • None
Added
  • hs.hash now has binary-preserving variants of MD5/SHA1/SHA256/SHA512 (where the existing functions encode the hash to a hex string). These functions have been added to support the new OBS Spoon
View originalPermalink
How 0.9.100 went

0.9.99

Fixed
  • Revert SocketRocket pod update. Closes #3422 #3424
  • Fix hs.application.get() interpreting Lua patterns #3425
Other
View originalPermalink
How 0.9.99 went

0.9.98

Fixed
  • hs.image:colorAt() now takes into account scale #3185
  • Fixed crash in hs.image.getExifFromPath() #3177
  • Fix hs.spaces so it works when hs.spaces.screensHaveSeparateSpaces() is false #3196
  • Fix two crash bugs in hs.camera #3211
  • add DemoPro to SKIP_APPS_TRANSIENT_WINDOWS #3236
  • Fix bug where window switcher does not go away when caps lock is on #3238
  • Fix hs.application.get() always returning nil #3216
  • Fix lua-objc mapping to handle high/low surrogate pairs in hs.styledtext #3356
  • Spaces now finds Dock instead of Docker #3371
  • Truncate Console scrollback history #3400
  • Fix windowHints bugs with utf8 chars #3243
  • Fix ICMP socket leak in hs.ping #3419
Changed
  • Allow hs.chooser query to still be forwarded when no matching string exists #3232
  • Bump minimum requirements to macOS 11.0 #3312
  • Speed up window switching timers #3237
Added
  • Added ability to save a hs.menubar position between reloads #3195
  • Added functions to get application localization information #3191
  • hs.http must follow redirects #1889 #3279
  • Added hs.mouse.currentCursorType() #3265
  • Added hs.serial:rts() and hs.serial:dtr() #3314
  • feat(spaces): add force arg for moveWindowToSpace #3298
  • hs.fnutils.reduce takes an optional initial value #3363
  • Added support for Stream Deck Mini V2 #3378
  • Added support for Stream Deck Plus #3383
  • Add hs.streamdeck:imageSize() #3407
  • Add support for Stream Deck Pedal #3409
Other
View originalPermalink
How 0.9.98 went

0.9.97


layout: post title: 0.9.97 permalink: /releasenotes/0.9.97.html
Core
  • None
Extensions
  • Fixed: hs.menubar no longer overlaps images and text, if both are set. Fixes #3171
  • Fixed: hs.spaces no longer errors if Docker.app is installed. Fixes #3170
  • Added: hs.menubar:imagePosition()
View originalPermalink
How 0.9.97 went
View all

Discussion