여러 개의 Claude Code 에이전트를 한 화면에서 돌리기 위해 만든 macOS 터미널. 어떤 에이전트가 막혀있고, 작업 중이고, 당신을 기다리는지 한눈에.
Press ⌘G to jump straight to the next WAIT agent.
기본 터미널에서 N개의 Claude Code 에이전트를 돌리는 건 곧 tab roulette이 됩니다. 창을 Cmd-Tab으로 돌려가며, 어느 패널이 막혀있는지 눈으로 훑고, 정작 당신을 기다리던 그 하나는 놓쳐버리죠.
termy는 그 상태를 패널 안에서 끄집어내 한눈에 보이는 대시보드로 만들어 둡니다.
모든 에이전트는 하단에 자기 칩을 갖고, 칩에는 실시간 상태가 찍힙니다 — IDLE,
THINK,
WAIT.
permission 프롬프트가 뜨는 순간 macOS가 알림을 쏘고, ⌘G 한 번이면 그 패널로 점프합니다.
모든 패널은 자기 cwd를 따라 자동으로 프로젝트로 묶입니다. 같은 프로젝트는 같은 파스텔 컬러를 받아 — 패널 헤더, 대시보드 칩, 필터 pill — 까지 일관되게. 4개의 검정 박스로 보이던 화면이 읽히는 화면이 되죠.
상단 필터 바의 프로젝트 pill에 번호가 뜨고, ⌘0은 전체, ⌘1~⌘9는 그 프로젝트의 패널 그리드로 한 번에 점프합니다.
지금까지 termy가 본 모든 프로젝트를 fuzzy 검색합니다. 패널 수와 마지막 사용 시각이 함께 보이고, 하나를 고르면 그 프로젝트의 저장된 패널 그리드가 그대로 복원됩니다.
모든 실행 중인 Claude Code는 하단 스트립에 칩 하나씩을 받습니다. 칩에는 프로젝트 / 브랜치와 실시간 상태가 표시되고, ⌘⌥를 누르면 칩에 번호가 떠 직접 점프할 수 있습니다.
에이전트가 프롬프트에서 대기 중. 아무것도 실행하고 있지 않습니다.
tool call이 진행 중. 모델이 일을 하고 있는 상태.
permission 프롬프트에 막혀있습니다. 당신의 주의가 필요.
⌘G는 다음 WAIT 패널로 — split을 가로지르고 프로젝트 필터를 가로질러서 — 점프합니다. 앱에서 가장 자주 쓰게 되는 단축키 한 개.
패널 테두리, 대시보드 칩, macOS 알림 — 모두 Claude Code의
Notification과
Stop hook으로 구동됩니다.
중첩 NSSplitView로 진짜 split.
드래그로 리사이즈, ⌘D는 row, ⇧⌘D는 column,
⌘N은 화면 비율을 보고 자동으로 잘라주는 auto split.
전체 단축키 맵 — focus, projects, splits, window. 숨겨진 바인딩 없음.
Light, Dark, Match System. View → Appearance이 터미널·크롬·대시보드를 한꺼번에 바꿉니다.
Claude가 WAIT로 바뀌면 macOS가 알림을 쏩니다. termy가 포커스를 안 잡고 있어도.
split 구조, 프로젝트 그룹, cwd가 프로젝트별로 저장됩니다. ⌘K로 다시 열면 떠난 그 모양 그대로 복원.
⌘D row, ⇧⌘D column, ⌘N auto split. divider 드래그. ⌘⏎로 maximize 토글.
AppKit + SwiftTerm. 3 MB signed DMG, 설치 후 ~7 MB.
진짜 UserNotifications, Full Disk Access, titlebar chrome.
트랙패드 없이도 N개의 패널을 휘젓고 다닐 수 있게 했습니다.
Claude Code의 hook 시스템과 작은 CLI 도우미, 그리고 in-app actor가 협력해서 상태를 만듭니다.
Claude Code ──hook──▶ termy-hook (CLI) ──unix socket──▶ HookDaemon (in-app actor) │ ▼ PaneStateMachine │ ▼ MissionControlView + Notifier
/tmp/termy-$UID.sock로 한 줄의 JSON을 보냅니다.termy-hook end-to-end