여러 개를 나열하면, 어떤 것이 무엇을 하고 있는지 알기 어려워진다
Claude Code를 사용하다 보면 프로젝트별로 세션을 분리하고 싶어집니다. 웹 프론트엔드, API 서버, 모바일 앱, 문서 등 각각 다른 폴더에서 다른 맥락을 가지고 있습니다.
Windows Terminal의 탭에 나열하면, 탭 이름만으로는 구별하기 어렵습니다. 어떤 탭이 처리 중인지, 어떤 탭이 승인을 요청하며 멈춰 있는지 하나하나 열어 확인해야 합니다. macOS나 Linux라면 tmux로 관리할 방법이 있지만, Windows 네이티브 환경에서는 사용할 수 없습니다. WSL을 설치하면 tmux도 작동하지만, 이는 리눅스 측에서의 이야기이며, Windows에 설치된 Claude Code나 Codex CLI를 그대로 나열하고 싶을 때는 적합하지 않습니다.
저는 현재 Claude Code와 Codex CLI 세션을 합쳐 약 30개를 등록해 놓았습니다. TerminalHub를 사용한 지 반년 이상이 되었고, 이렇게 많은 수를 다뤄올 수 있었던 것은 이 도구 덕분입니다.
TerminalHub란 무엇인가요
TerminalHub는 Claude Code / Codex CLI / Antigravity / Grok 등 여러 세션을 하나의 GUI에서 관리하는 Windows 애플리케이션입니다. 오픈 소스(ISC 라이센스)이며, 설치 프로그램만 실행하면 사용할 수 있습니다(.NET 별도 설치 불필요).
참고로, 제작자는 제 지인입니다. 사용해보니 편리함에 놀라게 되어, 알려지지 않은 것이 아깝다고 생각하여 이 글을 쓰게 되었습니다.
공식 설명에 따르면 주요 기능은 다음과 같습니다.
| 어려움 | TerminalHub를 통한 해결 |
|---|
| 탭으로는 세션명/상태 구별 불가 | 세션명과 처리 상태를 목록으로 표시 |
| ... | |
화면 렌더링은 XTerm.js를 브라우저에서 사용하기 때문에, 일본어 입력(IME)으로 변환 중인 문자가 깨지기 어렵습니다. 일본어로 프롬프트를 작성하는 사람에게는 이것만으로도 전환할 이유가 될 것이라고 생각합니다.
참고로, Anthropic 공식 Claude Code 데스크톱 앱 역시 2026년 4월 개편 이후 Windows에서 여러 세션의 목록/worktree/완료 알림을 처리할 수 있고, 세션 간 메시지에도 대응하고 있습니다. Claude Code만 사용할 것이라면 그것으로 충분한 사람도 많을 것입니다. TerminalHub를 선택하는 이유는 Claude Code, Codex CLI, Antigravity를 같은 목록에 나열하고, Claude Code와 Codex CLI 사이에서도 작업을 요청할 수 있다는 점 때문입니다.
시작 방법
- Releases에서
TerminalHub-Setup-x.x.x.exe 파일을 가져와 실행합니다. - 실행 후 '새 세션 만들기'를 통해 작업 폴더와 세션 종류(Terminal / Claude Code / Codex CLI / Antigravity / Grok)를 선택합니다.
- 필요하다면 옵션(승인 모드 등)을 체크박스로 지정합니다.
이렇게 하면 프로젝트의 세션이 왼쪽 사이드바에 나열됩니다. 세션은 열 때 시작되기 때문에, 많이 등록해 놓아도 백그라운드에서 전부 작동하는 것은 아닙니다.
예시: 사이드바는 이렇게 보입니다
나열했을 때 어떻게 보이는지 먼저 보여드리겠습니다. 아래는 웹 서비스를 만들고 있다고 가정한 예시 세션들이 나열된 사이드바입니다 (프로젝트명과 메모는 설명용 예시).
TerminalHub のサイドバー。web-frontend の下に worktree の dark-mode と login-fix がぶら下がり、e2e-tests・sandbox・mobile-app・docs・api-server・data-analysis・infra・blog が並ぶ。各セッションの下に 1 行のメモ
- 세션 이름 옆에는 git 브랜치가 표시됩니다. web-frontend와 docs 브랜치 이름 옆의 빨간 점은 커밋되지 않은 변경 사항이 있다는 것을 의미합니다.
- web-frontend 아래에는 같은 리포지토리의 worktree 세션 2개가 걸려 있습니다 (dark-mode는 Claude Code, login-fix는 Codex CLI).
- 각 세션 아래의 한 줄은 메모입니다. '무엇을 하고 있는지 → 무엇을 기다리는지'를 적어둡니다.
이 목록만 보면 아침에 다음 사항들을 알 수 있습니다.
- api-server・docs・blog의 메모는 'CI 결과', '사양 확정', '릴리스'로 연결되어 있으며, api-server의 CI가 통과하면 docs와 blog도 진행할 수 있다.
- infra는 승인 대기 중이고, mobile-app은 인증서 업데이트를 기다리고 있어, 둘 다 자신이 움직이지 않으면 진행되지 않습니다.
- sandbox는 메모가 비어있어 현재 아무것도 하고 있지 않습니다.
개인적으로는 그날 약 10개 정도를 구동한다. 창을 하나씩 열어두던 시절에는 이 정도만 파악하는 데도 시간이 걸렸다.
여러 세션을 돌릴 때의 사용법
프로젝트별로 1개의 세션
하나의 세션에서 여러 프로젝트를 오가게 되면 문맥이 섞인다. 폴더(폴더)마다 세션을 만들고, 세션 이름을 프로젝트 이름으로 설정해 둔다. 사이드바에는 git 브랜치와 미커밋 변경 여부도 표시되므로, 어떤 프로젝트에 작업을 하다가 만 상태인지도 알 수 있다.
상태 표시로 '누가 나를 기다리고 있는지' 확인하기
Claude Code와 Codex CLI 세션에서는 사이드바에 처리 중인지, 대기 중인지, 입력 대기(승인이나 선택을 요구하며 멈춰있는지)인지가 표시된다. Antigravity나 Grok, 일반 터미널 세션에는 이러한 상태 표시가 없다.
여러 개를 나란히 놓았을 때 가장 불편했던 것은, 승인을 기다리며 멈춘 세션을 알아차리지 못하고 몇십 분 동안 방치하는 것이었다. 입력 대기가 목록으로 보이게 되면서 이 문제가 거의 사라졌다. 열어두지 않은 세션의 처리가 끝나면 알림 벨이 울린다(이것 역시 Claude Code와 Codex CLI 세션 기능). 따라서 다른 작업을 하면서 기다릴 수 있다.
설정에서 사용 중인 모델과 대화의 크기(컨텍스트 양)도 세션 이름 옆에 표시할 수 있다. 아래는 나의 실제 사이드바 일부이다(세션명과 메모는 가림 처리함).
TerminalHub のサイドバーの一部。各セッション名の横に opus-5-5 のモデル名、401K・168K・138K・644K のコンテキスト量のバッジ、git のブランチが並び、2 本のセッションの下に処理中の表示が出ている
- 회색 배지는 모델명(Claude Code와 Codex CLI)
- 파란 배지는 컨텍스트 양으로,
401K
은 대화가 약 40만 토큰까지 늘어났음을 나타낸다(Claude Code에 한함) - 배지 색상은 프롬프트 캐시의 남은 시간을 표시한다. 파란색은 여유가 있고, 15분 남으면 노란색, 10분 남으면 빨간색으로 변하며, 남은 분도 표시된다. 소진되면 회색으로 돌아간다.
캐시가 소진된 후에 이어서 요청하면, 대화 전체를 다시 읽는 비용이 급증한다. 노란색이나 빨간색 세션은 지금 계속 진행할지, 아니면 구분이 되었다면 /compact로 대화를 줄여 놓을지 목록을 보고 결정할 수 있다.
메모에 '지금 무엇을 하고 있는지' 한 줄 쓰기
세션에는 메모를 달 수 있고, 사이드바에서 검색도 가능하다. 내용은 '무엇을 하는 중 → 누구의 무엇을 기다리는 중'이라는 한 줄로 작성한다. 지금은 이것을 스스로 쓰지 않고, 각 세션 에이전트에게 작업 구분이 될 때마다 다시 쓰게 한다(나중에 소개할 MCP 기능을 활성화하면, 에이전트가 자신의 세션 메모를 쓸 수 있게 된다).
결제 API 테스트 추가 → CI 결과 대기
스테이징 환경 구성 변경 → 적용 승인 대기
며칠 만에 열어본 세션이라도, 메모만 보면 어디까지 진행했었는지 떠올릴 수 있다.
같은 리포지토리에서 병렬 작업할 경우 worktree 세션
같은 리포지토리에서 다른 작업을 병행하고 싶을 때는, 세션 설정의 '서브 세션 관리'에서 worktree 세션을 만들 수 있다(새로 만들 수도 있고, 기존 worktree를 등록할 수도 있다). worktree는 리포지토리 옆(형제 폴더)에 만들어지고, 목록에서는 부 세션으로 표시된다. 위의 예처럼, 신기능과 버그 수정 같은 작업을 같은 리포지토리에서 병행할 때 사용한다. Claude Code와 Codex CLI를 같은 틀 안에 배치할 수 있으므로, 한쪽을 Codex로도 할 수 있다.
스마트폰 알림
Claude Code와 Codex CLI 세션에서는 처리 시작/완료나 승인 대기 상태를 Webhook으로 외부 전송할 수 있다. 페이로드에는 세션명・경과 시간・작업 폴더가 포함되므로, 긴 처리를 맡기고 자리를 비울 때 유용하다.
다음 단계: 세션끼리 서로 의지하게 만들기
익숙해지면 TerminalHub의 MCP 기능도 사용해 보길 바란다. TerminalHub 본체가 MCP 서버를 가지고 있고, 설정의 '시험 기능' 탭에 있는 'TerminalHub MCP'를 활성화하면(기본값은 비활성화), Claude Code나 Codex 세션에서 다른 세션 목록을 보거나, 메시지를 보내거나, 자신의 세션 메모를 다시 쓸 수 있게 된다.
예를 들어, 어떤 세션에서 사양을 파일에 작성하고, 그 경로만 다른 프로젝트 세션으로 보내 작업을 부탁한다. 요청받은 쪽은 자신의 프로젝트 문맥으로 작업하고, 끝나면 결과를 반환한다. 답변은 요청한 쪽 세션에 알림으로 도착한다.
다른 세션에서 온 메시지에는 TerminalHub가 '자동 메시지'라는 표시와 함께 발신자가 붙는다 (단, /로 시작하는 슬래시 명령어 전송은 예외로 표시가 붙지 않는다). 메시지를 받는 쪽의 에이전트는 인간의 지시와 다른 세션으로부터의 요청을 구별할 수 있다.
저는 이를 이용해 디스크 정리처럼 여러 프로젝트에 걸친 작업을 하나의 세션에서 각 프로젝트 세션으로 분류만 맡기는 방식으로 처리하고 있습니다 (삭제는 제가 각 세션에 직접 지시합니다). 사용법의 자세한 내용은 작성자의 설명을 참고하세요.
요약
- Windows에서 AI CLI를 여러 개 나란히 배치할 경우, 먼저 TerminalHub에 등록하여 프로젝트별로 1개의 세션을 만드세요.
- 상태 표시와 완료 알림으로 인해 허가 대기 상태로 방치되는 일이 없어집니다.
- 메모에 '지금 무엇을 하고 있는지' 한 줄을 적어두면, 며칠 후에 돌아와도 헤매지 않습니다.
- 익숙해지면 MCP를 이용해 세션 간에 작업을 맡길 수도 있습니다.
- 랜딩 페이지: https://zio3.github.io/TerminalHub/landing/
토론