GitHub

abue-ammar/tinycast — Tinycast — a tiny, fully native macOS launcher, hotkeys, and clipboard history.

Tinycast — 100MB 이하 메모리로 동작하는 초경량 네이티브 macOS 런처

SwiftUI와 AppKit만으로 작성된 네이티브 macOS 런처 Tinycast가 GitHub에 올랐습니다. 서드파티 의존성 없이 100MB 이하의 RAM으로 앱 실행, 글로벌 핫키, 클립보드 히스토리, 윈도우 관리까지 제공하며, 기존 Raycast 확장을 네이티브 SwiftUI로 렌더링해 실행할 수 있는 것이 특징입니다.

본문

macOS용 런처 도구 Tinycast가 GitHub에서 1,000점이 넘는 커뮤니티 점수를 기록했습니다. 개발자 abue-ammar가 공개한 이 프로젝트는 '하나의 핫키로 하루 종일 손이 닿는 모든 것'을 표방하며, SwiftUI와 AppKit만으로 작성된 완전 네이티브 앱입니다. Electron을 쓰지 않고 텔레메트리도 없으며 서드파티 의존성이 전혀 없는 상태에서 100MB 이하의 RAM으로 동작한다고 소개합니다. 무료 오픈소스이며 앞으로도 그 상태를 유지하겠다고 명시했습니다.

주요 기능 — 런처부터 윈도우 관리까지

기능 목록은 유료 런처에 버금갈 정도로 넓습니다. 퍼지 검색 기반 앱 런처는 즐겨찾기 고정, 실행 중인 앱 확인, 개별 또는 전체 앱 종료를 지원합니다. 글로벌 핫키 하나로 어디서든 팔레트를 호출할 수 있고, 앱별 핫키를 지정해 포커스와 숨김을 토글할 수도 있습니다. 파일 검색은 자체 인덱스 없이 사용자가 지정한 폴더를 Spotlight를 통해 검색하는 방식입니다.

클립보드 히스토리는 텍스트와 이미지를 모두 검색해 원래 사용 중이던 앱에 다시 붙여넣습니다. 계산기는 팔레트 안에서 수식, 단위 변환, 실시간 통화·암호화폐 환산까지 처리합니다. Quicklinks는 URL·검색·파일·딥링크를 명령으로 만들어 입력값, 클립보드, 날짜 플레이스홀더를 활용할 수 있고, Apple Shortcuts 앱에서 만든 단축어도 별칭과 글로벌 핫키를 붙여 실행할 수 있습니다. Snippets는 동적 플레이스홀더와 인자, 중첩 참조, 키워드 확장을 지원하는 Markdown 템플릿이며, 셸 명령을 등록해 쓰는 커스텀 명령도 제공됩니다.

윈도우 관리는 Rectangle 스타일의 액션 34개로 절반·사분할·삼분할 배치, 크기 조절, 미세 이동, 디스플레이 간 이동, 전체화면, Spaces 제어를 포함합니다. 잠금·재시동·휴지통 비우기·다크모드 토글 같은 시스템 액션, 다음 미팅을 팔레트와 메뉴바에 표시하고 한 키로 참여하는 캘린더 연동, 플로팅 에디터 기반 Markdown 노트, 이모지 피커도 있습니다. AI 채팅과 선택 텍스트 교정·번역·요약 Quick Actions는 자체 API 키나 설치된 AI 계정을 사용하며, 모든 AI 기능은 기본값이 꺼진 상태입니다. 특히 눈에 띄는 점은 기존 Raycast 확장을 네이티브 SwiftUI로 렌더링해 그대로 실행할 수 있다는 것으로, 설정 백업과 Raycast에서의 설정 가져오기도 지원해 이주 비용을 낮췄습니다.

설치와 권한

설치는 Homebrew 기준입니다. 서드파티 탭이므로 brew trust --tap으로 신뢰 설정 후 tap을 추가한 뒤, Mac 환경에 따라 cask가 갈립니다. Apple silicon에 macOS 26 이상이면 tinycast, Intel의 macOS 26이면 tinycast-universal, macOS 15 Sequoia용 tinycast-sequoia는 더 이상 유지보수되지 않는 버전으로 분리되어 있습니다. Homebrew가 환경을 검사해 잘못된 cask를 거부하며, quarantine 플래그도 자동으로 제거합니다. DMG로 직접 설치하는 경우에는 자체 서명 앱이므로 xattr로 quarantine을 한 번 해제해야 합니다. tinycast@beta cask를 설치하면 별도 설정과 권한을 가진 베타 앱을 나란히 둘 수 있습니다.

권한은 Accessibility 하나뿐입니다. 다른 앱에 텍스트를 붙여넣거나 확장할 때, 그리고 Snippets의 키워드 확장에만 필요하며 관련 기능을 처음 쓸 때 요청됩니다. Snippets는 기본 비활성 상태로 배포되고, 키 입력은 로컬에서만 매칭되며 저장하거나 외부로 보내지 않는다고 명시했습니다.

기여 정책과 지속 가능성

기여 절차는 꽤 엄격합니다. 코드 작성 전 이슈를 먼저 여는 것이 필수이며, approved로 표시된 이슈를 닫지 않는 PR은 패치 품질과 무관하게 자동으로 닫힙니다. 기능 세트 자체를 의도적으로 닫아두었기 때문에 '다른 런처에는 있다'는 이유만으로는 받아들여지지 않습니다. 모든 PR은 메모리 예산 기준을 통과해야 하고 시각적 변경에는 전후 비교 영상이 요구되며, 보안 이슈는 이슈 트래커가 아닌 SECURITY.md 경로를 따릅니다.

프로젝트는 무료를 유지하되 Polar.sh를 통한 일회성 팁으로 유지보수를 후원받는데, 작성자의 국가에서는 GitHub Sponsors를 사용할 수 없기 때문이라고 설명합니다. 유료 대안의 기능을 네이티브 성능과 Raycast 생태계 호환성으로 흡수하려는 시도라는 점에서, macOS를 쓰는 개발자라면 실제 도입 후보로 살펴볼 만한 프로젝트입니다.

원문: GitHub / 번역·요약: Trawling