Open330/muxa
Open330/muxa has 43 GitHub stars and 3 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-09 13:48 UTC. Last push 2026-11-02.
Know which tmux coding agent is waiting on you — and jump to it. Works with the Claude Code, Codex, and Gemini CLI sessions you already run. No wrapper, no new terminal.
측정된 스타 증가
- in 24h
- 0
- in 7 days
- 업데이트 지연
- in 15 days
- 업데이트 지연
- in 1 month
- 업데이트 지연
서로 겹치는 기간의 순증가량이며 일별 합계가 아닙니다. 측정값이 없으면 비워 둡니다. 스타는 관심도를 나타내며 품질을 보장하지 않습니다.
README.ko.md
Originaltmux에서 돌리는 코딩 에이전트 중 지금 나를 기다리는 것을 알려 주고, 바로 데려다 줍니다.
래퍼도, 새 터미널도 필요 없습니다. 이미 tmux에서 돌리고 있는 Claude Code, Codex, Gemini CLI 세션을 지켜보다가 어느 에이전트가 나를 기다리는지 알려 주고 그 pane으로 옮겨 줍니다. watch에서 동료에게 리뷰를 요청하고 답장을 확인할 수도 있습니다.
미리 써보기
설치 없이 브라우저에서 Muxa를 미리 써보세요. 터미널에 직접 입력하고, 지금 필요한 키를 한 단계씩 안내받습니다.
| 어디서 시작할까요? | 해볼 수 있는 것 |
|---|---|
| tmux 기본부터 | 일반 셸에서 준비된 session에 연결하고 session → window → pane 구조, pane 이동·확대, window 전환을 익힙니다. |
| watch에서 협업까지 | 기다리는 에이전트에 답하고 리뷰를 요청한 뒤 mailbox에서 답장을 읽습니다. |
| 작업공간 이동 | watch의 트리와 검색으로 session·window·pane을 찾아 이동합니다. |
| 화면 살펴보기 | 미리보기, 터미널 원문, inspector 비율, 도움말을 사용합니다. |
| 자유 탐색 | 전체 단축키를 보며 여러 session과 window를 자유롭게 둘러봅니다. |
다음 안내가 표시되면 Alt + Enter(Mac에서는 Option + Return)로 클릭 없이
진행할 수 있습니다. 안내를 바꿔도 같은 터미널과 요청 기록이 이어집니다. 브라우저 안에서 동작하는
시뮬레이션으로, 실제 셸 명령이나 에이전트/API를 실행하지 않습니다. 실제 tmux에서
익히려면 설치 후 아래의 muxa onboard를 사용하세요.
시작하기
필요 조건: tmux 3.x(또는 herdr), Unix-like OS.
brew install open330/tap/muxa
muxa # 기존 에이전트 보기, 새 에이전트 시작, 데모 체험
muxa는 추적 중인 에이전트가 있으면 바로 watch를 엽니다. 처음에는 설치된
에이전트를 골라 현재 폴더에서 시작하거나 기존 터미널을 볼 수 있습니다. 새
에이전트의 hook·tmux 연결은 변경 미리보기와 백업을 거쳐 설정하며 MCP는 필요하지
않습니다. 설정을 취소하면 에이전트도 실행하지 않습니다.
먼저 핵심 기능만 체험하려면 tmux 밖 터미널에서 다음을 실행하세요. 연습용 에이전트가 준비된 상태에서 watch 열기 → 상태 확인 → 기다리는 에이전트로 이동을 3단계로 경험합니다. 실제 에이전트/API를 호출하지 않고 종료 시 sandbox를 삭제합니다.
muxa onboard --quick --lang ko
기존 16단계 상세 학습은 muxa onboard, 문서 체험은
muxa onboard --quick --print --lang ko로 볼 수 있습니다.
실제 CLI를 설치 없이 실행해보려면 일회용 tmux server에서 전체 tour를 체험할 수
있습니다. script가 checksum을 검증한 release 바이너리로 진짜 muxa onboard를
실행하고, 끝나면 지웁니다. 기존 tmux server는 건드리지 않습니다. 지원되는
release 플랫폼과 network가 필요하고 live tour에는 tmux도 필요합니다.
non-interactive 가이드는 muxa onboard --print로 볼 수 있습니다.
curl -fsSL https://raw.githubusercontent.com/Open330/muxa/main/scripts/onboard.sh | sh -s -- --lang ko
왜 Muxa인가
- 지금 환경을 그대로 둡니다. Claude Code, Codex, Gemini CLI(후속인
Antigravity CLI
agy포함)의 hook에서 에이전트 상태를 읽고(hook이 없는 에이전트는 화면으로 감지), 이미 열어 둔 tmux pane에 연결합니다. 에이전트를 Muxa로 띄울 필요도, 멀티플렉서를 바꿀 필요도 없습니다. tmux, rmux, herdr를 동시에 관찰할 수 있고 zellij는 CLI baseline을 지원합니다. - 누가 기다리는지 알려 줍니다. tmux 상태바,
muxa watchTUI, 데스크톱 알림으로 보여 줍니다. - 그 자리로 데려다 줍니다.
muxa attend는 가장 오래 막혀 있는 pane으로 이동하고,--cycle은 나를 기다리는 에이전트를 차례로 돕니다. - 리뷰와 답장을 한곳에 남깁니다. watch에서
m으로 동료에게 요청하고M으로 요청·답장 이력을 확인합니다. - 한 에이전트가 나머지를 움직이게 합니다.
muxa mcp로 코딩 에이전트에게 같은 상태 정보와 prompt 전송, 변화 대기 도구를 줍니다.
[!IMPORTANT] Beta입니다. event ingest, daemon, CLI, live TUI, desktop notification, stats/report는 end-to-end로 동작하지만 1.0 전까지 API가 바뀔 수 있습니다.
핵심 기능
| Surface | 기능 |
|---|---|
muxa status-line |
active pane 기준 tmux status-right 한 줄 요약. |
muxa peek |
prefix + q 오버레이: 각 pane의 실제 화면을 dim 배경으로 깔고 그 위에 handle(@claude)·tmux pane id와 agent의 상태·요약·최근 프롬프트/응답과 마지막 프롬프트 시각을 얹으며, 가장 최근에 프롬프트를 보낸 pane은 따로 표시함. 숫자 키로 이동. ` |
muxa watch |
agent/pane 관측, prompt, live preview, hierarchy-aware mailbox와 table/sequence 협업을 제공하는 기본 TUI. |
muxa dashboard |
muxa watch의 Work board. P는 선택 Work의 모든 live agent에 prompt를 보내고 A는 모두 중단. |
muxa attend |
input/choice/error로 가장 오래 막힌 agent로 점프. |
muxa stats / muxa stats report |
prompt history, agent 상태 시간, tmux foreground, human thinking 시간 분석. |
muxa timeline |
agent 작업/대기/error, human interaction, tmux foreground를 full-screen TUI timeline으로 표시. |
muxa stats activity |
stats/report에 들어간 raw duration ledger 조회. |
| BarShelf widget (macOS) | active/working/waiting/error agent를 메뉴바 popover에서 요약. |
| Muxa for Mac | Work·Explore·Inbox·Ask·Shells·Files를 제공하는 네이티브 작업 공간, libghostty 터미널과 알림. 네이티브 PTY는 muxad가 소유. |
| Dashboard | 선택적 loopback HTTP UI. 실시간 업데이트·timeline·협업 graph와 OIDC 로그인 기반 pane/window 공유(조회/프롬프트 권한)를 지원. |
| Notifications | agent가 attention을 필요로 할 때 desktop alert. |
다른 설치 방법
주 설치 경로는 위의 Homebrew입니다. Mac 앱은 cask로 설치합니다(공증됨, 앱 자체 업데이트 기능이 없어 Homebrew로 업데이트합니다).
brew install --cask open330/tap/muxa-app
또는 원샷 설치 스크립트(소스 빌드, Rust 1.89+ 필요):
curl -fsSL https://raw.githubusercontent.com/Open330/muxa/main/scripts/install.sh | sh
source에서 설치:
git clone https://github.com/Open330/muxa.git
cd muxa
cargo install --path crates/muxad --locked
cargo install --path crates/muxa-cli --locked
muxa init
확인:
muxa daemon start
muxa daemon status
muxa status
muxa watch
tmux에서 작업 단위로 정리하기
선택 사항입니다. 지금 쓰는 tmux 배치를 그대로 두어도 됩니다. 에이전트가 실행될 자리까지 Muxa에 맡기고 싶다면 tmux에 작업 모델을 입힐 수 있습니다.
Muxa는 tmux를 단순한 terminal pane 모음이 아니라 지속적인 작업 실행 모델로 사용합니다.
| tmux 객체 | Muxa에서의 의미 | 사용 방식 |
|---|---|---|
| session | workspace 실행 context | 한 workspace의 활성 Run window를 담습니다. |
| window | Work의 활성 Run | 안정적인 Work identity에 연결되며 window 종료는 Work 삭제가 아니라 Run 종료입니다. |
| pane | agent 실행 surface | implementer, reviewer, helper Agent session을 Run에 연결합니다. |
권장 workflow도 이 모델을 그대로 따릅니다.
- work ID를 시작하면 Muxa가 workspace session을 생성하거나 재사용하고 work window와 첫 agent pane을 만듭니다.
- 같은 Work Run에 agent pane을 추가하며 다른 Work는 sibling Run window를 사용합니다.
muxa watch에서 상태 확인, preview, 메시지, 제어를 수행하거나 agent가muxa mcp를 통해 같은 정책으로 다른 agent를 관리합니다.- 작업이 끝나면 agent pane, work window 또는 workspace session을 명시적으로 닫습니다. Muxa는 unmanaged tmux 객체를 종료하지 않습니다.
Linear/GitHub/Jira issue는 Work에 연결되는 선택적 외부 참조이며 Work 자체나 로컬
단계가 아닙니다. Work domain model을 참고하세요. 요약하면
Workspace → Work → Run → Agent session이며 tmux는 현재 실행 binding입니다.
muxa onboard는 전용 일회용 tmux server, daemon, mailbox를 만든 뒤 실제
tmux new-session부터 계층, detach/attach, sandbox agent, Muxa watch·attend·message
workflow까지 하나의 시나리오로 익히게 합니다. 기존 tmux server는 건드리지 않고
종료할 때 sandbox 전체를 삭제합니다.
오래된 에이전트 기록 삭제
Muxa를 재설치해도 registry는 보존됩니다. cmux는 일부 surface만 관측하므로
에이전트가 종료되어도 pane 정보가 있는 기록이 남을 수 있습니다.
muxa registry prune은 pane, surface, pid가 없는 orphan 기록만 삭제합니다.
muxa status --json에서 해당 기록의 agent_session_id를 확인한 뒤 실행합니다.
muxa registry forget <agent_session_id>
# 확인을 생략하려면 --yes를 추가합니다.
지정한 registry 기록 하나만 삭제하며 프로세스나 터미널은 종료하지 않습니다. 실행 중인 에이전트는 이후 hook이나 scan으로 다시 등록될 수 있습니다. 프롬프트 이력은 보존됩니다.
에이전트가 사람의 확인을 요청하기
에이전트는 muxa msg attention "staging 배포를 승인해 주세요" --action approval
또는 MCP muxa_request_attention을 호출할 수 있습니다. 승인·선택·정보가 꼭 필요한
요청을 연결된 Fleet 호스트 전체에서 모아 Mac 앱의 Attention·Inbox·Dock 배지·알림으로
보여줍니다. 어느 기기에서 답하든 같은 요청의 처리 상태를 다른 연결된 기기에서도
확인할 수 있습니다. 여러 기기 연결 방법을 참고하세요.
muxa watch에서 바로 협업합니다
기억할 규칙은 하나입니다. tmux window 하나가 협업 room 하나입니다. watch/dashboard에서 사람이 보낸 메시지는 operator console이 발신자가 되고, 선택한 agent가 수신자가 됩니다. agent가 MCP나 CLI로 보낸 요청은 해당 agent가 발신자입니다.
최초 한 번만 ~/.config/muxa/config.toml에 다음 설정을 넣고 muxad를 재시작한
뒤 muxa init으로 prefix+s watch popup을 설치합니다.
[collaboration]
enabled = true
wake = "idle_only"
# 기본값: operator 본문은 직접 전달하고 agent 발신 본문은 mailbox에 둡니다.
wake_payload = "operator_full"
감지된 Codex와 Claude Code에 공통 협업 지침·스킬 심링크·MCP를 연결한 뒤 실행 중인
agent를 다시 시작합니다. standard preset에도 포함됩니다.
muxa init --component agent-instructions,agent-skills,agent-mcp
기존 사용자 설정을 보존하고 Codex에 필요한 pane 환경변수 전달도 설정합니다. 정본 경로와 업데이트·제거는 전역 에이전트 연동, 수동 MCP 등록은 MCP 문서를 참고하세요.
연결된 agent에는 같은 room의 peer를 read-only reviewer 또는 좁은 범위의 실행 subagent로 활용하라는 협업 지침이 자동으로 노출됩니다. 요청과 응답에는 검증된 AIR 1.0 artifact 참조를 첨부할 수 있고, watch mailbox가 profile별 색상 배지로 표시합니다.
연결된 Claude 또는 Codex 대화 안에서 바로 동료를 호출할 수도 있습니다. agent가 다음 표현을 Muxa의 durable peer-call 도구로 변환합니다.
@peer 현재 변경사항을 리뷰해줘
@codex /review-plan-feedback commit abc123을 context로 사용해줘
@peer의 보고를 요약하고 타당한 조언만 반영해줘
@peer와 @muxa-peer는 Muxa 협업 전용 표현입니다. 새 요청은 peer-call 도구로,
기존 peer 보고는 durable mailbox 보고 도구로 연결되며 명시적인 PR 참조 없이는
GitHub PR을 의미하지 않습니다. @peer는 같은 window의 정상 agent를 결정적으로
선택하고, @claude, @codex,
@gemini, @alias, role:name으로 대상을 좁힐 수 있습니다. 기본 계약은
REVIEW · READ-ONLY입니다. 변경 실행은 명시적인 task 승인, 새 agent pane 생성은
별도 확인이 있어야 합니다. Muxa를 업그레이드하거나 등록된 스킬을 바꾼 뒤에는
실행 중이던 agent를 재시작해야 MCP process가 새 도구와 템플릿을 읽습니다.
muxa doctor에서 synthetic으로 표시되는 agent는 안정적인 session identity가
생길 때까지 협업 대상에서 제외됩니다. 새 prompt로 hook을 발생시키거나 agent를
재시작한 뒤 다시 확인하세요.
평소에는:
- 같은 tmux window의 두 pane에서 agent를 각각 실행합니다.
- 어느 pane에서든
prefix를 누르고 놓은 뒤s로 watch를 엽니다. 트리에서 session·window·pane을 찾거나/로 검색합니다. - 상대 agent를 선택하고
m으로 요청을 작성한 뒤Enter로 보냅니다.Mmailbox에서 받은 메시지와 보낸 요청·답장을 확인합니다.
기본 prefix는 Ctrl과 b를 함께 누른 뒤 두 키를 놓는 것입니다. 이후 s를
누릅니다. watch 안에서는 prefix 없이 아래 키를 사용합니다.
| 키 | 동작 |
|---|---|
j / ↓, k / ↑ |
다음 / 이전 항목 선택 |
h / l, ← / → |
상위·하위 항목으로 이동 |
/ |
에이전트·작업공간 검색 |
Enter |
선택한 대상으로 연결 |
o |
선택한 pane 미리보기 |
m |
메시지 작성 |
M |
mailbox 열기 |
? |
전체 도움말 |
q |
watch를 닫고 원래 pane으로 복귀 |
agent pane에서 prefix+M, 또는 로컬 watch의 agent 행에서 Alt-M을 누르면
실행을 유지한 채 새 session/window나 기존 window로 이동합니다. 같은 메뉴에서
목적지 검색, 따라가기/현재 화면 유지, 분할 방향, 이전 위치 복귀를 선택합니다.
window 행에서 Alt-M을 누르면 모든 pane과 레이아웃을 함께 옮기며,
popup의 Ctrl-W로 pane/window 범위를 전환할 수 있습니다.
agent 이동 안내를 참고하세요.
window에서 M을 누르면 room 전체를, session에서는 모든 window를 window별로 묶은
read-only 이력을 봅니다. collaboration 화면의 v는 최신순 table과 시간순 sequence를
전환하며 muxa watch --screen collab --collab-layout sequence로 바로 열 수 있습니다.
Web dashboard에는 room을 넘나드는 node-edge graph, sequence drill-down, filter, cursor
pagination이 있습니다. Durable history는 collaboration.sqlite3에 index되고 기존
collaboration.json은 한 번 import한 뒤 직접 archive/remove할 때까지 migration
backup이자 중복 사본으로 남습니다.
일반 shell pane에서 watch를 열어도 operator console이 발신자이므로 메시지를 보낼 수 있습니다. 설정과 응답 흐름은 docs/COLLABORATION.ko.md를 참고하세요.
설치 모드, muxa init preset, systemd, 수동 hook wiring, rollback은
docs/INSTALL.ko.md에 정리했습니다.
핵심 명령어
기본 tmux 운영 정책은 workspace 실행 context를 session에, Work의 활성 Run을
window에, Agent session을 pane에 연결합니다. muxa onboard는 이 mapping을 전용
sandbox에서 실행하는 16단계 live tour입니다. 실제 session과 window를 만들고 tree를
확인하며 detach/attach를 거친 뒤 pane을 나누고 scripted agent를 시작합니다. 이어
실제 muxa watch, muxa attend, muxa msg를 실제 sandbox mailbox에 사용합니다.
narration은 tmux와 Muxa state를 관찰해 진행하며 key를 가로채지 않습니다. 한국어
locale에서는 한글을 자동 선택하고 --lang ko로 명시하거나 도중 F2로 전환할 수
있습니다. --print는 tmux를 시작하지 않고 같은 16단계 written guide를 출력합니다.
| Command | 목적 |
|---|---|
muxa status [--flat|--json] |
추적 중인 agent를 session / window / pane 트리로 보여 줌(--flat: agent당 한 줄), 또는 desktop integration용 versioned JSON snapshot. |
muxa watch [--view session|window|pane] |
workspace → work → agent live TUI picker/dashboard. |
muxa dashboard [--since today] |
watch Work board: agent별/Work 일괄 prompt·중단, agent로서 메시지·메일함, 협업 수, ACT/WACT 요약. |
muxa graph |
터미널 인터랙티브 그래프에서 session/window/pane 연결·협업 메시지 탐색. |
muxa attend [--cycle] [--list] |
attention이 필요한 agent로 focus 또는 list. |
muxa status-line [--pane %N] |
tmux status-line 출력. |
muxa peek [--plain] [--expanded] |
현재 tmux window의 pane별 오버레이. --plain은 텍스트로 출력. 오버레이는 tmux popup이므로 이를 그릴 수 없는 환경 — client를 붙이지 않는 프런트엔드(cmux), control mode 클라이언트(tmux -CC — amux, iTerm2) — 에서는 텍스트 리포트로 대체하고 이유를 stderr에 알림. |
muxa recap [--pane %N] |
보관된 disk history에서 최근 prompt 조회. |
muxa agent search '질문' / muxa agent read EVENT_ID |
한국어·영어 질문으로 Claude·Codex의 과거 대화와 명령을 검색하고 앞뒤 원문·도구 실행 결과를 조회. 사용법. |
muxa peers / muxa identity / muxa msg |
같은 tmux window의 agent를 찾고 이름/역할을 지정해 durable request/reply 메시지를 주고받음. |
muxa skill add/list/show/remove |
watch/dashboard 메시지, watch ask, MCP peer call에서 사용할 / prompt 템플릿 관리. |
muxa fleet host add/list/label/annotate/doctor |
physical SSH node와 Kubernetes-style label/annotation 관리. |
muxa fleet status/watch/capture/send/attach |
중앙 host → session → window → pane(agent) 관측/제어. |
muxa stats --since today |
WACT/ACT/WORK/WAIT 중심 summary. day/project/agent/session 단위로 묶을 수 있고, --graph는 WACT 시간 그래프만, --verbose는 진단 컬럼을 표시. |
muxa stats report --since week |
day/project/agent/session 모든 breakdown을 ACT/WACT 중심 테이블로 표시 (--json / --markdown로 export). |
muxa timeline --since today |
session별로 묶은 interactive timeline. --session main, --agent codex로 필터링하고 --sort waiting 정렬이나 --view heatmap을 사용할 수 있음. |
muxa stats activity --type agent|tmux|human |
raw activity ledger interval 조회. |
muxa registry sync / prune / forget / panes |
registry backfill, orphan 정리, 정확한 agent session ID로 기록 삭제, pane host 목록. |
muxa agent start --agent codex [--host auto|native|tmux] |
allowlist agent 실행. auto는 실제 tmux 셸에서는 tmux를, 일반 터미널에서는 muxa-owned PTY를 사용. |
muxa work start muxa-onboarding --workspace muxa --agent codex ... |
workspace session과 work window를 만들거나 재사용하고 agent pane을 추가. |
muxa workspace list/show/close |
workspace/project session을 조회하거나 명시적으로 종료. |
muxa work list/show/close [--workspace muxa] |
Work와 현재 Run binding을 조회하거나 Run window를 명시적으로 종료. |
muxa agent start --host tmux --workspace muxa --work muxa-onboarding ... |
allowlist agent pane을 managed tmux Work window에 추가. MCP에서는 muxa_start_agent로 제공. |
muxa agent control (--pane %N|--session pty-N) --action interrupt |
managed tmux pane 또는 muxa-owned PTY agent session 하나를 중단하거나 명시적으로 종료. |
muxa onboard [--tour live] [--lang auto|en|ko] |
전용 sandbox에서 실제 tmux, watch, attend, mailbox를 다루는 16단계 tour. 기존 tmux 안에서는 실행을 거부합니다. F2 언어 전환, --no-quiz의 즉시 F12 제공, --print guide를 지원합니다. |
muxa mcp |
coding agent가 상태 확인, 메시지, pane capture, 변경 대기, tmux lifecycle을 Muxa를 통해 수행하는 MCP stdio server. docs/MCP.md 참고. |
muxa snapshot |
이 멀티플렉서의 작업 공간 — 세션·윈도우·pane·geometry·작업 디렉터리, 그리고 각 pane이 실행 중인 커맨드라인 — 을 $XDG_DATA_HOME/muxa/snapshots에 캡처. |
muxa restore [DIR] [--run] |
스냅샷에서 작업 공간 재구성. --run 없이는 계획만 출력 — 해당 세션이 남아 있는 서버에 복원하면 pane이 교체되지 않고 추가되기 때문. |
muxa reload mcp [--codex-home DIR] |
실행 중인 Codex 프로필의 MCP 전체 갱신을 요청합니다. API 수락은 queued로 표시하고 새 연결이 확인되지 않으면 종료 코드 2를 반환합니다. app-server·pane은 재시작하지 않습니다. --all은 오래된 공유 Codex 프로필, --dry-run은 범위 확인용입니다. |
muxa reload mux [--snapshot DIR] |
아래 전체 멀티플렉서 reload의 명시적 이름입니다. |
muxa reload [--snapshot DIR] |
스냅샷 → 멀티플렉서 재시작 → 작업 공간 복원. 새 tmux/rmux 빌드를 pane 서른 개를 손으로 다시 만들지 않고 적용하는 방법. 재시작 대상 서버 바깥에서 실행하며, muxa가 추적하던 pane은 자기 대화로 돌아온다. |
muxa init |
install/uninstall wizard. |
muxad |
daemon process. |
자주 쓰는 stats query:
muxa stats --since today --group-by session
muxa stats --since yesterday --group-by project
muxa stats report --since last-week
muxa timeline --since today --session main
muxa timeline --since today --exclude-session 'monitor*'
muxa stats --since month --exclude-pane '%42' --exclude-session 'monitor*'
muxa timeline --since today --group-by kind --sort waiting
muxa timeline --view heatmap --since 12w
muxa timeline --day 2026-06-06
muxa stats activity --since today --type human
--since는 today, yesterday, 최근 7일 rolling window인 week, 최근
30일 rolling window인 month, 저번주 월요일-일요일 구간인 last-week /
"last week", 이전 달력 월인 last-month / "last month", 24h/7d/4w
같은 rolling duration, 2026-06-06 같은 local date, RFC3339 timestamp,
all을 받습니다. HUMAN, THINK, ACT를 포함한
ledger 판정 기준은 docs/ACTIVITY.ko.md에 있습니다.
계속 켜둔 monitoring scope는 muxa stats, muxa stats report, muxa timeline에서
--exclude-pane, --exclude-session으로 제외할 수 있습니다. 패턴은
case-sensitive이고 *, ? wildcard를 지원합니다. 예:
--exclude-session 'monitor*'.
지원 에이전트
훅 기반(authoritative). 기존 훅/이벤트 시스템에 연결해 정확한 상태 전이를 받습니다:
| Agent | 상태 | Config |
|---|---|---|
| Claude Code | 지원 | ~/.claude/settings.json |
| OpenAI Codex | 지원 | ~/.codex/config.toml |
| Google Gemini CLI | 지원 | ~/.gemini/settings.json |
Google Antigravity CLI (agy) |
지원 | ~/.gemini/config/hooks.json — 문서 |
| opencode | 실행 지원, hook 통합 예정 | tracking issue |
데몬은 Codex 세션 rollout 로그도 2초마다 읽어 hook에서 빠진 활동과 턴 완료를 보완합니다. 사용량 비율과 credit 정보는 통계이며, 실제 한도 오류가 있어야 quota error로 표시합니다.
화면 감지(fallback). 훅이 없는 에이전트는 pane 내용을 TOML 매니페스트로
분류합니다 — agy, codex, cursor-agent, amp, copilot, aider, goose용
매니페스트가 기본 번들로 제공되며 사용자가 확장 가능. 훅이 있으면 훅이 우선하되
예외가 하나 있습니다: agy는 승인 프롬프트에 대한 훅이 없어서 그 신호만은
화면 감지가 계속 담당합니다.
docs/SCREEN_DETECTION.md 참고.
Fleet host
로컬 muxad를 현재 장비와 여러 SSH host의 중앙 controller로 사용할 수 있습니다.
controller 장비는 별도 Fleet 설정 없이 즉시 local node로 나타납니다. 각 physical node는
stable UUID와 label/annotation metadata를 가지며 controller는 node마다 persistent outbound
SSH stdio relay와 독립적인 last-known cache를 유지합니다. 기본값은 observe이고
control은 host별로 명시해야 합니다. 원격 TCP listener는 열지 않습니다.
muxa fleet status # local은 이미 표시됨
muxa fleet status -L environment,region # 필요한 label column만 추가
muxa fleet status -o wide # 공간에 따라 hostname/version/latency
muxa fleet host label local environment=development
muxa fleet host add dev muxa-devbox --label environment=development --mode observe
muxa fleet host doctor dev
muxa fleet watch
# 같은 진입점: muxa watch --fleet
# `muxa init`은 이 화면을 tmux prefix+S에 연결함(local watch는 prefix+s 유지)
# local 하나뿐이면 불필요한 host row 없이 완전한 native watch 사용
selector, TUI key, 보안/성능, MCP/dashboard API는 docs/FLEET.ko.md를 참고하세요.
Pane backend
muxa는 여러 터미널 멀티플렉서 백엔드에서 에이전트를 관측하며, 여러 호스트를 동시에 볼 수 있습니다(tmux→herdr 마이그레이션 등):
| 호스트 | 상태 | 비고 |
|---|---|---|
| tmux | 전체 | 기본 백엔드. |
| herdr | 전체 | herdr 소켓 API 경유; docs/HERDR.md. |
| zellij | CLI 기본 | 플러그인 경로 예정; docs/ZELLIJ.md. |
여러 호스트 동시 관측은 docs/MULTI_HOST.md 참고.
상세 문서
| Topic | Doc |
|---|---|
| 설치와 wiring | docs/INSTALL.ko.md |
| 온보딩과 work/agent 운영 정책 | docs/ONBOARDING.ko.md |
MCP control plane (muxa mcp) |
docs/MCP.md |
| Physical SSH fleet | docs/FLEET.ko.md |
| Live TUI와 prompt composer | docs/WATCH.ko.md |
| CLI dashboard | docs/DASHBOARD_CLI.ko.md |
| Stats, report, activity ledger | docs/ACTIVITY.ko.md |
| Timeline TUI와 dashboard graph | docs/TIMELINE.ko.md |
| 설정 레퍼런스 | docs/CONFIGURATION.ko.md |
| Web dashboard | docs/DASHBOARD.md |
| External sinks | docs/SINKS.md |
| Zellij 계획 | docs/ZELLIJ.md |
| Architecture와 개발 | docs/ARCHITECTURE.ko.md |
| Agent 간 협업 | docs/COLLABORATION.ko.md |
개발
cargo test --workspace
cargo clippy --workspace --all-targets -- -D warnings
cargo fmt --all -- --check
라이선스
MIT OR Apache-2.0.
Peek 전문 보기
prefix + q로 peek를 연 뒤 **|**를 누르면 현재 패널의 텍스트를 전체 화면으로 읽을 수 있습니다. j/k 또는 방향키로 스크롤하고, PgUp/PgDn, Home/End로 이동합니다. n/p는 다음/이전 패널, r은 새로고침, | 또는 Esc는 오버레이로 복귀, q는 종료입니다.
Tab은 저장된 응답·요청·recap과 터미널 원문을 전환합니다. 저장된 응답에는 수집 시 길이 제한이 있을 수 있습니다. 터미널 원문은 tmux가 보관 중인 스크롤 기록 전체를 표시하며, 이미 삭제된 기록은 복원하지 못합니다. 읽는 동안 내용은 고정되고 r로 갱신됩니다.
muxa peek --expanded는 확대 보기로 바로 시작합니다. 기존 prefix + | 분할 바인딩은 변경하지 않습니다. 해당 키를 전문 보기로 바꾸려면 tmux 설정에 다음을 사용할 수 있습니다.
bind-key | display-popup -B -E -w 100% -h 100% -x 0 -y 0 "muxa peek --expanded"