
Herdr은 AI 코딩 에이전트를 여러 개 동시에 다루기 위한 터미널 기반 워크스페이스 매니저다. 전통적인 tmux나 zellij처럼 터미널 세션, 탭, 패널을 관리할 수 있다.
그러나 Herdr의 차별점은 Claude Code, Codex, OpenCode, Hermes Agent, Pi와 같은 AI agent의 상태를 인식하고 한 화면에서 관리할 수 있다는 점이다.
Herdr가 필요한 이유
최근 개발 환경은 IDE 중심에서 CLI 기반 AI agent 중심으로 빠르게 변화하고 있다. 하나의 프로젝트 안에서 Codex로 구현을 시키고, Claude Code로 리뷰를 하고, Pi나 다른 agent로 테스트나 문서화를 하는 식의 병렬 작업이 가능해졌다.
그러나 여러 agent를 동시에 실행하면 아래와 같은 고민이 생긴다.
- 어떤 agent가 작업 중인지 알기 어렵다.
- 어떤 agent가 사용자 입력이나 승인 대기 상태인지 놓치기 쉽다.
- 여러 프로젝트와 여러 터미널 창이 섞여서 알아보기 힘들다.
- 원격 서버에서 실행 중인 agent 세션을 유지하기 어렵다.
- agent끼리 출력을 읽거나 보조 프로세스를 실행하는 자동화가 어렵다.
Herdr는 위 문제를 해결하기 위해 만들어진 터미널 네이티브 도구이다.
핵심 개념
Herdr은 아래의 구조로 동작한다.
Terminal
└─ Herdr
├─ Workspace
│ ├─ Tab
│ │ ├─ Pane: Claude Code
│ │ ├─ Pane: Codex
│ │ └─ Pane: npm run dev
│ └─ Tab
│ └─ Pane: test runner
└─ Workspace
└─ ...
기존 터미널은 화면을 보여주는 껍데기 역할을 하고, Herdr가 터미널내에서 workspace, tab, pane, session, agent 상태를 관리한다.
주요 기능
Workspace 관리
Herdr는 프로젝트 단위로 workspace를 구성한다. 일반적으로 Git repo나 폴더 이름을 기준으로 workspace를 만들고, 각 workspace안에 여러 tab과 pane을 만들 수 있다.
예를 들어서 하나의 프로젝트에서 아래의 구성이 가능하다.
my-project
├─ tab: agents
│ ├─ pane: codex
│ └─ pane: claude
├─ tab: dev
│ ├─ pane: npm run dev
│ └─ pane: test watcher
└─ tab: shell
└─ pane: 일반 터미널
위 구조로 작업을 하면 agent와 작업 세션을 분리해서 관리할 수 있다. :)
Tab과 Pane
Herdr는 터미널내에서 tab과 pane을 제공한다. 일반적인 터미널 multiplexer처럼 화면을 나누고, 각 pane에서 독립적인 shell이나 cli기반 agent를 실행할 수 있다.
사용하는 터미널의 기능이 중요하지 않다. 과거 Terminator나 요즘 인기있는 kitty, WezTerm, Warp에서 제공하는 터미널 자체의 분할 기능은 필요없다.
따라서 Herdr를 사용한다면 KDE konsole, Gnome Terminal, Ghostty 같은 일반 터미널에서도 충분히 복잡한 agent workflow를 구성할 수 있다.
Agent 상태 인식
Herdr의 가장 중요한 기능은 agent 상태 인식이다.
Herdr는 각 pane에서 실행 중인 agent의 상태를 감지해 사이드바에 표시한다.
- working: agent가 현재 작업 중인 상태
- blocked: 사용자 입력, 승인, 확인이 필요한 상태
- done: 작업이 끝났지만 사용자가 아직 확인하지 않은 상태
- idle: 작업이 끝났고 사용자가 확인한 상태
이 기능은 여러 agent를 병렬로 돌릴 때 유용하다. Codex는 아직 동작중이고, Claude는 사용자 승인 대기중이며, Pi는 작업을 끝낸 상태라면 Herdr의 사이드바에서 이를 빠르게 확인할 수 있다.
세션 유지와 재접속
Herdr는 tmux처럼 detach/reattach 방식을 지원한다. 사용자가 Herdr를 닫아도 pane 안의 프로세스는 계속 살아 있고, 나중에 다시 접속해 작업을 이어갈 수 있다.
AI agent 작업은 몇 분에서 몇십 분 이상 걸릴 수 있기 때문에, 세션 유지 기능은 매우 중요하다. 특히 원격 서버에서 agent를 실행하거나, 긴 빌드/테스트 작업을 함께 돌릴 때 매우 유용하다.
Remote / SSH 지원
Herdr는 일반 SSH 환경에서도 사용할 수 있다. 원격 서버에 접속해 Herdr를 실행하고, 나중에 다시 접속하는 방식이 가능하다.
로컬 터미널에서 remote Herdr 세션에 바로 attach하는 방식도 지원한다. 이 기능은 개발 서버에서 장시간 agent 작업을 돌리는 사용자에게 적합하다.
Agent용 Socket API
Herdr는 단순히 사람이 조작하는 터미널 도구에 그치지 않는다. 로컬 Unix socket API를 제공해 agent가 Herdr 자체를 제어할 수 있다.
예를 들어 agent는 다음과 같은 일을 할 수 있다.
- 새 workspace 만들기
- pane 분할하기
- 특정 pane에서 명령 실행하기
- 다른 pane의 출력 읽기
- 특정 문자열이 출력될 때까지 기다리기
- 다른 agent가 완료될 때까지 기다리기
이 기능은 Herdr를 “agent-native workspace manager”로 만드는 핵심 요소다.
기존 터미널에서 사용
Herdr는 Electron 앱이나 별도 GUI가 아니다. 기존 터미널에서 실행되는 단일 바이너리 형태의 도구다. 따라서 사용자는 자신이 선호하는 터미널을 그대로 사용할 수 있다.
예를 들면 다음 조합이 가능하다.
Ghostty + Herdr
Kitty + Herdr (전 요거 써요. :-))
WezTerm + Herdr
Konsole + Herdr
GNOME Terminal + Herdr
Herdr가 workspace와 pane을 관리하므로, 터미널은 빠르고 안정적으로 화면을 보여주는 역할만 해도 충분하다.
지원되는 Agent
Herdr는 CLI 기반 AI agent를 감지하고 관리할 수 있다. 공식 문서 기준으로 Claude Code, Codex, OpenCode, Hermes Agent, Pi, GitHub Copilot CLI 등 다양한 agent가 지원 대상에 포함되어 있다.
일부 agent는 기본 프로세스 감지와 터미널 출력 휴리스틱으로 상태를 인식하고, 일부는 socket API 기반 direct integration을 통해 더 정확한 상태 보고를 지원한다.
다만 모든 agent가 동일한 수준으로 검증된 것은 아니기에 실제 사용 하기 전에 공식 문서를 확인하는 것이 좋다.
Herdr와 tmux의 차이
Herdr는 tmux와 비슷한 역할을 하지만 목표가 다르다. tmux는 범용 terminal multiplexer다. 반면 Herdr는 AI agent workflow를 전제로 만들어졌다.
| 구분 | tmux | Herdr |
|---|---|---|
| 핵심 목적 | 터미널 세션 관리 | AI agent 세션 관리 |
| Pane / Tab | 지원 | 지원 |
| Detach / Reattach | 지원 | 지원 |
| Agent 상태 인식 | 없음 | 있음 |
| Agent 제어 API | 제한적 | Socket API 제공 |
| AI coding workflow | 사용자가 직접 구성 | 기본 설계 방향 자체가 agent 중심 |
따라서 단순 서버 작업이나 오래된 운영 환경에는 tmux가 여전히 좋다. 하지만 여러개의 AI coding agent를 동시에 실행하고 상태를 확인해야 하는 환경에서는 Herdr가 더 좋다고 생각한다.
Herdr와 함께 할 터미널은?
Herdr를 사용한다면 터미널 선택 기준도 달라진다.
Kitty나 WezTerm처럼 자체 pane 기능이 강력한 터미널을 쓰지 않아도 된다. Herdr가 workspace, tab, pane, session을 관리하기 때문이다. (그래도 Kitty는 사랑!)
따라서 Herdr와 함께 사용할 터미널은 다음 조건을 보면 된다.
- 빠른 렌더링
- 안정적인 한글/폰트 처리
- Wayland 또는 사용 중인 데스크톱 환경과의 호환성
- 복잡하지 않은 설정
- 장시간 실행 안정성
KDE 환경이라면 기본 Konsole도 충분히 좋은 선택이다. 더 현대적인 느낌을 원하면 Ghostty, 터미널 자체의 고급 기능까지 원하면 Kitty나 WezTerm을 고려할 수 있다.
장점
Herdr의 장점은 다음과 같다.
- 여러 AI agent를 동시에 실행할 때 상태를 한눈에 볼 수 있다. 단순히 터미널 창을 많이 띄우는 것보다 관리가 쉽다.
- 기존 터미널 환경을 그대로 사용할 수 있다. 별도 GUI나 무거운 앱을 띄우지 않아도 된다.
- tmux처럼 세션을 유지하고 다시 붙을 수 있다. 장시간 실행되는 agent 작업에 적합하다.
- socket API를 통해 agent가 Herdr를 직접 제어할 수 있다. 이는 향후 agent orchestration이나 자동화 workflow와 잘 맞는다.
- workspace 단위로 프로젝트를 분리할 수 있어 여러 repository를 동시에 다루는 개발자에게 유리하다.
주의 사항
Herdr는 아직 빠르게 발전 중인 도구다. 따라서 사용하는 버전에 따라 기능이나 안정성이 달라질 수 있다.
- 특정 agent의 상태 감지 정확도
- remote attach 안정성
- 대규모 세션 복원 시 안정성
- 사용 중인 터미널과의 키 바인딩 충돌
그리고 Herdr가 모든 문제를 해결하는 것은 아니다. AI agent의 품질, 컨텍스트 관리, Git workflow, 테스트 자동화, 메모리 공유 구조는 별도로 설계해야 한다. (한번 이용해보세요. https://github.com/giljae/agent-boosters)
누구에게 적합한가?
Herdr는 다음과 같은 사용자에게 잘 맞는다.
- Claude Code, Codex, OpenCode 등 여러 CLI agent를 동시에 사용하는 사용자
- 하나의 프로젝트에서 여러 agent에게 병렬로 일을 맡기는 사용자
- tmux나 zellij를 쓰고 있지만 AI agent 상태 관리가 아쉬운 사용자
- 원격 서버에서 agent를 오래 실행하는 사용자
- terminal-first 개발 환경을 선호하는 사용자
- IDE보다 CLI 중심 workflow를 선호하는 사용자
반대로 단일 agent만 가끔 실행하는 사용자라면 Herdr의 장점이 크게 체감되지 않을 수 있다. 이 경우에는 일반 터미널에서 Codex나 Claude Code 혹은 Desktop 버전을 사용하는 것만으로 충분하다.
추천 사용 구조
Herdr를 사용할 때는 다음과 같은 구조가 깔끔하다.
Terminal
└─ Herdr
├─ Workspace: project-a
│ ├─ Pane: Codex
│ ├─ Pane: Claude Code
│ ├─ Pane: npm run dev
│ └─ Pane: test
└─ Workspace: project-b
├─ Pane: Hermes Agent
└─ Pane: shell
이 구조에서 터미널은 화면을 담당하고, Herdr는 agent 세션과 작업 상태를 담당한다. 실제 구현, 리뷰, 테스트, 문서화는 각 agent가 수행한다.
마무리
Herdr는 AI agent를 많이 사용하는 개발자를 위한 터미널 기반 workspace manager다. 기존 tmux나 zellij가 터미널 세션을 관리했다면, Herdr는 한 단계 더 나아가 AI agent의 상태와 작업 흐름까지 관리한다.
특히 여러 agent를 동시에 실행하는 환경에서는 Herdr의 가치가 크다. 어떤 agent가 작업 중인지, 어떤 agent가 막혔는지, 어떤 작업이 끝났는지를 한 화면에서 확인할 수 있기 때문이다.
아직 빠르게 발전 중인 도구이므로 안정성과 호환성은 계속 확인해야 하지만, CLI 기반 AI coding workflow를 적극적으로 사용하는 개발자라면 충분히 주목할 만한 도구다.