swe-mux
English | 简体中文
모든 코딩 에이전트를 하나의 작업 공간에서 실행하세요. 책상이나 휴대폰 어디서든 어떤 에이전트가 당신을 필요로 하는지 아세요.
swe-mux는 코딩 에이전트를 위한 터미널 멀티플렉서입니다.
사용자의 기기에서 실제 터미널에 Claude Code, Codex, pi, oh-my-pi, opencode 또는 모든 셸을 실행하고, 어떤 세션이 왜 당신을 필요로 하는지 보여주며, 전체 작업 공간을 자체 Tailscale 네트워크를 통해 휴대폰으로 전송합니다.
오픈 소스(Apache-2.0)이며 계정, 릴레이 또는 원격 측정 기능이 없습니다.
Windows용 네이티브 데스크톱 앱, Linux 및 macOS용 브라우저, 그리고 휴대폰에 설치 가능한 웹 앱을 제공합니다.
Agents and a preview arranged in the swe-mux workspace
대화형 데모를 사용하거나 설정 가이드를 읽어보세요.
이 데모는 시뮬레이션된 에이전트 활동과 함께 실제 인터페이스를 실행하며, 제공업체 연결이 필요하지 않습니다.
휴대폰에서: 대기 중인 에이전트에 응답한 다음, 해당 에이전트가 구축하는 앱을 엽니다 (데모 녹화본 기준 50초).
데스크톱과 휴대폰 연동, 에이전트들이 다른 에이전트를 요청하는 상황, 그리고 대기열(land queue) (데모 녹화본 기준 85초).
할 수 있는 것
-
어떤 에이전트가 당신을 필요로 하는지, 그리고 그 이유를 확인하세요. 화면뿐만 아니라 에이전트의 훅(hook), 트랜스크립트(transcript), 터미널, 프로세스 트리에서 읽어오는 모든 CLI에 대한 상태(작동 중, 유휴, 대기 중)가 제공됩니다. '대기 중'은 그 이유를 명시합니다: 승인 필요, 질문, 속도 제한(rate limit), 로그인 등. 서브 에이전트나 백그라운드 작업이 여전히 실행되는 '유휴' 상태의 에이전트는 완전히 종료된 에이전트와 다르게 표시됩니다. 알림 및 푸시 알림은 세션과 이유를 명시하며, 잠긴 휴대폰에 도달할 수 있고 무음 시간(quiet hours)을 준수합니다.
-
휴대폰으로 작업하세요. 이 기능은 보조 앱이 아니라 동일한 워크스페이스를 실행합니다: 터치 키보드 레일이 있는 실시간 터미널, 승인 처리, git diff 검토, 파일, 메모, 프롬프트 큐 및 푸시 기능을 제공합니다. 브라우저에서 웹 앱으로 설치되며, 앱 스토어나 중계(relay) 없이 사용자의 자체 Tailscale 네트워크를 통해 기기에 접속합니다.
-
휴대폰에서 개발 서버를 여세요. 호스트의 127.0.0.1에 있는 서버가 swe-mux를 통해 핫 리로드(hot reload) 및 WebSockets으로 프록시되어 데스크톱 또는 휴대폰의 미리보기 창(Preview pane)에 열립니다. 따라서 추가 포트를 노출할 필요가 없습니다. 에이전트가 출력한 URL을 클릭하여 열 수 있습니다.
-
모든 에이전트 CLI를 한 곳에서 실행하세요. Claude Code, Codex, pi, oh-my-pi 및 opencode가 인식되며, 다른 모든 CLI나 셸도 실제 터미널에서 실행됩니다. 아무 패널에나 claude 또는 codex를 입력하면 그 자리에서 추적되는 세션이 됩니다. 이들 중 어느 것을든 재개하고, 메시지에서 Claude 대화를 분기(branch)하며, 에이전트를 동일한 대화로 다시 시작하거나, 저장된 Claude 및 Codex 로그인 간에 한 번의 클릭으로 전환할 수 있습니다.
-
각 에이전트가 무엇을 로드하고 어떤 작업을 했는지 확인하세요. Agent 탭은 Claude Code 또는 Codex 세션이 볼 수 있는 도구(tools), 기술(skills), MCP 서버, 플러그인 및 훅 목록을 제공하며, 시작된 이후 변경된 구성을 표시합니다. CLAUDE.md, AGENTS.md, 그리고 Claude의 메모를 한 곳에서 읽고, 트랜스크립트를 따라가며, 모든 에이전트의 과거 대화를 한 번에 검색할 수 있습니다.
-
할당량 사용 내역 파악. 저장된 Claude 및 Codex 계정별 5시간 및 주간 창을 보여주며, swe-mux 세션이 사용한 분, 외부에서 사용한 분, 다른 기기에서 사용한 분으로 나누어 표시하고, 이력과 초기화 알림 기능을 제공합니다.
-
에이전트가 남긴 프로세스 찾기. 모든 프로세스와 리스닝 포트는 해당 프로세스를 시작한 세션에 귀속됩니다. 세션 종료 후에도 계속 실행 중인 프로세스, 트리를 벗어난 프로세스, CPU 사용량이 90%를 초과하거나 메모리가 2 GiB를 초과하는 항목은 플래그가 지정되며, 'terminate-tree' 기능을 한 번의 클릭으로 사용할 수 있습니다. 자동 종료되는 것은 없습니다. 사이드바에서 실시간 세션, CPU 및 RAM을 확인할 수 있습니다.
-
세션 간 협업 기능 구현. 실행 중인 턴 뒤에 프롬프트를 대기열로 추가하거나, Codex 세션이 Claude 세션에게 질문하게 하거나, 사용자가 승인한 검사(checks)가 통과된 후에만 완료된 브랜치를 생성할 수 있습니다.
-
재시작 및 업데이트 중에도 세션 유지. 별도의 슈퍼바이저가 모든 터미널을 관리하며, swe-mux가 재시작되는 동안에도 타이핑이 계속 작동합니다.
-
사용 습관 유지. 모든 에이전트 프롬프트에서 동일한 편집 키를 사용하고, tmux, VS Code, Vim 및 Emacs의 워크스페이스 키맵을 지원하며, 이미지 붙여넣기, 기기 내 음성 받아쓰기 및 읽어주기를 유지합니다.
인터페이스 언어 (Interface language)
영어와 간체 중국어가 동일한 앱과 설치 프로그램으로 제공됩니다.
설정 또는 설정 → 일반 → 언어에서 영어 또는 简体中文을 선택하세요.
선택하기 전에 인터페이스는 지원되는 브라우저 언어를 따르며, 영어로 폴백(fallback)됩니다. 저장된 선택 사항은 세션을 재시작하거나 초안을 잃지 않고 데스크톱과 휴대폰에 적용됩니다.
이는 swe-mux 제어, 도움말, 상태 레이블 및 애플리케이션 메시지를 번역합니다. 터미널 출력, 에이전트 답변, 사용자 콘텐츠, 명령어 구문, 음성 명령 구문은 원래 언어를 유지합니다.
실행 환경 (What runs where)
에이전트 CLI는 기존 구독 하에 실제 터미널에서 실행됩니다.
데이터는 swe-mux 계정, 공급업체 운영 백엔드 또는 사용량 원격 측정(usage telemetry) 없이 사용자 기기에 남아 있습니다.
에이전트 제공업체, 선택적 통합 및 업데이트 확인은 여전히 네트워크를 사용합니다.
어시스턴트는 구성된 모델 엔드포인트와 예산을 사용하며, 로컬에서 실행되는 음성 인식(speech recognition)은 별도의 기능입니다.
별도의 슈퍼바이저가 데몬 재시작 및 앱 업데이트를 통해 세션을 작동 상태로 유지합니다.
슈퍼바이저의 종료 및 전원 손실은 활성 프로세스를 종료시키며, 콜드 복구(cold recovery)는 읽을 수 있고 재개 가능한 기록을 복원합니다.
자동화 및 에이전트 제어에는 명시적인 프로젝트 권한(Project permissions)이 있습니다.
클립보드 기록은 앱 내 텍스트 복사본을 기록하며, 영속성(persistence) 기능이 활성화되지 않는 한 메모리 전용입니다.
설치
<!-- 참고: v0.1.2 버전부터 설치 프로그램이 존재하지만 코드 서명(code signed)되어 있지 않습니다. 서명 인증서가 확보되면 Windows 빌드 및 아키텍처에 대해 서명할지 명시하고 아래 SmartScreen 문구를 삭제해야 합니다. 사이트 자체는 이 수정이 필요하지 않으며, https://swemux.dev/#download에서 릴리스 매니페스트를 가져옵니다. 이 파일은 수동으로 유지되는 사본이므로 기억해 두셔야 합니다. -->
swe-mux는 PyPI에 있습니다. 휠(wheel)은 순수 파이썬이며 빌드된 프론트엔드를 포함하므로 Node나 체크아웃 과정이 필요하지 않습니다.
# 권장됨. 격리 환경으로, 모든 명령어가 PATH에서 전역적으로 작동합니다.
uv tool install swe-mux
swe-mux # Windows: 데스크톱 앱 및 트레이 열기
...
Windows에서는 이것으로 충분합니다. swe-mux를 실행하면 콘솔이나 추가로 설치할 것이 없이 네이티브 창과 트레이 아이콘을 얻게 됩니다.
설정 가이드에서는 시작 메뉴, 바탕 화면 및 로그인 바로가기를 제공하며 이미 구성된 항목도 감지합니다.
설정(Setup), UI 투어, 선택적 첫 단계는 사이드바의 '사용법(Usage)' 위쪽 '시작하기(Getting started)'에서 계속 이용할 수 있습니다.
다른 곳(혹은 브라우저를 사용하길 원한다면)에서는 swemux start가 데몬을 백그라운드에 배치하고 서비스하는 즉시 반환합니다 (http://127.0.0.1:8765). 터미널을 닫는다고 해서 중지되는 것은 아니며, swemuxd --shutdown 명령으로 중지할 수 있습니다.
로그를 화면에 표시하고 싶을 때는 swemuxd가 여전히 포그라운드(foreground)에서 실행됩니다.
swemux doctor는 데몬(daemon), 슈퍼바이저(supervisor), 프런트엔드 빌드(frontend build), 감지된 에이전트 CLI(agent CLIs), 테일넷 리스너(tailnet listener), 그리고 백그라운드 루프를 포함하는 읽기 전용 상태 보고서입니다.
모든 설치는 프로그램당 하나의 명령인 세 가지 명령어를 작성합니다: swemux(CLI), swemuxd(데몬), 그리고 swe-mux(데스크톱 창 및 트레이).
의도적으로 짧은 별칭(alias)이 없습니다. mux는 적어도 하나의 관련 없는 도구와 공유되며, 논란의 여지가 있는 이름으로 런처를 배포하는 것이 충돌을 일으키는 원인이지, 이를 극복하는 방법이 아닙니다.
Windows 설치 프로그램은 v0.1.2 버전부터 배포되며, 포터블 아카이브와 함께 릴리스 페이지에서 확인할 수 있습니다.
이 설치 프로그램은 코드 서명(code signed)이 되어 있지 않아 첫 실행 시 SmartScreen 경고가 발생합니다. PyPI를 통한 설치는 해당 프롬프트를 완전히 우회합니다.
어떤 종류의 파이썬(Python) 설치도 데스크톱 바로 가기를 생성하지 않습니다.
Wheels는 설치 후 훅(post-install hook)이 없기 때문에 uv가 자체적인 설치 요약을 출력합니다.
설정을 시작하려면 Windows에서 swe-mux를 실행하거나 브라우저 UI를 위해 swemuxd를 실행하십시오.
swemux install-shortcut --startup은 시작 메뉴(Start Menu), 데스크톱, 그리고 로그인 바로 가기를 직접 생성합니다.
보존된 설정 또는 백업된 새로운 전역 환경설정을 선택하려면 도움말(Help) → 설정 다시 시작을 사용하거나 swemux setup --restart를 사용하십시오.
격리된 첫 사용 테스트의 경우, swemuxd --new-user-profile test-one은 별도의 데이터와 별도의 로컬 포트를 사용합니다.
체크아웃(checkout)에서 실행하기, 업그레이드, PATH 문제 해결 및 제거에 대한 내용은 .docs/development/OPERATOR_LIFECYCLE.md을 참조하십시오.
요구 사항
- Python 3.12 이상 버전과 uv 또는 pipx를 사용하여 설치합니다.
- 이미 설치되어 로그인된 에이전트 CLI가 최소 하나 필요합니다. swe-mux는 이를 설치, 관리하거나 프록시하지 않습니다.
- 옵션으로 Tailscale을 추가하여 휴대폰에서도 데몬에 접근할 수 있습니다.
- Node 22.6 이상 버전은 오직 소스에서 프론트엔드를 빌드할 때만 필요하며, 배포된 wheel에는 포함되어 있습니다.
온디바이스 음성 기능(On-device speech)은 선택 사항이며, 전송되는 것이 아니라 명시적인 버튼을 눌러 활성화됩니다. 라이브러리와 모델은 한 번 다운로드되고 고정된 해시값과 검증되며, 요청할 때까지 아무것도 가져오지 않습니다.
음성 인식(Speech-to-text)은 두 가지 배포 구성 모두에서 사용자의 자체 기기에서 디코딩됩니다 — faster-whisper 또는 Windows Speech Recognition. 클라우드 음성 경로나 브라우저 대체 기능은 없으며, 엔진이 없으면 오디오를 어딘가로 전송하는 대신 입력 오류 메시지가 반환됩니다.
텍스트 음성 변환(Text-to-speech)도 마찬가지입니다. 단지 명시적으로 실험적인 Edge TTS 제공업체는 기기를 벗어나며 먼저 승인이 필요합니다.
첫 실행 (First run)
설정은 Experience → Agents → Projects → Keymap을 거쳐 진행됩니다.
에이전트를 선택한 후 최근 프로젝트 폴더가 배경에 나타나며, 이 중 필터링하거나 원하는 것을 선택하거나 수동으로 폴더를 추가할 수 있습니다.
**작업 시작(Start working)**을 누르면 선택된 셸 또는 에이전트가 필요한 권한, 모델, 음성, 데스크톱, 휴대폰 및 '시작하기(Getting started)'에서 사용할 수 있는 UI 투어를 포함하여 실행됩니다.
프로젝트를 생성하고 기존 폴더에 연결합니다.
Ctrl+Shift+Enter는 해당 폴더의 루트에 터미널을 열고, Ctrl+Shift+P (또는 F1)는 명령 팔레트를 엽니다. 요청할 때까지 아무것도 실행되지 않습니다.
그런 다음 평소처럼 claude, codex 또는 다른 CLI를 입력합니다.
swe-mux가 해당 터미널의 PATH에 자체 로슁처(launcher)를 가장 먼저 배치하기 때문에, 일반적인 명령은 현재 사용 중인 터미널을 제자리에서 에이전트 세션으로 승격시킵니다. 즉, 동일한 창, 동일한 스크롤백을 가지며 이제 전사 기록(transcript), 상태, 대기열(queue) 및 컨텍스트 미터가 추가됩니다.
⚠️ [IMG:N]
The Run 메뉴는 에이전트(agent), 셸(shell), 워크트리 세션 또는 가져온 태스크를 시작합니다. 가져온 태스크(VS Code tasks, package.json 스크립트, .swe-mux/actions.toml)는 정확한 현재 바이트가 신뢰될 때까지 비활성 상태로 유지됩니다. (project actions)
CI 빌드는 푸시(push)마다 Windows, Linux 및 macOS에서 휠을 빌드하고 검증하며 설치 스모크 테스트를 수행하고, 소스 체크아웃으로부터 실제 데몬(daemon)을 시작하여 셸을 제공하고 깨끗하게 종료됨을 증명합니다.
어떤 CI 작업도 **게시된 아티팩트(published artifact)**로부터 데몬을 시작하지 않으며, 이는 곧 증명이 멈추는 지점입니다.
- Windows 10/11이 증명 플랫폼입니다. 실제 ConPTY 통합 및 Playwright 렌더러 스위트(renderer suite)를 포함한 전체 게이트가 여기서 실행되며, 데스크톱 앱은 이 플랫폼에서만 배포됩니다.
- Linux는 브라우저와 함께 헤드리스(headless)로 실행되며, 필수적인 CI 단계가 포함됩니다. 네이티브 Linux 데스크톱 앱과 설치 프로그램이 계획되어 있으며, 현재 UI는 브라우저에서 실행됩니다.
- macOS는 소스-데몬 계층(source-daemon tier)을 포함한 필수 CI 검사와 함께 데몬 및 브라우저 클라이언트를 실행합니다.
각 주장의 근거: .docs/development/CROSS_PLATFORM_FINDINGS.md.
원격 접속 (Remote access)
데몬은 localhost와 장치에서 감지된 Tailscale IPv4 주소에서 리스닝(listen)하며, swemuxd --local-only를 사용하면 로컬로 유지됩니다.
Tailscale 정책이 접근 경계이며, swe-mux는 별도의 원격 로그인이 없기 때문에, 귀하의 정책이 허용하는 tailnet 피어(peer)는 터미널 및 코드 실행 권한을 가집니다.
브라우저는 일반 HTTP를 통한 클립보드 및 마이크 접근을 제한하므로, 이를 위해 Tailscale Serve를 앞에 배치합니다: tailscale serve --bg http://127.0.0.1:8765.
0.0.0.0, 직접적인 LAN 바인딩(binding), Funnel, 포트 포워딩(port forwarding) 및 공개 인그레스(public ingress)는 지원되지 않습니다. (detail)
구성 및 데이터 (Configuration and data)
설정 파일은 데이터 디렉터리 내의 config.toml에 위치합니다. 운영체제별 경로는 다음과 같습니다: Windows는 ~/.mux, Linux는 $XDG_DATA_HOME/swe-mux (또는 ~/.local/share/swe-mux), macOS는 ~/Library/Application Support/swe-mux입니다.
기존에 존재하는 ~/.mux가 항상 우선하며, MUX_DATA_DIR 환경 변수는 이 모든 설정을 재정의(override)합니다.
제공업체 계정