Transcript
00:00:00herder는 여러분이 이미 사용 중인 터미널 안에서 실행되는 에이전트 멀티플렉서입니다.
00:00:05여러 코딩 에이전트를 서로 다른 창이나 탭에 나란히 띄워놓고 어떤 에이전트가 작동 중인지,
00:00:10어떤 게 막혀있거나 완료되었는지 시스템 알림과 함께 확인할 수 있죠. 단일 러스트 바이너리로
00:00:15전자(Electron)나 별도의 앱이 필요 없습니다. SSH에서도 작동하는 영리한 방식을 갖췄죠.
00:00:20cmux 같은 도구가 인기를 얻는 상황에서 왜 굳이 herder를 써야 할까요? 구독 누르고 알아보죠.
00:00:28herder는 ogle can celix라는 개발자가 만들었는데, 아마 2000년대 초반 팬이라서 'herder'에서 e를
00:00:34뺀 게 아닐까 추측해 봅니다. 아무튼 herder는 이름처럼 여러 에이전트를 양치기처럼
00:00:39몰아서 관리할 수 있는 도구입니다. 이게 왜 중요하냐면, 대부분의 개발자들이
00:00:45AI로 개발을 할 때 각 에이전트가 무엇을 하고 있는지 파악하기가 어렵기 때문입니다.
00:00:49herder는 탭과 분할 창을 지원하고 연결이 끊겨도 세션을 유지하는 터미널 멀티플렉서인
00:00:54tmux에서 많은 영감을 받았습니다. 하지만 tmux는 AI 에이전트가 존재하기 훨씬 전인
00:01:00수십 년 전에 만들어졌죠. 그래서 tmux 창 안에서 에이전트를 실행해도 tmux는 그 존재나 상태를 모릅니다.
00:01:06이런 이유로 warp나 cmux 같은 도구들이 생겨났죠. 이들은 기존 터미널을 벗어나 자신들의 터미널로
00:01:12옮겨가게 하므로, 사용자는 새로운 워크플로를 배워야만 합니다.
00:01:18그래서 ogle can celix는 tmux의 지속성과 에이전트 인지 기능을 모두 갖춘 herder를 만들었습니다.
00:01:24herder는 ratatouille로 만든 하나의 러스트 바이너리라서 전체가 터미널 텍스트 렌더링 방식입니다.
00:01:29따라서 SSH를 포함해 터미널이 실행되는 곳이라면 어디서든 작동합니다. 소켓 API도 있어서
00:01:35에이전트들이 직접 herder를 제어할 수도 있죠. 정말 인상적입니다.
00:01:40간단히 데모를 보여드리죠. brew나 curl, 또는 nix flake로 herder를 설치한 뒤
00:01:46herder 명령어를 실행하면 이런 화면이 뜹니다. 터미널, 워크스페이스, 에이전트들이 보이죠.
00:01:50줌을 좀 당겨놔서 명령어 전체가 다 보이진 않겠지만 최대한 자세히 보여드리겠습니다.
00:01:56보시다시피 워크스페이스가 하나도 없네요. 기본 프리픽스(접두어)는 tmux와 비슷한 ctrl+b입니다.
00:02:00이건 나중에 바꾸는 법을 알려드릴게요. 프리픽스가 이미 활성화되어 있는 상태라
00:02:05아래쪽 내비게이션 바에서 확인할 수 있습니다. 이제 shift + n을 누르면 새로운 워크스페이스가 생성됩니다.
00:02:10물론 키보드만으로도 제어할 수 있습니다.
00:02:14프리픽스에 이어 물음표를 누르면 모든 키보드 단축키를 볼 수 있습니다. 물론 마우스를 써도 되죠.
00:02:19새 탭을 만들어 'two'라고 부를 수도 있고, 마우스 우클릭으로 탭을 닫거나
00:02:23워크스페이스 이름을 'test'로 바꾸고, 새 워크스페이스를 만들거나 메뉴 설정을 열 수도 있습니다.
00:02:28가로/세로 분할을 하거나 특정 창 이름을 변경하고 창 사이를 이동하는 것까지 모두 마우스로 가능합니다.
00:02:34하지만 herder의 진정한 강점은 에이전트와의 상호작용입니다.
00:02:38현재는 bash를 쓰고 있지만 전 fish를 좋아해서 둘 다 변경하겠습니다.
00:02:43이제 위쪽엔 claude code를, 아래쪽엔 codex를 엽니다.
00:02:46보시다시피 herder가 에이전트들을 자동으로 인식해서 상태를 보여줍니다.
00:02:51Claude는 막혀있고(blocked), Codex는 유휴 상태(idle)네요. 이 디렉토리들에 접근 권한을 줍시다.
00:02:55두 에이전트 모두에게 “내가 어떤 모델을 사용 중이지?” 같은 질문을 던지면,
00:03:00herder가 즉시 Claude의 상태를 'working'으로 업데이트해 줍니다. codex cli도 마찬가지죠.
00:03:05워크스페이스가 잘못된 걸 알았으니 지우고 새로 이름을 'test'로 바꿀게요.
00:03:09herder에서는 에이전트가 직접 워크스페이스, 탭, 분할 창을 만들 수도 있습니다. 보여드리죠.
00:03:15프리픽스 + q를 눌러 종료합니다. 그러면 herder cli가 제공하는 모든 옵션이 보이죠.
00:03:20다시 herder로 돌아가 보겠습니다. 장점 중 하나는 이전 세션과 워크스페이스, 에이전트 상태가 그대로 유지된다는 점입니다.
00:03:24이제 새 워크스페이스를 만들고 디렉토리로 이동한 뒤 claude code를 엽니다.
00:03:29그리고 herder cli를 사용해서 claude code를 두 창에 띄워보겠습니다.
00:03:34하나는 “프로젝트에서 가장 큰 파일을 요약해 줘”라는 프롬프트로, 다른 하나는
00:03:38“코드베이스에서 하드코딩된 API 키나 비밀 정보를 찾아줘”라는 프롬프트로 실행합니다.
00:03:44새 창이 떴습니다. 줌을 좀 줄여서 전체적으로 보겠습니다. 이제 각자 프롬프트를 실행 중입니다.
00:03:49스크롤을 올려보니 첫 번째 작업은 끝났네요. 각 창에 적절한 제목(claude secrets, discord 등)도 붙었습니다.
00:03:54비밀 키는 발견되지 않았군요. 이제 두 창의 출력을 요약하고 Claude에게 창을 닫으라고 시켜보겠습니다.
00:03:58첫 번째 창의 정보를 가져와서 창을 닫고, 두 번째 창도 똑같이 처리했습니다.
00:04:03그리고 아래쪽에 보기 좋게 요약을 정리해 줍니다. herder는 터미널에 설치하는 바이너리일 뿐이라
00:04:09맥과 똑같은 방식으로 리눅스 서버에도 설치할 수 있습니다.
00:04:14아까 작업하던 세션이 그대로 복구된 게 보이시죠? open code가 한쪽에 있고 vim으로 코드를 보는 중입니다.
00:04:18하지만 문제는 제 맥에서 설정한 환경 설정이 서버에는 적용되지 않는다는 점입니다.
00:04:23사실 저는 프리픽스를 ctrl+b에서 ctrl+space로 바꾸고 테마를 'terminal'로 변경한 것뿐이지만,
00:04:28복잡한 단축키 설정이 담긴 환경 파일이 있다면 꽤나 성가실 겁니다.
00:04:32이를 해결하는 방법은 herder를 'remote' 플래그와 함께 사용해 서버에 SSH로 접속하는 것입니다.
00:04:36herder는 서버와 얇은(thin) 클라이언트가 유닉스 소켓으로 통신하는 구조입니다.
00:04:41클라이언트는 키 입력을 서버로 보내고, 서버는 탭과 창, 세션 지속성을 관리하죠.
00:04:45SSH를 이용하는 remote 모드에서는 서버는 원격 기기에서 돌고 클라이언트는 내 컴퓨터에서 돕니다.
00:04:50유닉스 소켓을 통해 입력을 주고받으며, 내 컴퓨터의 환경 설정을 원격지에서도 그대로 사용할 수 있게 됩니다.
00:04:55실제로 해보죠. 엔터를 누르면 SSH 서버에 접속됩니다. vim으로 보는 파일이 그대로 있네요.
00:05:01그런데 ctrl+b는 반응이 없죠. 왜냐하면 제 맥의 설정대로 ctrl+space가 프리픽스이기 때문입니다.
00:05:06메뉴를 좀 더 볼까요? 키 바인딩을 확인할 수 있고, 테마도 바꿀 수 있습니다.
00:05:11nord부터 gruvbox, catppuccin 등 다양한 테마가 있습니다.
00:05:18사운드 알림이나 토스트 메뉴도 켜고 끌 수 있고요.
00:05:24아직 소개하지 못한 기능이 너무 많습니다. worktree 통합이나 공식 에이전트 연동 기능들,
00:05:30종료 직전의 정확한 세션을 복구하는 기능 등 말이죠.
00:05:35기존 터미널에서 바로 작동한다는 점이 가장 큰 장점입니다.
00:05:40저는 cmux도 좋아하지만, 제가 완벽하게 커스텀한 터미널에서 그냥 herder를 실행하기만 하면
00:05:45모든 에이전트를 관리할 수 있다는 점이 정말 매력적입니다.
00:05:49cmux의 웹 브라우저 기능을 안 쓰게 된다는 단점은 있지만, 전 어차피 잘 안 썼으니까요.
00:05:54윈도우 사용자분들께는 안타까운 소식입니다. 유닉스 소켓과 PTY 의존성 때문에
00:05:59현재 윈도우는 완벽한 지원이 안 됩니다. 윈도우를 꼭 써야 한다면 그냥 리눅스를 듀얼 부팅하세요.
00:06:04WSL이 있긴 하지만, 완전 같진 않으니까요.
00:06:10터미널이나 시스템을 통해 변경할 수 있습니다. 이제 늘 그렇듯
00:06:15Herder에는 제가 아직 다루지 못한 기능들이 너무나 많습니다. 워크트리 통합이나
00:06:19공식 Harness 통합 같은 것들이죠. 데모에서 보셨겠지만, Harness가
00:06:24Herder 공식 스킬에 접근하게 해주고, Herder를 닫기 전에
00:06:29사용하던 세션을 정확히 재개할 수 있게 해줍니다. 솔직히 이게 기존 터미널에서
00:06:35작동한다는 점이 가장 큰 장점입니다. Tmux를 사랑하는 만큼, 저는 WezTerm을
00:06:39훨씬 더 많이 사용하고, 제 취향대로 완벽하게 설정해 두었거든요. 에이전트를 관리하고 싶으면
00:06:45WezTerm에서 터미널 탭을 하나 더 열고 Herder를 실행하기만 하면 되니까요. 네, Tmux의
00:06:50웹 브라우저 기능이 아쉽긴 하지만, 솔직히 저는 거의 쓰지 않았습니다. 지금 시청하고 계신
00:06:54Windows 사용자분들께는 정말 안타까운 소식이 있습니다. 유닉스 소켓 문제와
00:06:59Herder가 터미널 PTY를 사용한다는 점 때문에 현재 Windows 지원은 완벽하지
00:07:04않습니다. 하지만 Windows를 쓰신다면 이제 결단을 내려서 리눅스를 듀얼 부팅하시는 게 좋을 겁니다. WSL이 있긴 하지만, 완전 똑같지는 않잖아요.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video