요약
터미널과 코딩 에이전트를 함께 관리하는 Herdr가 데스크톱 앱을 내놓았습니다.
Herdr 개발진이 데스크톱 앱의 코드를 GitHub에 공개했습니다. 이 앱은 작업을 스페이스(보통 저장소 하나의 작업 묶음)로 나누고, 어떤 에이전트가 사용자의 손길을 기다리는지 보여 줍니다.
왜 중요한가
- 창을 닫아도 작업이 이어지므로 오래 걸리는 에이전트 작업을 앱 상태와 상관없이 돌릴 수 있습니다.
- 에이전트가 많아져도 어느 것이 막혔는지 터미널을 하나씩 뒤지지 않고 알 수 있습니다.
- 재부팅이나 코어 장애 뒤에는 이전 프로그램이 아니라 새 셸만 마지막 폴더에서 열리므로 한계도 있습니다.
핵심 내용
- 창은 터미널 배치만 맡고, 별도 프로세스인 herdr-core가 터미널을 실행합니다.
- 사이드바는 다른 에이전트가 띄운 작업자까지 묶어 작업 중, 막힘, 완료, 유휴 상태로 보여 줍니다.
- SSH로 원격 컴퓨터를 추가할 수 있고, 원격 작업은 로컬 창을 닫아도 계속 돕니다.
- 모드(패널과 메뉴를 그리는 자바스크립트 프로그램)는 격리되지 않고 실행되므로 믿을 수 있는 것만 써야 합니다.
- 맥(Apple Silicon)과 리눅스, 윈도용 빌드를 제공하고, 사용 통계 수집은 기본으로 켜져 있지만 끌 수 있습니다.
HN 반응
- 일부 이용자는 에이전트 상태 표시와 Claude Code·Codex 간 메시지 전달을 꼽았지만, tmux와 알림이면 충분하다는 반론도 나왔습니다.
- 소개 문구가 AI가 쓴 듯 알맹이가 없다는 비판과 벤처 투자를 우려하는 의견이 있었고, 오픈소스라 포크하면 된다는 답도 있었습니다.
처음 두 문장은 이게 뭘 하는 건지 정보가 하나도 없네요. 세 번째는 쓸 만한 정보인데, 이건 요즘 하니스(harness) 대부분이 하는 것 아닌가요?
계속 읽어 보면요.
좋아요, 똑같은 소리의 반복이군요. 계속 가 보죠.
서브에이전트나 서브스레드 같은 걸 이런 식으로 안 하는 요즘 하니스가 있기나 한가요?
흥미로운 부분도 있긴 한데, 분위기만 잡은 듯한 AI 티 나는 홍보 문구가 거슬립니다. 만든 사람조차 자기가 뭘 만들었는지 이해하지 못한다는 신호 같아요.
네, 그 문구는 정말 별로예요. 제가 이해하기로는(틀렸으면 누가 바로잡아 주세요), herdr 네이티브 앱은 기존 TUI 멀티플렉서를 개선한 것이고, 에이전트끼리 통신하게 해 주는 새 API가 들어갔어요. herdr는 안 써 보셨다면 정말 유용합니다. 저도 이걸 써 볼 생각이에요. 사실 지금까지 패널 사이의 에이전트 통신은 거의 안 쓰고 작업 공간 이동 용도로만 썼거든요. herdr를 '하니스들을 위한 하니스'라고 생각하면 될 것 같아요!
tmux나 Claude Code, Codex에 내장된 서브에이전트와 비교하면 Herdr는 뭐가 유용한가요?
GUI는 잘 모르겠고, tmux와 비교한 TUI 쪽만 말씀드릴게요.
herdr는 아주 유연하지만, 프로젝트가 여러 개이고 프로젝트마다 워크트리와 에이전트가 여러 개일 때 진가가 나옵니다.
herdr는 워크스페이스로 탭을 정리합니다. 개념상 워크스페이스는 아마도 프로젝트 하나에 대응하겠지만, 꼭 그래야 하는 건 아닙니다.
herdr는 워크트리를 기본으로 지원해서, 키보드나 CLI 명령 하나로 워크트리마다 중첩된 워크스페이스를 만들 수 있습니다. 워크트리 체크아웃도 대신 해 줍니다.
herdr는 탭과 워크스페이스를 가로질러 에이전트를 찾아내 별도의 탐색 패널로 모아 줍니다. 에이전트 상태(대기 중, 작업 중, 입력 기다리는 중, 완료 등)를 보여 주고, 상태가 바뀌면 소리를 낼 수도 있습니다. 덕분에 여러 프로젝트에 걸친 여러 에이전트를 추적하다가, 도움이 필요한 에이전트로 바로 넘어갈 수 있습니다. "claude는 2번 스페이스 3번 탭에서 돌고 있었지" 하고 기억할 필요가 없어요.
herdr는 에이전트와 연동되어서, 에이전트가 herdr의 UI를 제어하고 상태에 따라 탭 이름을 바꿀 수 있습니다.
이 모든 걸 herdr CLI로 스크립트화할 수 있고, 에이전트가 이걸 아주 잘 다룹니다. 마우스도 완전히 지원해서, 멀티플렉서가 처음이어도 금방 쓸 수 있어요.
저는 보통 파이썬 워크트리 하나당 tmux 세션을 하나씩 두고, 다른 패널에는 로컬 Postgres 테스트 컨테이너를 띄워 둡니다. 상태 뷰가 여기에 유용할 것 같네요. Herdr는 대기 중인 걸 에이전트 훅으로 감지합니까, 아니면 터미널 출력을 보고 추론합니까?
일부는 훅을 쓰고 나머지는 출력으로 판단해요. 패널에서 돌아가는 하니스에 따라 달라집니다: https://herdr.dev/tui/docs/agents/#supported-by-herdr
하니스에 따라 다를 수 있는데, claude와 codex는 현재 터미널 출력을 보고 추론합니다.
통합된 경험이죠. 여러 머신에 연결해서, 왼쪽 내비게이션의 스페이스를 통해 그 머신들의 터미널에 접근할 수 있습니다. 모든 스페이스의 에이전트가 전용 섹션에 모여 있어서 빠르게 접근할 수 있고요.
각 스페이스는 tmux처럼 영속적인 터미널을 품고 있어서, 연결이 끊겨도 영향을 받지 않습니다.
에이전트 상태 감지입니다. 로컬과 원격 에이전트를 한눈에 볼 수 있고요. 에이전트가 다른 에이전트를 나열하고, 그 패널을 들여다보고, 키를 보낼 수 있게 해 주는 /herdr 스킬도 있습니다. 원격 에이전트에게도 됩니다. (tmux와 약간의 노가다로 상당 부분 만들 수 있는 건 맞지만, herdr는 깔끔한 CLI/API를 제공하고 바로 쓸 수 있어요.)
제 머릿속 모델에서는 서브에이전트도 탭에 있는 최상위 에이전트와 다릅니다. 서브에이전트는 직접 상호작용할 일 없는 임시 일꾼으로만 좋아요.
Claude Code 세션과 Codex 세션 사이에 메시지를 주고받게 해 주기도 합니다. Claude Code를 쓴다면, 내장 메시징 시스템은 (뻔한 이유로) 다른 Claude Code 세션만 보고 메시지를 보낼 수 있거든요.
이건 새로운 돌파구예요. 그 회사들은 (아마) 이런 기능을 절대 만들지 않을 테니까요.
네이티브 앱을 써 봤는데, TUI와는 완전히 다른 새 단축키 체계더군요. 장점이 뭔지 모르겠어요.
요즘 꽤 유행이죠. 그냥 T3[1]와 같은 분야의 또 다른 경쟁자일 거라고 생각해요.
[1] https://t3.codes/
Claude가 낯선 땅에서 집도 없이 떠돌다가 이제 네이티브 보금자리를 얻었다는 얘기처럼 읽히긴 하네요. 잘됐네요. 요즘은 이민 절차가 만만치 않으니까요.
듣고 보니 정말 그렇게 들리네요.
저는 올해 10년 쓰던 tmux에서 herdr로 갈아탔는데, 한 번도 뒤돌아본 적이 없습니다. herdr는 코딩 에이전트 연동 때문만이 아니라 내부에서 libghostty를 쓴다는 점에서도 훌륭해요. 터미널 에뮬레이터 안에 또 터미널 에뮬레이터가 들어가는 어설픈 상황이 없거든요.
GUI를 선호하신다면 herdr 데몬에 접속하는 herdr-gpui를 추천합니다. 원격 휴대폰 페어링 같은 편의 기능이 많고, 스크린샷과 메모를 코딩 에이전트에게 보내 주는 브라우저 연동도 내장되어 있어요.
https://github.com/penso/herdr-gpui
저는 Zellij를 오래 써 왔고 Herdr도 써 볼까 생각했는데, VC 투자를 받았다는 점이 겁납니다. 나를 상품 취급할 도구에 시간을 잔뜩 들이고 싶진 않거든요.
경험이 정말 좋아요. 일단 써 보세요. 나중에 이상한 짓을 하면 그때 포크하면 되죠.
오픈 소스니까 그렇게 되면 포크하면 되지 않나요? 저는 이미 제 포크에 개인 설정이 쌓이고 있어요.
저도 같은 생각인데, 포크를 유지하는 비용이 최근 몇 년 사이 바닥으로 떨어졌죠. 괜찮은 포크가 힘을 얻으면 제 포크에 토큰을 쓰는 것도 그만둘 수 있을 것 같아요.
저는 이미 ghostty를 쓰고 있는데요. herdr를 설치했는데 tmux 안에서 실행하는 실수를 해서 어떻게 닫는지 알 수가 없었습니다.
그래서 다른 곳에서 다시 열었는데 이번엔 어떻게 조작하는지 몰랐고요. 다른 창 두 개를 같은 herdr 세션에 "합류"시키지도 못해서, 포기하고 tmux로 돌아갔습니다.
screen과 tmux를 거의 30년 쓴 사람에게, herdr는 tmux가 못 하는 뭘 해 주나요?
저는 Claude Code를 많이 씁니다. plannotator도 많이 쓰는데, herdr도 그걸 통해 알게 됐어요.
전부 에이전트 작업에 관한 겁니다. tmux는 에이전트가 뭔지 모르죠. Pi를 쓰든 CC를 쓰든 Codex를 쓰든, 전부 Herdr에서 1급 지원을 받고 각 하니스에 맞춘 연동이 내장되어 있습니다.
하지만 에이전트 작업을 전혀 안 하신다면 Herdr는 tmux보다 가치가 0입니다.
말씀드렸듯이 저는 Claude Code를 많이 쓰는데, "1급 지원"이 구체적으로 어떤 모습인가요? tmux가 왜 에이전트가 뭔지 "알아야" 하죠?
저는 그냥 ghostty 세션 여러 개에 tmux를 쓰고, 탭과 패널마다 다른 Claude Code 세션을 띄워서 그렇게 작업합니다.
평범한 터미널 + tmux를 더 이상 쓰지 말아야 할 만큼 제가 놓치고 있는 게 뭔가요?
ㅋㅋ 다른 답글들은 herdr의 매력이 뭔지는 설명도 안 하고 횡설수설하네요.
참고로 저도 처음엔 herdr가 마음에 들었는데, 일주일쯤 쓰다 그만뒀어요. ghostty에 알림, 하니스 확장만으로도 충분해서 새로 배울 가치가 없더라고요.
tmux가 에이전트가 뭔지 안다면, PTY를 소유하고 있으니 그 에이전트 인스턴스와 통신(입력과 출력)하는 데 그걸 활용할 수 있습니다. 터미널 출력을 어떻게든 구조화할 수 있다는 전제에서요.
에이전트와 통신할 수 있다면 에이전트를 몰 수 있습니다. 작업을 보내고 그 작업의 상태를 전달받을 수 있죠.
그래서 Herdr, Superlogical 같은 도구들은 PTY 소유권과 터미널 프로토콜을 활용해서, 여러 벤더의 CLI 인터페이스를 쓰는 코딩 에이전트를 가로질러 오케스트레이션할 수 있게 해 줍니다.
그런데 Claude Code, Codex 같은 TUI 하니스들도 메시지를 보내야 할 때 서로의 패널에 그냥 타이핑하는 걸 아주 잘합니다. 거의 1년째 잘 되고 있어요. 저는 오히려 T3 code나 비슷한 것에 더 끌려요. 하니스끼리 머신을 넘나들며 메시지를 보낼 수 있게 해 줄 테니까요.
전체적으로 큰 차이는 없지만, 예를 들어 tmux에 터미널이 100개 열려 있는데 그중 10개만 '에이전트'라면, 그걸 찾느라 시간을 들이지 않고 그 10개 사이를 빠르게 전환할 수 있게 해 줍니다. 에이전트 상태도 보여 줘서, 작업이 끝나서 확인해야 하는지 같은 것도 알 수 있고요.
Claude 원격 제어에 Claude 앱/사이트를 쓰면 그걸 다 할 수 있는데요... 갸우뚱.
요점 중 하나가 claude/anthropic 앱에 얽매이지 않아도 된다는 거잖아요? 다른 모델도 쓸 수 있을 테고요.
다른 모델도 자체 하니스가 있을 거라고 생각하지만, 전부 한곳에서 쓰고 싶다면 말이 되겠네요. 저는 모델 하나만 있으면 돼서요.
제 생각엔 이건 하니스를 위한 하니스, 즉 관리 인터페이스에 가까워요. 자체 인터페이스를 갖춘 것도 있고요.