Loopndroll: OpenAI Codex를 절대 멈추지 않게 하는 macOS 앱
Codex로 대규모 코딩 작업을 진행할 때 불편한 점이 하나 있습니다. 대화 턴이 끝날 때마다 Codex가 자동으로 멈다는 것입니다. 작업이 완료되지 않았는데도 새로운 프롬프트를 다시 보내야 하는 번거로움은 개발 생산성을 크게 떨어뜨립니다.
Loopndroll은 이 문제를 정확히 한 가지 방법으로 해결합니다. Codex의 Stop 훅(Hook)에 개입하여 세션을 계속 실행시키는 오픈소스 macOS 메뉴바 앱입니다.
작동 원리: Codex Hooks를 활용한 우아한 솔루션
Codex에는 Hooks 시스템이 있습니다. 에이전트 루프에 커스텀 스크립트를 주입할 수 있는 확장성 프레임워크죠.
지원하는 훅 이벤트는 다섯 가지입니다:
- SessionStart: 세션 시작 시 발화
- PreToolUse: 도구 사용 전 발화
- PostToolUse: 도구 사용 후 발화
- UserPromptSubmit: 사용자 프롬프트 제출 시 발화
- Stop: 대화 턴이 끝날 때 발화
Loopndroll은 이 중 Stop 이벤트를 활용합니다.
대화 턴이 끝나려는 순간, Stop 훅이 다음과 같은 응답을 반환합니다:
{
"decision": "block",
"reason": "Continuing session"
}
Codex는 이 응답을 받으면 새로운 연속 프롬프트가 들어온 것처럼 처리하여 세션을 계속 실행합니다. 이는 매우 우아한 솔루션입니다. 전체 아키텍처를 수정할 필요 없이, Stop 이벤트 한 곳만 개입하면 되니까요.
설치: 놀랍도록 간단합니다
Loopndroll 설치는 정말 30초면 끝납니다.
사전 빌드 앱 (권장)
- GitHub 릴리스 페이지에서 zip 파일 다운로드
- 압축 해제
-
/Applications폴더로 이동 - 처음 실행할 때 우클릭 > 열기 (unsigned 앱이므로 Gatekeeper 우회 필요)
끝입니다.
앱을 처음 실행하면 Loopndroll이 자동으로 두 가지를 설정합니다:
-
~/.codex/config.toml에codex_hooks = true추가 -
~/.codex/hooks.json에 관리형 Stop 훅 설치
소스에서 빌드
Swift 개발 환경이 있다면 소스 빌드도 가능합니다:
git clone https://github.com/lnikell/loopndroll.git
cd loopndroll
swift build
swift run Loopndroll
패키징이 필요하면 ./scripts/package_app.sh를 실행하면 unsigned ad-hoc signing이 적용됩니다.
실행 모드: 두 가지 전략
무한 실행 모드
Codex 세션을 무한히 계속 실행합니다. 턴 제한 없이 작업이 완료될 때까지 Codex가 멈추지 않습니다.
적합한 시나리오:
- 대규모 리팩토링
- 전체 모듈 재작성
- 멀티파일 프로젝트 구축
- 24시간 이상 장시간 자동화 작업
턴 예산 모드
스레드별로 턴 예산을 설정할 수 있습니다. 예를 들어 "100턴까지만 실행"과 같은 제한을 걸 수 있습니다.
적합한 시나리오:
- 토큰 비용 관리가 필요한 경우
- 실험적인 작업 (실패 가능성이 있을 때)
- 예산 한도가 정해진 프로젝트
메뉴바의 Start/Stop 토글로 언제든 두 모드를 즉시 전환할 수 있습니다.
커뮤니티 사례: 실제 사용 성과
Codex Stop 훅이 2026년 3월 13일 공식 기능화된 이후, 커뮤니티에서 보고된 사례들을 보면 얼마나 강력한 도구인지 알 수 있습니다:
| 지표 | 달성값 |
|---|---|
| 연속 실행 시간 | 25시간 |
| 토큰 처리량 | 13M (백만) |
| 코드 생성 규모 | 30,000줄 |
이 수준의 작업은 이전에는 불가능했습니다. Loopndroll은 이런 장시간 세션을 실용적으로 활용할 수 있게 만드는 도구입니다.
유사 도구와의 비교
비슷한 목적의 다른 도구들과 비교해봅시다:
| 도구 | 대상 | 핵심 기능 | 근본적 차이 |
|---|---|---|---|
| Loopndroll | Codex | Stop 훅 기반 세션 무한 실행 | Codex 고유 메커니즘 활용 |
| CodeLooper | Cursor | 에이전트 stuck 상태 자동 해결 | stuck 감지 & 복구 (Cursor 전용) |
| Holdor | Claude/Cursor/Windsurf | macOS 잠자기 방지 | 시스템 레벨 (범용) |
Loopndroll의 차별점:
- Codex 전용: Codex 에이전트의 고유 메커니즘을 정확히 활용
- Stop 훅 기반: Codex Hooks 프레임워크의 공식 기능 활용
- 한 가지만 완벽히: 세션 연속 실행이라는 명확한 목표에 집중
주의사항: 알아두어야 할 점
새 스레드에서 사용하세요
훅 설치 후 새로 생성된 Codex 스레드에서 사용해야 안정적으로 작동합니다. 이미 실행 중이던 기존 스레드는 훅을 동적으로 인식하지 못할 수 있으니까요.
최적 워크플로우:
1. Loopndroll 설치 & 실행
2. Codex에서 새 스레드 시작
3. 새 스레드에서 Loopndroll 활성화
4. 장시간 작업 진행
Codex Hooks는 실험적 기능
Codex Hooks 자체가 아직 실험적 기능이므로, ~/.codex/config.toml에서 feature flag를 활성화해야 합니다:
codex_hooks = true
플랫폼 제약
- macOS 전용: Windows는 현재 지원하지 않습니다.
- Gatekeeper 주의: unsigned 앱이므로 처음 실행과 다른 Mac에서의 이동 시 우클릭 > 열기가 필요합니다.
앱 상태와 독립적인 훅
흥미로운 점은, 앱을 종료해도 훅은 설치된 상태로 유지된다는 것입니다. 헬퍼 스크립트가 앱의 활성/비활성 상태를 확인하고:
- 앱 활성: Stop 훅이 block 응답 반환 (세션 계속 실행)
- 앱 비활성: 헬퍼가 no-op 반환 (정상적으로 멈춤)
이런 설계 덕분에 세밀한 제어가 가능합니다.
기술적 배경
이 기능의 필요성은 커뮤니티에서 시작되었습니다.
- GitHub Issue #14203: DMontgomery40이 Stop 훅의 필요성 제기
- PR #14532: Stop 훅 기능 공식 구현 (2026.3.13 머지)
Alex Barashkov가 Loopndroll을 개발한 것은 이런 필요성을 실제로 해결하기 위함이었습니다. 그리고 MIT 라이선스로 오픈소스화하면서 커뮤니티 전체가 혜택을 볼 수 있게 만들었습니다.
마무리
Loopndroll은 Codex 사용자에게 꼭 필요한 도구입니다:
- 설치: 30초
- 라이선스: MIT (오픈소스)
- 비용: 무료
- 전략: 두 가지 모드 (무한 실행 + 턴 예산)
긴 코딩 작업을 Codex에 맡기는 개발자라면, 한번 시도할 가치가 충분합니다.
Top comments (0)