이 글이 마지막으로 손본 때는이에요. 일부 내용이 더 이상 맞지 않을 수 있으니, 궁금한 점은 글쓴이에게 여쭤 주세요.
AI 번역简体中文한국어
요약 ·
OpenInOtty는 극도로 심플한 macOS Finder 툴바 앱입니다. 아이콘 한 번 클릭으로 현재 Finder 경로에서 Otty 터미널을 엽니다. Otty가 실행 중이면 새 탭을 열고, 실행 중이 아니면 해당 디렉토리로 실행 및 진입합니다. MIT 오픈소스이며 단일 파일 Swift로 구현되었습니다.
OpenInOtty는 극도로 심플한 macOS Finder 툴바 앱입니다. Finder에서 툴바 아이콘을 클릭하면 Otty로 현재 디렉토리에 터미널을 엽니다.
코드를 작성하거나 설정을 변경할 때, Finder에서 이미 특정 폴더에 위치해 있는데도 터미널을 열고 cd로 경로를 일일이 입력해야 하는 경우가 많습니다. Otty는 훌륭한 터미널이지만, 'Finder 현재 위치에서 Otty로 한 번에 이동'하는 기본 진입점이 없습니다.
OpenInOtty는 이 작업을 툴바의 아이콘 하나로 해결합니다:
클릭 → 현재 Finder 창의 경로 가져오기
Otty가 실행 중 → otty-cli tab new --cwd <path>로 새 탭 열기
Otty가 실행 중이 아님 → otty-cli open <path>로 실행 후 해당 디렉토리로 이동
사용 가능한 Finder 창 없음 → 바탕화면으로 폴백
실패 시 NSAlert표시, 오류를 조용히 삼키지 않음
앱 자체는 LSUIElement: Dock 아이콘 없음, 메뉴바 상주 없음. 한 번 클릭하고 명령을 보낸 후 바로 종료되며, 백그라운드에 남지 않습니다.
커맨드(⌘) 키를 누른 채/Applications/OpenInOtty.appOpenInOtty.app을 Finder 툴바로 드래그하세요.
처음 클릭 시 macOS가 Apple Events/Automation 권한을 요청합니다.허용(Allow)을 선택하세요.를
처음에 거절했다면, 초기화 후 아이콘을 다시 클릭하세요:
BASH
tccutil reset AppleEvents com.local.OpenInOtty
시스템 설정에서도 확인 가능: Privacy & Security → Automation(OpenInOtty → Finder).
작동 원리 (간략 버전)
구현은 단일 main.swift(약 100줄)에 집중되어 있으며, AppDelegate나 상주 이벤트 루프가 없습니다:
ScriptingBridge로 활성 Finder 창의 경로를 읽습니다 (finderPath()
Otty(번들 ID io.appmakes.ottycom.generalarcade.otty
/Applications/Otty.app/Contents/MacOS/otty-cli를 호출하여 새 탭을 열거나 앱을 실행합니다
성공 시 즉시 종료됩니다exit(0)
Note
경로解析은 일반적인 'Swift @objc optional protocol + respondsToSelector' 방식을 사용하지 않았습니다. ScriptingBridge의 private 서브클래스는 동적 포워딩 메서드에 대해 false를 반환하여 모든 호출이 nil이 되고, TCC 승인 팝업조차 표시되지 않습니다. 대신 perform(NSSelectorFromString:)를 사용해야 실제 Apple Event가 전송됩니다.
AI agent를 위한 빠른 참조
항목
값
Bundle ID
com.local.OpenInOtty
설치 경로
/Applications/OpenInOtty.app
Otty 경로
/Applications/Otty.app
Otty CLI
.../Contents/MacOS/otty-cli
UI 타입
LSUIElement = true
⌘를 누른 상태에서 툴바로 드래그하는 단계는 사용자가 직접 해야 합니다. agent는 다른 bundle ID나 Otty 경로를 임의로 만들어내지 마세요.
자주 묻는 질문
클릭해도 반응이 없어요?
Otty가 /Applications/Otty.app에 있는지 확인하고, Automation 권한을 확인하세요. 권한 항목이 사라진 경우 위의 tccutil reset를 사용하여 초기화한 후 다시 클릭하세요.
바탕화면이 열리는데 현재 폴더가 아니에요?
최소화되지 않은 Finder 창이 하나 이상 필요합니다. 최소화된 창은 현재 디렉토리로 인식되지 않습니다.
요약
Otty를 일상적으로 사용하고 Finder에서 프로젝트 디렉토리를 탐색하는 데 익숙하다면, OpenInOtty는 '위치 확인 → 터미널'을 툴바 한 번 클릭으로 줄여줍니다. 짧은 코드, 백그라운드 없음, MIT 오픈소스.
OpenInOtty는 극도로 심플한 macOS Finder 툴바 앱입니다. Finder에서 툴바 아이콘을 클릭하면 Otty로 현재 디렉토리에 터미널을 엽니다.
프로젝트 주소https://github.com/pintaste/OpenInOtty(MIT 라이선스. OpenInTerminal-Lite에서 영감을 받았습니다.)OpenInTerminal-Lite
어떤 문제를 해결하나
코드를 작성하거나 설정을 변경할 때, Finder에서 이미 특정 폴더에 위치해 있는데도 터미널을 열고 cd로 경로를 일일이 입력해야 하는 경우가 많습니다. Otty는 훌륭한 터미널이지만, 'Finder 현재 위치에서 Otty로 한 번에 이동'하는 기본 진입점이 없습니다.
OpenInOtty는 이 작업을 툴바의 아이콘 하나로 해결합니다:
앱 자체는 LSUIElement: Dock 아이콘 없음, 메뉴바 상주 없음. 한 번 클릭하고 명령을 보낸 후 바로 종료되며, 백그라운드에 남지 않습니다.
환경 요구사항
설치
처음에 거절했다면, 초기화 후 아이콘을 다시 클릭하세요:
시스템 설정에서도 확인 가능: Privacy & Security → Automation(OpenInOtty → Finder).
작동 원리 (간략 버전)
구현은 단일 main.swift(약 100줄)에 집중되어 있으며, AppDelegate나 상주 이벤트 루프가 없습니다:
경로解析은 일반적인 'Swift @objc optional protocol + respondsToSelector' 방식을 사용하지 않았습니다. ScriptingBridge의 private 서브클래스는 동적 포워딩 메서드에 대해 false를 반환하여 모든 호출이 nil이 되고, TCC 승인 팝업조차 표시되지 않습니다. 대신 perform(NSSelectorFromString:)를 사용해야 실제 Apple Event가 전송됩니다.
AI agent를 위한 빠른 참조
⌘를 누른 상태에서 툴바로 드래그하는 단계는 사용자가 직접 해야 합니다. agent는 다른 bundle ID나 Otty 경로를 임의로 만들어내지 마세요.
자주 묻는 질문
클릭해도 반응이 없어요?
Otty가 /Applications/Otty.app에 있는지 확인하고, Automation 권한을 확인하세요. 권한 항목이 사라진 경우 위의 tccutil reset를 사용하여 초기화한 후 다시 클릭하세요.
바탕화면이 열리는데 현재 폴더가 아니에요?
최소화되지 않은 Finder 창이 하나 이상 필요합니다. 최소화된 창은 현재 디렉토리로 인식되지 않습니다.
요약
Otty를 일상적으로 사용하고 Finder에서 프로젝트 디렉토리를 탐색하는 데 익숙하다면, OpenInOtty는 '위치 확인 → 터미널'을 툴바 한 번 클릭으로 줄여줍니다. 짧은 코드, 백그라운드 없음, MIT 오픈소스.