Loopndroll — OpenAI Codex 무한 실행 메뉴바 앱

macOS 메뉴바에서 OpenAI Codex 세션을 무한히 또는 턴 예산만큼 계속 실행시키는 앱. Codex Stop 훅을 글로벌로 설치하여 자동으로 세션을 연장.

개요

Loopndroll은 macOS 전용 메뉴바 앱으로, ~/.codex에 글로벌 Codex Stop 훅을 설치하여 Codex 세션이 멈추지 않고 계속 실행되도록 한다. 무한 실행 또는 스레드별 턴 예산 설정이 가능하다.

핵심 기능

  • 글로벌 Stop 훅 설치: ~/.codex/config.tomlcodex_hooks = true 추가, ~/.codex/hooks.json에 관리형 Stop 훅 생성/병합
  • 무한 실행 모드: Codex 세션을 무기한 유지
  • 턴 예산 모드: 스레드별 턴 수 제한 설정
  • 메뉴바 UI: SwiftUI 기반, Start/Stop 토글로 즉시 상태 변경
  • 훅 지속성: 앱이 꺼져도 훅은 유지됨 (비활성 시 helper가 no-op)
  • 런타임 상태: ~/Library/Application Support/loopndroll/state.json에 저장

작동 원리

Codex Stop 훅을 사용하여 {"decision":"block","reason":"..."}를 반환하면 런타임이 Codex를 계속 실행. 새 스레드에 훅이 안정적으로 적용됨. 기존 실행 중인 스레드는 훅 설치 전에 시작된 경우 동적으로 인식하지 못할 수 있음.

설치

# 사전 빌드 앱 다운로드
# dist/Loopndroll.app.zip에서 압축 해제 후 /Applications으로 이동
 
# 소스 빌드
swift build
swift run Loopndroll
 
# 테스트
swift test

Swift 기반 (SwiftUI). 앱 번들에 ad-hoc 서명만 되어 있어 다른 Mac에서는 Gatekeeper 우회 필요 (우클릭 → 열기).

프로젝트 구조

  • Sources/LoopndrollCore — 훅 설치/복구, 상태 저장, 훅 결정 엔진, 프롬프트 렌더링
  • Sources/LoopndrollApp — SwiftUI 메뉴바 앱
  • Sources/LoopndrollHook — 테스트 및 CLI 전용 헬퍼 실행 파일
  • scripts/package_app.sh — 릴리즈 패키징

관련 노트

출처