
GitHub Issue를 20개 병렬로 처리하기 위한 터미널을 개발했다
요약
GitHub Issue와 PR 상태를 병렬로 관리할 수 있는 터미널 멀티플렉서 'ghmux'를 소개합니다. Swift와 libghostty를 사용하여 개발되었으며, AI(Claude)를 활용한 이슈 처리 워크플로우를 시각화하고 자동화하는 데 중점을 둡니다.
핵심 포인트
- GitHub Issue/PR 링크를 터미널 페인 상단에 표시하여 컨텍스트 유지
- CI 상태 변화에 따라 Claude에게 자동으로 지시를 전달하는 자동화 기능
- 1 Issue 1 Claude 방식의 정교한 병렬 작업 관리 지원
- 미처리 이슈를 사이드바에 표시하여 태스크 파악 용이성 증대
터미널 멀티플렉서 (Terminal Multiplexer) ghmux를 만들어 보았다

GitHub에 PR을 생성한다는 전제하에 Issue 링크와 PR 상태를 항상 표시하는 터미널, ghmux를 만들었습니다.
기본적인 발상은 버그 Issue를 한꺼번에 20개 수정하려고 하다가 뇌가 한계에 도달했을 때 떠오른 아이디어입니다.
cmux와 동일한 기술 선정(Technology Selection)을 컨셉으로 하여, libghostty를 사용하여 Swift 애플리케이션을 개발해 본 것입니다.
어디까지나 컨셉만 가져온 것이기에 cmux의 포크(Fork)는 아니며, 내장 브라우저 미탑재 등 cmux만큼 풍부하게 만들어지지는 않았습니다.
MAC 사용자라면 릴리스 페이지에서 다운로드하여 즉시 이용 가능합니다.
배포 형식은 dmg입니다. 거의 저 혼자만 사용할 예정이라 서명(Signing) 등은 하지 않았습니다.
ghmux로 해결하고 싶은 과제
어떤 Claude에게 무엇을 시키고 있는지 모르는 문제
AI를 전제로 한 태스크 관리(Task Management)에는 여러 설이 있지만, 저는 여전히 GitHub를 활용하고 있습니다.
하지만 10개 정도 병렬로 Issue를 처리하다 보면, 무언가 조사하거나 Slack을 보고 있는 사이에 "이 녀석이 무슨 일을 하고 있었더라..." 하며 기억이 날아가 버려, Claude의 로그에서 Issue나 PR을 발굴하는 무의미한 작업이 발생하게 되었습니다.
그래서 터미널의 페인(Pane)을 열면, 각 페인 상단에 Issue 또는 PR의 링크를 붙여두는 것,
이것이 ghmux의 기본 컨셉입니다.

최근 AI의 성능이라면 Claude 한 대에게 여러 Issue를 전부 처리해 달라고 지시해도 워크플로우(Workflow)를 구사하여 어렵지 않게 해내기도 하지만, 1 Issue 1 Claude 정도의 입도로 조금 더 정성스럽게 돌봐주고 싶은 분들을 위한 도구입니다.
Issue를 처리하는 업무를 가급적 자동화하기
ghmux는 Issue, PR의 링크를 붙여넣으면 자동으로 Claude가 기동하고,
PR의 CI가 실패하거나, PASS하거나, PR이 컨플릭트(Conflict)되는 등의 이벤트마다 Claude에게 자동으로 지시를 흘려넣으며,
생성된 PR의 CI가 통과했는지 여부를 아이콘으로 가시화하는
기능을 만들고 있습니다.
엔지니어의 업무는 다양하며, 최근의 AI 시대에는 더욱 부가가치가 요구되지만, 업무의 상당 부분은 Issue를 가져와서 CI를 통과시키고 머지(Merge)하는 작업이 차지하고 있을 것입니다.
최근에는 Claude 스스로도 CI가 무사히 PASS하는지 감시하는 등의 궁리를 하고 있지만, PR을 머지하기까지의 프로세스를 어느 정도 자동화함으로써, 인간이 "정말 남은 태스크가 있는데 멈춰있지 않은가"라며 Claude의 움직임을 감시하는 비용을 낮추고 있습니다.
그러한 정기적인 감시로 토큰(Token)을 소비하는 것은 아깝다는 생각도 있습니다.
각종 이벤트마다 어떤 지시를 내릴지는 설정으로 유연하게 변경할 수 있습니다.
Issue를 ghmux에 붙여넣었을 때는, Issue를 어떻게 읽고 어떤 스킬(Skill)을 사용하여 개발할지, CI가 실패하면 어떤 명령을 내릴지 등의 지시를 ghmux에 설정해 둡니다.
Issue를 읽으면 어떤 개발 작업을 해야 할지가 자명해질 정도로 Issue를 작성해 두고, ghmux에 Issue를 던지기만 하면 나머지는 PR이 생성되기를 기다리는 스타일로 개발하고 있습니다.
해야 할 Issue를 파악하기
터미널의 사이드바에 자신에게 할당된 미처리 Issue를 표시하는 기능을 만들고 있습니다.
할당된 태스크를 떠올리는 수고를 최소화하고 있습니다.
상기 업무를 자동화하기
저는 이 기능을 자주 사용하지는 않지만, tmux처럼 별도의 페인에 지시를 보내는 기능, 처리할 Issue를 지정하여 새 페인을 생성하는 기능을 CLI로서 제공하고 있습니다.
ghmux pane new --issue "https://github/repo/issues/999"
상세 내용은 skill로서 제공하고 있습니다.
떠맡고 있는 태스크 양에 따라서는, 상위 Claude에게 ghmux 기능을 사용하여 Issue를 전부 끝내라고 지시하는 것만으로도 각 Issue의 진행 상황을 가시화하면서 일상적인 업무를 끝낼 수 있을지도 모릅니다.
궁극적으로는 저의 모든 것을 자동화해 보고 싶습니다.
Discussion

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기