00:00:00브라우저를 열고 제어할 수 있는 기능을 코딩 에이전트에게 부여하는
00:00:04코딩 에이전트 전용 터미널, Cmux입니다. 다른 패널에 서브 에이전트를 생성하고 사용자 정의 알림을 보내는 등
00:00:09CLI와 소켓 API를 통해 훨씬 더 많은 작업을 수행할 수 있죠.
00:00:13하지만 Warp, Solotam, Dmux 같은 다른 터미널 에이전트들이 많은 상황에서
00:00:19Cmux만의 특별한 점은 무엇일까요?
00:00:20구독 버튼을 누르시고, 바로 시작해 보겠습니다.
00:00:24이름과 달리 Cmux는 tmux와는 관련이 없습니다. libghosty를 기반으로 구축된 네이티브 Mac 앱으로,
00:00:30웹킷 브라우저와 레이아웃을 위한 bon-split을 사용합니다. 그래서 탭과 패널 등을
00:00:36지원하는 것이죠.
00:00:37하지만 진짜 마법은 에이전트가 앱과 통신하는 방식에 있습니다.
00:00:41직접 보여드리겠습니다.
00:00:42Cmux를 설치하고 설정하면 탭을 지원하는 일반적인 형태의 터미널을
00:00:46볼 수 있습니다. 수직 또는 수평으로 화면 분할이 가능하며,
00:00:53원한다면 분할된 화면 안에 탭을 구성할 수도 있습니다.
00:00:55Cmux가 설치되면 Cmux CLI에도 접근할 수 있게 되는데, 이를 통해
00:01:00새 워크스페이스나 분할 패널을 생성하고, 사이드바에 로그나 진행 상황 같은 정보를 표시하며
00:01:06심지어 tmux 호환 명령어를 사용하는 등 다양한 옵션을 제공합니다.
00:01:11이 모든 것은 나중에 설명할 Cmux 유닉스 소켓 덕분입니다.
00:01:15이제 흥미로운 작업을 하나 해보죠.
00:01:16먼저 터미널을 정리하고 'claude code'를 실행하겠습니다. 사이드바 제목이 바뀐 것을 볼 수 있죠.
00:01:20토큰 낭비를 막기 위해 모델은 haiku로
00:01:25변경하겠습니다.
00:01:26그다음 Claude에게 Cmux CLI를 사용해 새 분할 패널에서 브라우저를 열고,
00:01:30google.com으로 이동해 입력창에 'hello world'를 입력하고 검색하라고 요청하겠습니다.
00:01:36엔터를 누르면 Claude가 작업을 시작합니다.
00:01:38여기서 Cmux 사용법을 배우고 있네요.
00:01:40구글 탭을 새로 열었습니다.
00:01:42검색을 수행하는지 지켜보죠.
00:01:44좋아요, 조금 고민하는 듯하더니
00:01:45'hello world' 검색을 마쳤습니다.
00:01:47검색 결과가 완벽하게 나왔네요.
00:01:49심지어 링크를 클릭하라고 시킬 수도 있습니다.
00:01:51예를 들어 여기 있는 IMDb 링크를 클릭하고 싶다면, “IMDb의 hello world 링크를
00:01:55클릭해줘”라고 말하면 됩니다.
00:01:57그러면 Claude가 바로 실행하죠.
00:01:59정말 멋진 점은 이 분할 패널 브라우저 안에서도 개발자 도구를
00:02:04사용할 수 있다는 것입니다. 작업 중인 페이지를 디버깅할 때 큰 도움이 되죠.
00:02:07이 모든 것은 샐즈(cells) 에이전트 브라우저의 API 설계와 유사한
00:02:11브라우저 명령어로 수행됩니다.
00:02:12이렇게 브라우저와 터미널을 나란히 보는 것의 장점은 에이전트가
00:02:16브라우저를 탐색하고 테스트한 결과를 보내면, 개발자가
00:02:20실시간으로 확인할 수 있다는 점입니다.
00:02:21다른 것도 시도해 봅시다.
00:02:22이 탭을 닫고 모든 정보를 정리하겠습니다.
00:02:25Claude에게 분할 패널에 자신의 인스턴스를 두 개 생성하라고 요청하겠습니다. 하나는
00:02:30프로젝트를 이해하고, 다른 하나는 이 프로젝트의 코드를 분석하기 위해서죠.
00:02:33작업이 끝나면 정보를 메인 Claude 인스턴스에 전달하고
00:02:38패널을 닫아야 합니다.
00:02:39엔터를 누르면 두 개의 분할 패널이 생기고, 양쪽에서 Claude가 실행됩니다.
00:02:45이제 지시 사항을 전달하는 모습을 볼 수 있는데, 실시간으로 보니 정말 신기하네요.
00:02:50선택되지 않은 패널은 약간 어두운데, 클릭하면
00:02:53밝게 만들 수 있습니다.
00:02:54시간이 좀 걸리니 이 부분은 영상에서 빠르게 넘기겠습니다.
00:02:57두 분할 패널의 작업이 끝나자 Claude가 자동으로 패널을 닫았습니다. 그리고
00:03:02여기 첫 번째 인스턴스와 아래 두 번째 인스턴스에서 정보를 가져왔네요. 정말 멋집니다.
00:03:07여러 서브 에이전트가 멈추지 않도록 권한을 확인하는 등
00:03:11활용 방법은 무궁무진합니다.
00:03:12하지만 방금 보여드린 데모의 한 가지 문제점은, 에이전트 중 하나가
00:03:16알림을 보내거나 제 도움이 필요할 때 제가 알기 쉽지 않다는 점이었습니다.
00:03:21다행히 Cmux는 이 점을 쉽게 해결해 줍니다.
00:03:23다시 해보죠.
00:03:24새 Claude code 세션에서 Cmux를 이용해 분할 패널에 새 Claude 인스턴스를
00:03:28생성하라는 프롬프트를 입력하겠습니다. 그리고 그 패널에서 이 프로젝트의
00:03:33코드 개선 사항을 분석하고 제안하라고 시키겠습니다.
00:03:36작업이 완료되면 Cmux를 통해 적절한 알림을 작성하고 'trigger-flash'를 실행해 제
00:03:40주의를 끌도록 하겠습니다.
00:03:41이 명령은 지정된 패널의 테두리를 파란색으로 깜빡이게 합니다.
00:03:45분석이 진행되는 동안 새 워크스페이스를 만들고
00:03:48'open-code'를 실행하겠습니다.
00:03:49Cmux의 장점은 CLI 형태이기 때문에 어떤 에이전트 도구와도 함께 실행될 수 있다는 것입니다.
00:03:54'open-code'를 열자마자 Cmux로부터 알림이 온 것을 확인할 수 있습니다.
00:03:58종 모양 아이콘을 클릭하면 병렬 분석이 시작되었다는 것을 알 수 있습니다. 아직 끝난 건 아니죠.
00:04:03하지만 알림을 클릭하면 정보가 들어있는 오른쪽 패널을 보여줍니다.
00:04:07제가 요청한 대로 정확히 수행되지 않아서 다시 실행하라고 지시하겠습니다.
00:04:10분석이 진행되는 동안 원래 하려던 작업인 'open-code'로 돌아가서
00:04:13Cmux CLI를 사용해 프로젝트 브랜치 이름을 추가하고
00:04:19브랜치 이름 옆에 적절한 아이콘을 넣어보겠습니다.
00:04:21엔터를 누르고 결과를 기다리면 다시 Cmux로부터 알림이 옵니다.
00:04:25병렬 분석이 시작되었다는 알림인데, 이번에는
00:04:29제대로 시작된 것 같네요.
00:04:30사이드바 내에서 메시지도 확인할 수 있습니다.
00:04:32이제 완료되었습니다.
00:04:33분할 패널을 닫고 사이드바 텍스트를 지우라고 요청하겠습니다.
00:04:36보시는 것처럼 적절한 아이콘과 함께 브랜치 이름이 추가되었습니다. 아까 제가
00:04:40SF 아이콘이라고 말했는데, 실제로는 SF 심볼을 의미한 거였거든요. 알아서 잘 이해했네요.
00:04:45그리고 분할 패널을 닫고 사이드바에 있던 텍스트도 제거했습니다.
00:04:49이 예시들은 아주 간단한 것들이었지만, 에이전트가 터미널을 제어할 때
00:04:52Cmux가 얼마나 강력한 능력을 발휘하는지 엿볼 수 있었기를 바랍니다.
00:04:57진행 표시줄 사용, 워크스페이스에 사용자 지정 색상 추가,
00:05:00에이전트를 이용한 탭 이름 변경, 명령 팔레트의 모든 옵션 표시 등
00:05:05멋진 기능들을 다 보여드리지도 못했습니다. Cmux가 사용자의 ghosty
00:05:10설정을 읽고 적용할 수 있다는 점도요.
00:05:11저는 어떤 훅이나 스킬 없이 Cmux를 사용했고, Claude code에서 샌드박스를 비활성화했습니다.
00:05:16그렇지 않으면 오류가 났을 테니까요. 하지만 제작자가 만든 Cmux용 core 및 browser
00:05:20스킬을 사용하는 것을 적극 추천합니다. 또한 Claude code 훅과 함께 설정하여 자동으로
00:05:26알림을 보내거나 커스텀 스크립트를 작성해 보세요.
00:05:29이 모든 것들이 Cmux를 훨씬 유용하게 만들지만, 스킬과 알림 설정을
00:05:33수동으로 복사해서 붙여넣는 대신
00:05:38처음부터 더 쉽게 설정할 수 있는 방법이 있었으면 좋겠습니다.
00:05:39어떤 에이전트 도구를 사용하는지 자동으로 감지해 올바른 디렉토리에 스킬을 적용해주는
00:05:43skills.sh처럼, Cmux도 전체 설정을 도와주는
00:05:48기능이 생기길 바랍니다.
00:05:49그래도 Cmux는 이미 훌륭한 도구이며, 설정 스크립트는 나중에 추가될 수 있을 겁니다.
00:05:53메모리와 성능에 유리한 네이티브 Mac 앱이라는 점이 정말 마음에 들고,
00:05:58CLI가 유닉스 소켓을 통해 JSON으로 앱과 통신한다는 점이
00:06:02통신을 빠르고 단순하게 만들어 줍니다.
00:06:04빠르고 단순한 것에 대해 말하자면, SQLite보다 138배 빠른
00:06:10Rust 기반 데이터베이스 StoolLab에 대해 알고 계신가요? Andris의
00:06:17이 영상에서 자세히 배우실 수 있습니다.