터미널 기반 에이전트 런타임
터미널 안에서 에이전트를 실행·감시하고 계속 유지하는 Rust 기반 멀티플렉서
TL;DR
herdr는 터미널에서 여러 AI 코딩 에이전트를 동시에 실행하고 관리하는 런타임으로, 각 에이전트의 실시간 출력과 상태를 실제 터미널 창처럼 보여준다. 에이전트는 herdr의 소켓 API로 런타임과 상호작용하며 창 생성·출력 읽기·동기화를 수행할 수 있고 세션 분리 후에도 실행이 유지되어 다른 터미널에서 재접속해 이어서 작업할 수 있다. 플러그인과 마켓플레이스, Homebrew·릴리스 바이너리 설치 경로를 제공하며, 단일 Rust 바이너리로 Electron 없이 네이티브 터미널 경험을 유지한다.
주요 기능
- 실제 터미널 창을 그대로 보여주어 각 에이전트의 stdout/stderr와 인터랙션 상태를 한눈에 확인할 수 있다. 창들의 상태는 'blocked, working, done' 같은 상태 표시로 직관화되어 디버깅과 모니터링을 동시에 개선한다. 결과적으로 에이전트 내부 실행 흐름을 텍스트 로그와 상호작용 맥락에서 곧바로 추적할 수 있다.
- 세션 분리(detach) 후에도 에이전트는 계속 실행되며, 다른 터미널이나 SSH 세션에서 재접속해 작업을 이어갈 수 있다. 세션 상태는 재시작을 넘어 보존되므로 장시간 작업, 원격 디버깅, CI 연동 시 작업 지속성이 확보된다. README에는 ctrl+b q로 분리하고 단순히 herdr 명령으로 재접속하는 워크플로가 예시로 제시되어 있다.
- 에이전트가 herdr의 소켓 API를 사용해 스스로 창을 생성하고 출력을 읽으며 서로 대기하는 동작을 수행할 수 있다. 이 인터페이스 덕분에 에이전트들은 외부 프로세스로 동작하면서도 동일한 런타임 안에서 협업·동기화를 수행한다. 개발자는 agent skill 가이드와 API를 통해 에이전트를 런타임에 직접 통합할 수 있다.
- 플러그인 아키텍처와 마켓플레이스를 통해 창 타입과 워크플로를 확장할 수 있다. 플러그인은 특정 형식의 시각화나 자동화된 작업 흐름을 추가하며, 프로젝트별 커스텀 뷰를 만들 때 유용하다. 플러그인 설치와 관리 경로가 문서화되어 있어 확장성이 보장된다.
어떻게 동작하는가
로컬에서 단일 Rust 바이너리로 실행되며 TUI 기반 인터페이스를 띄워 여러 분할 창(pane)을 관리한다. 외부 에이전트는 소켓 API로 런타임에 연결해 창을 생성하고 출력과 이벤트를 주고받으며, 런타임은 세션 상태를 디스크·원격 저장소에 보관해 재접속 시 상태를 복원한다. 플러그인 시스템은 창별 동작과 화면을 확장하며 키보드·마우스 입력을 모두 네이티브 방식으로 처리해 기존 터미널 워크플로와 자연스럽게 결합된다.
해결 문제
일반적인 에이전트 실행 환경은 백그라운드 프로세스와 로그가 흩어져 있어 상태 파악과 상호작용이 어렵다. herdr는 터미널 기반 멀티플렉서를 런타임으로 제공해 각 에이전트의 입력·출력·상태를 통합된 UI에서 관리하고, 소켓 API로 에이전트 간 협업을 가능하게 한다. 이를 통해 원격 접속·디버깅·장기 실행 작업의 가시성과 운영 편의성이 동시에 향상된다.
차별점
- 터미널을 단순한 로그 뷰가 아니라 실제 실행 환경으로 유지해 에이전트가 인간과 동일한 콘솔 상호작용을 하게 만든다. 결과적으로 에이전트의 입력 프롬프트와 출력 텍스트를 그대로 조작할 수 있어 디버깅이 직관적이며, 텍스트 기반 워크플로우를 해치지 않는다. 이 접근은 Electron 기반 UI나 웹 래핑 대신 네이티브 터미널 경험을 우선시한다.
- 에이전트 친화적 소켓 API를 노출해 에이전트를 단순한 클라이언트가 아닌 런타임 내부 참가자로 구성한다. 에이전트는 런타임에서 창을 생성하고 서로 출력에 의존하는 워크플로를 구성할 수 있어 복잡한 조정 작업을 런타임 수준에서 처리한다. 이 구조는 에이전트 오케스트레이션과 상태 동기화를 단순화한다.
- 단일 Rust 바이너리로 설계되어 별도의 데스크톱 런타임이나 브라우저 기반 UI가 필요하지 않다. 이로 인해 의존도가 낮고 배포가 간편하며 Homebrew와 릴리스 바이너리로 빠른 설치가 가능하다. 또한 tmux 스타일 단축키와 마우스 입력을 모두 지원해 기존 터미널 사용자 경험을 해치지 않는다.
사용 사례
- 로컬 개발자의 코딩 에이전트를 동시에 여러 작업 창에서 실행·모니터링할 때 유용하다. 에이전트별 로그·상태·입력 흐름을 하나의 TUI에서 관찰하고 분리된 세션을 통해 장시간 작업을 유지할 수 있다. 개발자는 오류 재현과 반복 실험을 동일 환경 안에서 빠르게 수행할 수 있다.
- 원격 서버나 SSH 환경에서 에이전트를 실행하고 재접속해 이어서 작업해야 하는 시나리오에 적합하다. 분리된 세션이 지속되기 때문에 네트워크 연결이 끊겨도 진행 중인 작업을 잃지 않고 다른 터미널에서 복원할 수 있다. 이는 원격 디버깅과 장기 잡 모니터링에 특히 도움이 된다.
- 프로젝트별 플러그인을 설치해 자동화된 빌드·테스트·시각화 파이프라인을 터미널 내부에 통합할 때 효율적이다. 플러그인은 특정 입력을 트리거하거나 출력을 가공해 맞춤형 대시보드를 제공할 수 있다. 결과적으로 CI·테스트 피드백 루프를 개발자의 인터랙티브 환경으로 끌어들일 수 있다.
시작하기
README에 제시된 빠른 경로는 공식 설치 스크립트를 통한 설치이며 curl 명령으로 다운로드해 시스템에 설치하면 즉시 herdr 명령으로 세션을 시작할 수 있다. Homebrew 패키지와 GitHub 릴리스 바이너리도 제공되어 플랫폼에 맞는 설치가 가능하다. 개발자는 소스에서 cargo build --release로 직접 빌드해 로컬 개발 빌드를 생성하고 just 도구로 테스트 및 포맷 검사를 병행할 수 있다.
요구사항
- 릴리스 바이너리를 사용하는 경우 별도 빌드 환경이 필요하지 않으며, README에 Homebrew와 Windows beta 설치 방법이 안내되어 있다. 이 방법으로 설치하면 추가 개발 툴체인 없이 바로 herdr를 실행할 수 있다. 다만 플러그인 개발이나 소스 빌드는 Rust toolchain과 cargo가 필요하다.
- 소스에서 빌드하려면 Rust toolchain과 적절한 빌드 툴이 필요하다. cargo build --release 명령을 통해 최종 바이너리를 생성할 수 있고, 빌드 환경이 준비되어 있으면 플러그인 개발과 테스트 실행이 가능하다. Windows에 관해서는 README가 'beta' 설치 명령을 제시하므로 별도의 플랫폼별 제약을 확인해야 한다.
23.1k
Stars
1.6k
Forks
+206
Trending
0
조회수
관련 토론
아직 관련 토론이 없습니다.
댓글
댓글을 작성하려면 로그인이 필요합니다.