GitHub - leapmux/leapmux: AI Coding Agent Multiplexer
핵심 포인트
- 1LeapMux는 여러 Claude Code 인스턴스를 단일 웹 인터페이스를 통해 실행하고 관리할 수 있도록 설계된 AI 코딩 에이전트 멀티플렉서입니다.
- 2이 플랫폼은 다중 에이전트 워크스페이스, 터미널 및 파일 브라우저 접근, 협업을 위한 워크스페이스 공유 기능과 함께 에이전트 라이프사이클 및 권한을 중앙에서 관리합니다.
- 3아키텍처는 Frontend(SolidJS), Hub(Go, SQLite), 그리고 실제 Claude Code 인스턴스를 감싸는 Worker(Go)로 구성되며, Hub는 모든 통신을 중재하고 Worker는 Hub로 아웃바운드 연결을 시작합니다.
LeapMux는 여러 Claude Code 인스턴스를 단일 웹 인터페이스를 통해 실행하고 관리할 수 있도록 설계된 AI 코딩 에이전트 multiplexer 플랫폼입니다. 개발자가 다양한 워크스페이스와 백엔드에서 AI 코딩 에이전트를 중앙 집중식으로 관리할 수 있는 허브를 제공하며, Multi-Agent Workspaces, Terminal Access, File Browser, Workspace Sharing, Backend Management, Real-Time Communication, Permission Management, Reliable Message Delivery와 같은 핵심 기능을 포함합니다.
LeapMux는 세 가지 계층으로 구성된 아키텍처를 가집니다: Frontend, Hub, 그리고 Worker입니다.
- Frontend: SolidJS로 구축된 웹 애플리케이션으로 사용자 인터페이스를 제공합니다. Hub와는 RPC 호출을 위해 ConnectRPC를 사용하고, 실시간 이벤트 스트리밍을 위해 WebSocket을 통해 통신합니다. 워크스페이스, 에이전트, 터미널, 파일 브라우징을 위한 UI 상태를 관리하며, 실시간 메시지 스트리밍 및 채팅 인터페이스를 지원합니다.
- Hub: Go 언어로 개발된 중앙 오케스트레이션 서비스입니다. 모든 트래픽을 라우팅하며, 사용자 인증, 워크스페이스 및 Worker 등록을 관리합니다. 영구적인 데이터는 SQLite 데이터베이스에 저장합니다. 실시간 이벤트를 위한 양방향 스트리밍을 처리하며, Frontend와 Worker 간의 모든 통신은 Hub를 경유합니다.
- Worker: Go 언어로 구현된 Worker는 Claude Code 인스턴스를 래핑하고 시스템 접근을 제공합니다. 터미널 접근을 위한 PTY 세션과 파일 시스템 브라우징 기능을 관리합니다. Hub와는 표준 gRPC (bidirectional streaming)를 통해 통신하며, Worker는 Hub에 아웃바운드 연결을 시작하므로 NAT 환경에서도 작동할 수 있습니다. 로컬 Worker의 경우 Unix domain socket을 통한 연결도 지원합니다.
LeapMux는 단일 Go 바이너리인 leapmux로 빌드되며, 다음 세 가지 모드로 실행할 수 있습니다:
leapmux hub: Hub 서비스만 실행합니다.leapmux worker: Worker 서비스만 실행하며, 원격 Hub에 연결합니다.leapmux(서브커맨드 없음): Hub와 Worker를 함께 실행하는 standalone 모드입니다.
통신 프로토콜은 다음과 같습니다:
- Frontend Hub: ConnectRPC (RPCs), WebSocket (event streaming).
- Worker Hub: gRPC (bidirectional streaming).
기술 스택은 다양합니다. Frontend는 Bun, SolidJS, ConnectRPC, Vitest, Playwright 등을 사용하고, Hub는 Go, ConnectRPC, gRPC, SQLite, sqlc, Goose, Protocol Buffers 등을 활용합니다. Worker는 Go, gRPC, Git 등을 사용합니다. 빌드 도구로는 buf, ESLint, golangci-lint, mprocs, Task 등이 사용됩니다.
프로젝트 구조는 .github/workflows (CI/CD), cmd/leapmux (통합 바이너리 엔트리 포인트), docker (Dockerfile), frontend (SolidJS 웹 애플리케이션), internal/hub (Hub 구현), internal/worker (Worker 구현), proto (Protocol Buffer 정의) 등으로 구성되어 있습니다.
개발 워크플로우는 git clone 후 task dev 명령어로 모든 서비스를 시작할 수 있습니다. 빌드는 task build, 테스트는 task test, 린팅은 task lint, 코드 생성은 task generate 명령어를 통해 수행됩니다. 특히 Protocol Buffer 정의(.proto)나 SQL 쿼리(.sql) 파일이 변경되면 task generate-proto 또는 task generate-sqlc를 실행하여 관련 코드를 재생성해야 합니다. Docker 이미지는 task docker-build 명령어를 사용하여 빌드할 수 있으며, ghcr.io에 pre-built 이미지가 게시됩니다.
LeapMux는 FSL-1.1-ALv2 (Functional Source License, Version 1.1, Apache 2.0 Future License) 라이선스 하에 배포됩니다. 이는 사용, 수정, 배포를 허용하지만, 경쟁적 사용에 대한 특정 제한이 있으며, 명시된 기간 후에는 자동으로 Apache 2.0으로 전환됩니다. 프로젝트는 현재 0.0.1-dev 버전으로, 초기 Alpha 단계에 있으며 활발히 개발 중입니다.