DEV Community

정상록
정상록

Posted on

Loopndroll: OpenAI Codex를 절대 멈추지 않게 하는 macOS 앱

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"
}
Enter fullscreen mode Exit fullscreen mode

Codex는 이 응답을 받으면 새로운 연속 프롬프트가 들어온 것처럼 처리하여 세션을 계속 실행합니다. 이는 매우 우아한 솔루션입니다. 전체 아키텍처를 수정할 필요 없이, Stop 이벤트 한 곳만 개입하면 되니까요.

설치: 놀랍도록 간단합니다

Loopndroll 설치는 정말 30초면 끝납니다.

사전 빌드 앱 (권장)

  1. GitHub 릴리스 페이지에서 zip 파일 다운로드
  2. 압축 해제
  3. /Applications 폴더로 이동
  4. 처음 실행할 때 우클릭 > 열기 (unsigned 앱이므로 Gatekeeper 우회 필요)

끝입니다.

앱을 처음 실행하면 Loopndroll이 자동으로 두 가지를 설정합니다:

  • ~/.codex/config.tomlcodex_hooks = true 추가
  • ~/.codex/hooks.json에 관리형 Stop 훅 설치

소스에서 빌드

Swift 개발 환경이 있다면 소스 빌드도 가능합니다:

git clone https://github.com/lnikell/loopndroll.git
cd loopndroll
swift build
swift run Loopndroll
Enter fullscreen mode Exit fullscreen mode

패키징이 필요하면 ./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의 차별점:

  1. Codex 전용: Codex 에이전트의 고유 메커니즘을 정확히 활용
  2. Stop 훅 기반: Codex Hooks 프레임워크의 공식 기능 활용
  3. 한 가지만 완벽히: 세션 연속 실행이라는 명확한 목표에 집중

주의사항: 알아두어야 할 점

새 스레드에서 사용하세요

훅 설치 후 새로 생성된 Codex 스레드에서 사용해야 안정적으로 작동합니다. 이미 실행 중이던 기존 스레드는 훅을 동적으로 인식하지 못할 수 있으니까요.

최적 워크플로우:

1. Loopndroll 설치 & 실행
2. Codex에서 새 스레드 시작
3. 새 스레드에서 Loopndroll 활성화
4. 장시간 작업 진행
Enter fullscreen mode Exit fullscreen mode

Codex Hooks는 실험적 기능

Codex Hooks 자체가 아직 실험적 기능이므로, ~/.codex/config.toml에서 feature flag를 활성화해야 합니다:

codex_hooks = true
Enter fullscreen mode Exit fullscreen mode

플랫폼 제약

  • 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)