🧰핵심 · 유틸리티14개
언어 보조, 데이터 변환, 저장 등 어디서나 쓰는 기반 도구
Hammerspoon 핵심 기능 (설정 리로드, 콘솔, 경로, 버전 등 최상위 API)
Lua 변수(특히 테이블)를 사람이 읽기 좋은 문자열로 출력
디버깅용 간단한 로거
JSON 인코딩 / 디코딩
Base64 인코딩 / 디코딩
Hammerspoon 안에서 쓸 수 있는 다양한 해시 알고리즘
유용한 수학 함수 모음
함수형 프로그래밍 유틸리티 (map, filter, reduce 등)
UTF-8 인코딩 기본 지원 함수
2차원 평면의 점·크기·사각형(rect)을 표현하는 유틸리티 객체
간단한 Lua 변수를 Hammerspoon 재시작 후에도 유지되도록 저장
Lua용 최소 기능의 키-값 옵저버(Key-Value-Observer) 프레임워크
Property List(plist) 파일 읽기 / 쓰기
SQLite 데이터베이스 다루기
🪟앱 · 창 · 스페이스17개
앱과 창을 찾고, 옮기고, 배치하고, 전환
실행 중인 애플리케이션 조작
앱 실행 / 종료 이벤트 감시
hs.application, hs.window 객체를 쉽게 찾기
창(window) 조회 / 조작 (이동, 크기 조절, 포커스 등)
앱·제목·화면 위치 등으로 창을 필터링하고, 해당 창들의 이벤트를 쉽게 구독
현재 포커스된 창을 강조 표시
창 단위로 동작하는 cmd-tab 대체 도구
⚠ 실험적 모듈. 프로덕션(실사용) 환경에서 사용 금지
⚠ 실험적 모듈. 프로덕션(실사용) 환경에서 사용 금지
창 레이아웃 매니저 (앱별 창 위치를 규칙으로 배치)
창을 격자(grid) 단위로 이동 / 크기 조절
키보드 기반의 Exposé(미션 컨트롤) 대체 / 확장
앱마다 임시 단축키를 띄워 빠르게 포커스 전환
한 앱의 여러 창을 타이틀바에 그린 탭으로 묶기
tmuxomatic 스타일의 창 관리
macOS 스페이스(Spaces) 제어용 기본 함수
현재 스페이스가 바뀌는 것을 감시
⌨️키보드 · 마우스 입력9개
단축키 등록, 입력 이벤트 가로채기, 마우스 제어
전역 키보드 단축키 생성 / 관리
모달(modal) 방식 단축키 환경 생성 / 관리 (특정 키를 누른 뒤에만 유효한 단축키 등)
입력 이벤트(마우스, 키보드, 트랙패드)를 가로채 관찰하거나 필요하면 덮어쓰기
hs.eventtap에서 쓰는 이벤트를 생성 / 수정 / 조회
키 문자열 ↔ 키코드 변환, 키보드 레이아웃 조회 / 변경
마우스 포인터 위치 조회 / 조작
HID 인터페이스. Caps Lock 상태 제어 / 조회
HID LED 인터페이스. 키보드 LED 상태 제어
입으로 내는 소리(휘파람, 혀 차는 소리 등)를 인식하는 저지연 오디오 인식기 2종. 스크롤·클릭 같은 동작 트리거에 사용
🖥️화면 · 그리기10개
모니터 제어와 화면 위에 도형·이미지·텍스트 그리기
화면(모니터) 조작
화면 배치 변경 감시
디스플레이 밝기 조회 / 조절
밤에 보기 편하도록 일정에 맞춰 화면 색상을 반전하거나 색온도를 낮춤
Hammerspoon에서 그림을 그리는 또 다른 방식 (hs.drawing의 후속)
hs.canvas의 변형(transform) 속성 값으로 쓸 수 있는 기본 행렬 연산 지원
⚠ 폐기 예정(DEPRECATED). 화면에 여러 방식으로 도형을 그리는 기본 요소. hs.canvas 사용 권장
시스템 색상 목록 접근 및 다양한 색상 표현 방식 제공
다른 모듈에서 가져온 이미지 객체를 캡처 / 조작 (hs.drawing과 함께 사용)
텍스트 스타일(굵기, 색, 폰트 등) 제어 지원
💬UI · 알림12개
사용자에게 보여주는 알림, 대화상자, 메뉴바, 웹뷰
화면에 간단한 알림 메시지 표시
화면 오른쪽 알림 센터(User Notification Center)에 알림 생성
사용자 상호작용용 대화상자·알림·패널 모음
사용자가 색상을 고르는 패널
데이터를 선택 / 검색하는 그래픽 상호작용 도구 (Spotlight·Alfred 같은 검색창)
메뉴바 아이콘 생성 / 관리
Hammerspoon의 Dock 아이콘 제어
Hammerspoon 콘솔 조작 함수 모음
Hammerspoon에서 웹 콘텐츠를 창으로 표시
hs.webview로 방문한 웹사이트가 남긴 각종 데이터를 목록 조회 / 삭제
Hammerspoon 콘솔이나 hs.webview 객체에 붙일 수 있는 툴바 생성 / 조작
웹뷰에 사용자 정의 JavaScript를 주입하고, JavaScript에서 Hammerspoon으로 메시지를 보낼 수 있게 지원
🎧오디오 · 미디어 · 음성11개
오디오 장치, 음악 플레이어, 음성 합성 / 인식, 카메라
시스템 오디오 장치 조작 (볼륨, 음소거, 기본 장치 등)
오디오 장치의 데이터 소스 조회 / 조작
시스템 수준 오디오 하드웨어 이벤트 감시
사운드 파일 로드 / 재생 / 조작
Spotify 음악 플레이어 제어
iTunes 음악 플레이어 제어
Deezer 음악 플레이어 제어
VOX 음악 플레이어 제어
OS X 음성 합성(Speech Synthesizer) 컴포넌트 접근 (텍스트 읽어주기)
OS X 음성 인식(Speech Recognizer) 컴포넌트 접근
시스템 카메라 장치 조회
🔋시스템 · 하드웨어 · 장치16개
전원, 배터리, USB, 위치, 그리고 외부 하드웨어 제어
배터리 / 전원 정보
배터리 / 전원 상태 변화 감시
시스템 전원 상태 제어 (절전, 절전 방지, 화면 잠금 등)
디스플레이 / 시스템 절전·깨움·전원 이벤트 감시
Hammerspoon이 실행 중인 기기의 정보 조회
사용자의 언어 및 지역 설정 조회
USB 장치 조회
USB 장치 연결 / 해제 이벤트 감시
기기의 위치와 그 위치에 관한 유용한 정보 확인
GPS 좌표 ↔ 주소·관심 지점 같은 사용자 친화적 표현 간 변환
Hammerspoon용 MIDI 확장
시리얼 포트(주로 RS-232)로 외부 장치와 통신
Elgato Stream Deck 설정 / 제어
Razer 장치 지원
Tangent 컨트롤 서피스 확장
MiLight LED WiFi 브리지(LimitlessLED, EasyBulb로도 불림)의 간단한 제어
📁파일 · 클립보드 · 검색9개
파일 시스템, 변경 감시, Spotlight 검색, 클립보드
파일 시스템 접근 / 조회
OS X 파일 시스템 볼륨 다루기
파일과 디렉터리의 확장 속성(extended attributes) 조회 / 조작
경로를 재귀적으로 감시해 변경 감지 (설정 파일 자동 리로드에 자주 사용)
Spotlight 메타데이터 쿼리 수행
하나 이상의 속성 값으로 그룹화된 Spotlight 쿼리 결과에 접근
Spotlight 쿼리 결과(개별 항목 또는 그룹 항목)에 접근
페이스트보드(클립보드) 조회 / 조작. 시스템 기본 클립보드와 이름 붙인 커스텀 클립보드 모두 사용 가능
클립보드 변경 감시
🌐네트워크20개
HTTP, 소켓, WiFi, Bonjour 등 네트워크 통신과 상태 감시
네트워크 상태 조회 및 변경 감시
시스템 동적 저장소에 있는 현재 위치(location) 세트의 설정 접근
호스트 이름, 주소, 도달 가능성 등 호스트 정보 확인
호스트 가용성을 확인하는 기본 ping 함수. 대상까지의 경로가 있는지, 응답하는지 확인
hs.network.ping이 사용하는 ICMP Echo Request 인프라에 대한 저수준 접근. 특별한 요구가 없다면 직접 쓸 일이 거의 없음
대상 호스트의 도달 가능성 확인. 패킷이 로컬 기기를 떠날 수 있으면 도달 가능으로 간주하며, 실제 수신까지 보장하지는 않음
WiFi 네트워크 조회
연결된 WiFi 네트워크 변경 감시
멀티캐스트 DNS(Bonjour)로 알려지는 네트워크 서비스를 찾거나 게시
hs.bonjour가 발견했거나 게시한 서비스 레코드를 표현하는 객체
HTTP 요청 수행
간단한 HTTP 서버
Hammerspoon용 최소 기능 웹 서버
Hammerspoon 최소 웹 서버의 Lua 템플릿을 위한 cgilua 모듈 지원 함수
Lua 템플릿 페이지를 Lua 코드로 변환·포함해 HTTP 요청에 동적 콘텐츠를 제공하는 CGILua 호환 모듈의 지원 함수
RFC 3986에 따른 URL 구성요소 인코딩 / 디코딩 지원 함수 (CGILua 호환 모듈용)
비동기 TCP 소켓 또는 UNIX 파일 소켓으로 사용자 정의 프로토콜과 통신
비동기 UDP 소켓으로 사용자 정의 프로토콜과 통신
간단한 웹소켓 클라이언트
프로세스 간 통신(IPC)을 위한 로컬 / 원격 메시지 포트 생성 (hs 커맨드라인 도구가 사용)
⚙️스크립트 실행 · 타이머 · 연동12개
셸 / AppleScript 실행, 타이머, URL 이벤트, 다른 앱 · 서비스와 연동
프로세스를 백그라운드로 실행하고 출력 캡처 (셸 명령 실행)
다양한 타이밍 규칙으로 함수 실행 (주기 실행, 지연 실행 등)
예측 불가능한 비동기 이벤트를 하나의 콜백으로 묶어 처리하는 특수 타이머 (디바운스 용도)
AppleScript 코드 실행
OSA(Open Scripting Architecture) 코드 실행 — AppleScript와 JavaScript
JavaScript 코드 실행
Hammerspoon이 URL(hammerspoon://...)에 반응하도록 함
단축어(Shortcuts) 앱의 단축어 목록 조회 및 실행
Spoon(플러그인) 유틸리티 및 관리 함수
NSDistributedNotificationCenter(앱 간 분산 알림)와 상호작용
iMessage와 SMS 릴레이로 메시지 전송 (SMS 릴레이는 OS X 10.10 이상, Mac과 iOS 8 iPhone 간 SMS 릴레이 페어링 필요)
Hammerspoon에서 macOS 공유 서비스(Sharing Services)로 항목 공유
♿접근성 · UI 요소5개
다른 앱의 UI 요소를 읽고 감시하는 접근성 API
OS X UI 요소를 다루기 위한 범용 프레임워크
특정 UI 요소(창과 앱 포함)의 이벤트 감시
실행 중인 앱, 창, 메뉴 및 OS X 접근성 API를 지원하는 UI 요소의 접근성 객체에 접근
AXTextMarker / AXTextMarkerRange 객체를 매개변수형 접근성 속성의 인자로 쓸 수 있게 hs.axuielement를 확장
접근성 요소의 알림을 받는 옵저버 생성. 요소·알림마다 지원 여부가 달라 시행착오가 필요하지만, 규격을 지키는 앱이면 UI 변화를 감지할 수 있음
🛠️문서 · 개발자용5개
내장 도움말 문서 시스템과 Hammerspoon 개발자용 기능