Evlat — Know which AI coding agent is waiting on you
Evlat — 어떤 AI 코딩 에이전트가 응답을 기다리는지 확인하세요
Evlat은 Mac 화면 가장자리에 Claude Code와 Codex 세션별 상태를 표시하는 앱입니다. 권한 요청이나 질문으로 작업이 멈추면 표시등이 주황색으로 바뀌고, 클릭하면 해당 터미널 탭을 엽니다. 공식 훅과 SSH 역방향 터널을 활용하며 macOS 권한을 요구하지 않습니다.
- 주제
AI 요약
Evlat은 여러 AI 코딩 에이전트를 동시에 실행할 때 어느 세션이 사용자 응답을 기다리는지 알려주는 Mac 앱입니다. 화면 가장자리에 세션마다 링을 표시하고, 권한 요청이나 질문이 발생하면 해당 링을 주황색으로 바꿉니다. 링을 클릭하면 iTerm, Warp, Claude Desktop, Metalterm, Bateri 등에서 해당 세션 탭을 엽니다.
세션 상태 감지
개발자 kalaomer에 따르면 Evlat은 Claude Code와 Codex의 공식 훅을 사용합니다. 설치 과정에서 각 이벤트를 로컬 서버에 전달하는 간단한 curl 명령을 추가합니다. 서버는 localhost에서만 요청을 받으므로 macOS 권한을 별도로 요구하지 않습니다. 세션 파일은 이름이나 실행 여부 같은 정보를 보완하는 용도로만 사용하며, 입력 대기 상태는 훅 이벤트에서 감지합니다.
장시간 작업과 원격 서버
evlat watch 명령으로 빌드, 테스트, 학습 작업 같은 긴 명령도 화면 표시줄에 올릴 수 있습니다. 원격 서버 작업은 SSH 역방향 터널을 사용해 서버의 훅 이벤트를 Mac으로 전달합니다. 개발자 설명에 따르면 각 머신은 별도의 키를 사용합니다.
Codex 데스크톱 앱의 제약
현재 Evlat은 Codex CLI 세션을 추적합니다. 댓글에서 사용자가 Codex 세션이 잡히지 않는다고 지적하자, 개발자는 Codex 데스크톱 앱이 훅을 실행하지 않는 문제 때문이라고 답했습니다. 같은 ~/.codex/hooks.json이 Codex CLI 이벤트는 전달하지만 앱 이벤트는 전달하지 않는다고 설명했으며, OpenAI가 앱의 훅 문제를 고치면 Evlat을 변경하지 않아도 세션이 표시될 것으로 예상한다고 밝혔습니다.
Product Hunt 반응
- @kalaomer — Product Hunt에 인사드립니다 👋 Evlat은 제가 처음 만든 데스크톱 앱입니다. Claude Code 세션을 여러 개 동시에 실행하다 보니, 다른 창에서 작업하는 사이 응답을 기다리는 세션을 자꾸 놓쳤습니다. 권한 요청 창이 몇 분씩 떠 있어도 알아차리지 못했습니다. 찾아본 도구는 대부분 사용량 제한을 다룰 뿐, 각 세션이 실제로 무엇을 하는지는 보여주지 않았습니다. 그래서 Mac 화면 가장자리에 세션별 링을 표시하는 Evlat을 만들었습니다. 세션이 권한이나 질문으로 멈추면 주황색으로 바뀝니다. 마우스를 올리면 모든 세션과 Claude 및 Codex 사용 한도를 확인할 수 있습니다. 클릭 한 번으로 iTerm, Warp, Claude Desktop, Metalterm, Bateri에서 해당 탭을 엽니다. evlat watch로 빌드, 테스트, 학습 작업 같은 긴 명령을 표시할 수 있고 SSH를 통한 원격 서버도 지원합니다. Swift로 만든 네이티브 앱이며 macOS 권한을 요구하지 않고 모든 정보는 로컬에 남습니다. 무료이고 코드는 GitHub에 공개했습니다. ‘Evlat’은 터키어로 ‘아이’라는 뜻입니다. 여러분의 에이전트를 지켜봅니다. 에이전트를 어떻게 실행하는지, Evlat에 어떤 기능이 있으면 좋을지 듣고 싶습니다.
- @vilmer_frost — Codex 세션을 추적하지 않습니다.
- @kalaomer — 알려주셔서 감사합니다! 아마 Codex 데스크톱 앱을 사용 중이실 겁니다. Evlat은 공식 훅으로 Codex를 추적하는데, 현재 데스크톱 앱은 훅을 실행하지 않습니다. 같은 ~/.codex/hooks.json이 Codex CLI에서는 모든 이벤트를 전달하지만 앱에서는 아무것도 전달하지 않습니다. 알려진 상위 프로젝트 회귀 문제입니다. 지금 Evlat은 Codex CLI 세션을 추적합니다. OpenAI가 앱의 훅을 고치면 Evlat 쪽 변경 없이 해당 세션도 표시될 겁니다. CLI를 사용 중인데도 보이지 않는다면 알려주세요. 살펴보겠습니다!
- @seenew — 출시를 축하합니다! 제게 딱 필요한 도구입니다. 보통 같은 저장소의 워크트리 세 개나 네 개를 열어 각각 에이전트를 실행합니다. 20분 뒤 돌아와 보면 하나가 권한 요청 창에서 계속 멈춰 있곤 합니다. 링이 여러 개 표시될 때 어느 링이 어느 세션인지 알 수 있나요? 같은 저장소에 브랜치만 다른 상황이 대부분의 도구에서 구별되지 않습니다 👀
- @can_dizdar — macOS 권한을 전혀 받지 않고 세션이 입력을 기다리는 상태를 어떻게 감지하나요? Claude Code와 Codex가 디스크에 쓰는 세션 파일을 읽는 것 같은데, 둘 중 하나가 업데이트로 형식을 바꾸면 어떻게 대응할지도 궁금합니다. 원격 서버용 SSH 기능은 예상하지 못했습니다.
- @kalaomer — 좋은 추측이지만 대부분 세션 파일을 읽는 방식은 아닙니다. Evlat은 Claude Code와 Codex의 공식 확장 지점인 훅을 사용합니다. 설정 과정에서 각 이벤트를 loopback 전용 로컬 서버에 POST하는 작은 curl 명령을 추가합니다. 그래서 macOS 권한이 필요하지 않고 localhost HTTP만 사용합니다. 권한 요청이나 질문 이벤트가 오면 에이전트가 사용자 응답을 기다리는 상태로 판단합니다. 세션 파일은 세션 이름과 활성 상태를 보완하는 용도이며, 추정치로 취급합니다. 파일 형식이 바뀌면 세부 정보 일부가 표시되지 않을 수 있지만, 기본 신호는 문서화된 훅 API에서 계속 받습니다. 원격 세션도 같은 훅을 사용합니다. Evlat은 ssh -R 역방향 터널을 열어 서버의 훅 이벤트를 Mac으로 전달하며, 머신마다 별도의 키를 사용합니다.
원문: Product Hunt / 번역·요약: Trawling