<p align="center">
<img src="https://agentwire.dev/images/echo-banner.png" alt="AgentWire" width="600">
</p>
<p align="center">
<strong>한 번에 여러 <em>fleet</em>의 Claude Code 에이전트를 실행하기 위한, 자체 호스팅(self-hosted) 키보드 기반의 조종석입니다.</strong>
</p>
<p align="center">
tmux 창들로 가득 찬 벽에서 하나의 조종석으로. 작업 트리(Worktrees), 명령 팔레트(command palette), 스케줄러(scheduler), 음성 기능(voice) — 모든 레이어가 쌓여, 수동으로 터미널을 여러 개 오가며 작업할 때보다 훨씬 많은 것을 배포할 수 있게 합니다. 당신의 기기, 당신의 키, 그리고 원격 측정(telemetry)은 없습니다.
</p>
<p align="center">
<a href="https://pypi.org/project/agentwire-dev/"><img src="https://img.shields.io/pypi/v/agentwire-dev?color=green" alt="PyPI"></a>
<a href="https://pypistats.org/packages/agentwire-dev"><img src="https://img.shields.io/pypi/dm/agentwire-dev?color=00ff88&label=installs" alt="PyPI Downloads"></a>
<a href="https://github.com/dotdevdotdev/agentwire-dev/stargazers"><img src="https://img.shields.io/github/stars/dotdevdotdev/agentwire-dev?style=flat&logo=github&color=00d4ff" alt="GitHub Stars"></a>
<a href="https://pypi.org/project/agentwire-dev/"><img src="https://img.shields.io/pypi/pyversions/agentwire-dev" alt="Python"></a>
<a href="https://github.com/dotdevdotdev/agentwire-dev/blob/main/LICENSE"><img src="https://img.shields.io/github/license/dotdevdotdev/agentwire-dev" alt="License"></a>
</p>
AgentWire가 필요한 이유 (Why AgentWire)
여러 Claude Code 에이전트를 수동으로 실행한다는 것은 tmux 창들의 벽을 의미합니다: 지속적인 컨텍스트 전환(context-switching), 세션 간의 복사 및 붙여넣기, 각 에이전트가 어떤 브랜치에 있는지 추적하고, 모든 것을 직접 관리해야 합니다. 이는 당신의 주의력 — 모델 자체가 아니라 — 이 한두 개를 넘어서는 순간 병목 현상이 됩니다. AgentWire는 그 벽을 하나의 조종석으로 변환하며, 그 기능들은 복합적으로 작용합니다(compound):
- 시너지를 창출합니다. Worktrees + 명령어 팔레트 + 빠른 액션 키 + 탭 전환 기능 + 스케줄러 + 음성 입력이 각 스택을 서로 증폭시켜 한 사람이 한 번에 처리할 수 있는 양을 극대화합니다. 이것이 핵심입니다. 단일 기능 그 자체가 목적이 아닙니다.
- 하나의 에이전트를 관찰하는 것이 아니라, 많은 에이전트를 오케스트레이션(Orchestrate) 합니다. 모든 세션은 하나의 창이며, F3 키를 누르면 이들이 Mission-Control 콜라주로 펼쳐지고, Tab 키는 그 사이를 순환하며, Cmd/Ctrl+K 키로는 어떤 액션이든 실행합니다. 컨설팅 회의(Council)가 논의하고, 브리핑 모드(briefing mode)가 확장되며, Worktree 세션은 병렬 작업을 격리합니다. 이는 처음부터 tmux와 Claude Code에 네이티브하게 통합되었습니다.
- 자율적이며 비감독적입니다. 스케줄러는 주기적인 작업(연구, 테스트 실행, 정리, 문서 드리프트(doc-drift))을 실행하고, 게이트(gates)가 실제 작업이 이루어졌는지 검증합니다. 레포지토리 작업은 main 브랜치에 커밋하는 것이 아니라 *초안 PR(draft PR)*을 엽니다. 신뢰성 플러밍(reliability plumbing)(검증된 전송, 데드레터(dead-letter), 실패 시 이메일 알림, 사용량 제한 복구) 덕분에 아무것도 조용히 실패하지 않습니다.
- 당신의 기기, 당신의 키, 텔레메트리 없음. 완전히 당신의 하드웨어에서 실행되며, 기본적으로 루프백(loopback)됩니다. 클라우드 계정이나 제3자가 개입할 여지가 없습니다. 당신의 코드와 API 키는 절대 기기를 벗어나지 않습니다. 300개 이상의 피해 통제 블록(damage-control blocks)이 비감독적 실행을 안정적으로 만듭니다.
공식 앱을 사용하여 하나의 세션을 관찰하고; AgentWire를 사용하여 전체 플릿(fleet)에 명령합니다 — 당신의 자체 하드웨어에서, 키보드로, 그리고 그 위에 음성 입력을 덧대어.
작동 방식 (What It Does)
모든 에이전트 세션이 하나의 창인, 자체 호스팅되는 데스크톱 스타일 포털입니다. 이는 LAN의 모든 장치에서 접근 가능하며, 당신의 하드웨어와 당신의 키를 사용하여 실행됩니다.
You → AgentWire Portal → tmux sessions → a fleet of Claude Code agents
⌨️🎤 (WebSocket) 📺 🤖🤖🤖
노트북, 휴대폰 또는 네트워크의 태블릿에서:
- 모든 세션은 드래그 가능한 창이며, F3으로 콜라주를 만들고, Tab 키로 전환할 수 있습니다.
- 명령어 팔레트(Cmd/Ctrl+K)를 사용하면 모든 액션을 실행할 수 있으며, 곳곳에 빠른 액션 키가 배치되어 있습니다.
- 세션을 격리된 git 작업 트리(worktree)로 분기하여 병렬 작업을 수행할 수 있습니다.
- 반복적인 작업은 스케줄러에 맡기고, 어려운 호출은 컨설팅 위원회(council)에 전달합니다.
- 푸시 투 토크(push-to-talk)로 입력하고, 음성 요약으로 응답을 받으며 — 오프탭 상태에서도 귀로 세션을 제어할 수 있습니다.
결과: 전체 시스템이 하나의 기계처럼 느껴집니다. 개별 세션을 돌보는 것에서 여러 세션을 지휘하는 것으로 전환됩니다.
빠른 시작 (Quick Start)
uv tool install agentwire-dev
...
선택 사항: 이 리포지토리를 클론하여(git clone https://github.com/dotdevdotdev/agentwire-dev ~/projects/agentwire-dev) agentwire dev를 실행하면 내부에서 안내되는 헬퍼 세션이 열립니다 — 설정 워크스루, 프로젝트 배선(wiring), 이슈 제출, 포킹 등이 포함됩니다. 소스 코드를 체크아웃해야 하지만, 위에 언급된 모든 기능은 그렇지 않아도 작동합니다.
필수 조건: Python 3.10 이상, tmux, Claude Code. 선택 사항: ffmpeg (호스트 마이크 푸시 투 토크 캡처에만 필요 — 브라우저 음성 입력 시에는 필요하지 않습니다).
솔직한 설정 시간: 정말 좋은 목소리를 가진 작동하는 음성 포털까지는 1분 미만입니다 — Kokoro-82M은 기본적으로 CPU에서 실행됩니다 (배경에서 일회성 약 200MB 모델 다운로드; 브라우저 음성은 대기 시간을 커버합니다). 전체 경험을 위해서는 약 15분이 소요됩니다: 자체 호스팅 TTS 심(shim)을 통한 클론된 목소리, Whisper급 전사(transcription), 어디서든 가능한 휴대폰 연결 (인증서 + 토큰).
전화 / LAN 접근 (Phone / LAN Access)
포털은 기본적으로 루프백 주소(127.0.0.1)에 바인딩됩니다. 휴대폰, 태블릿 또는 로컬 네트워크의 다른 장치에서 포털에 접속하려면:
- SSL 인증서 생성 (루프백 연결이 아닌 환경에서 마이크 접근에 필요):
- LAN 접속 활성화:
~/.agentwire/config.yaml 파일에서 server.host: 0.0.0.0으로 설정합니다.
- 인증 토큰 받기: 루프백이 아닌 연결은 베어러 토큰(bearer token)을 필요로 합니다. 다음 명령어로 출력하세요:
- 연결하기: 휴대폰에서
https://<your-machine-ip>:8765를 열고, 요청 시 토큰을 입력합니다.
Origin 검사는 모든 바인드(bind)마다 크로스 사이트 브라우저 요청을 거부합니다. 포털은 신뢰할 수 있는 LAN에 두고 — 절대 포트 포워딩하거나 공용으로 노출되는 VPS에서 실행하지 마세요. 인터넷 접속이 필요하면 Cloudflare Tunnel + Zero Trust를 사용하세요. 자세한 내용은 SECURITY.md를 참고하세요.
<details>
<summary><strong >플랫폼별 설치 지침</strong></summary>
macOS:
brew install tmux uv
uv tool install agentwire-dev
pip install agentwire-dev를 바로 실행하면 Homebrew Python 3.12+ 환경에서 error: externally-managed-environment (PEP 668) 오류가 발생합니다. uv tool install (또는 pipx install agentwire-dev)은 자체 격리된 환경에 설치하여 이를 우회합니다.
Ubuntu/Debian:
sudo apt install tmux
curl -LsSf https://astral.sh/uv/install.sh | sh
uv tool install agentwire-dev
pipx install agentwire-dev도 모든 곳에서 작동합니다. 일반 pip를 선호한다면? venv를 사용하세요: python3 -m venv ~/.agentwire-venv && source ~/.agentwire-venv/bin/activate && pip install agentwire-dev.
WSL2: Ubuntu와 동일합니다. 오디오 기능이 제한적이므로, Windows 호스트의 포털을 이용하는 원격 워커로 사용하세요.
</details>
tmux 설정이 중요합니다. 기본 tmux는 마우스 스크롤 기능이 없고, 작은 스크롤백(scrollback) 기능을 가지며, 복사 경험(copy UX)이 깨져 있습니다 — 권장 tmux 설정을 참고하거나 agentwire init이 자동으로 설치하도록 하세요.
기능 (Features)
콕핏(cockpit), 그리고 그 위에 쌓이는 레이어들:
| Feature | Description |
|---|
| Desktop UI | 모든 세션은 드래그 가능한 창이며, F3 콜라주 그리드, Tab으로 전환, Cmd/Ctrl+K 명령 팔레트를 사용합니다. |
| ... | |
작동 방식 (How It Works)
1. 세션 생성:
agentwire new -s myproject -p ~/projects/myproject
2. 포털 열기:
Chrome에서 http://127.0.0.1:8765로 접속하거나 (LAN 접근이 구성된 휴대폰/태블릿 사용), 세션별로 원하는 만큼 창을 열고 Tab으로 전환하거나, 콜라주 그리드를 위해 F3을 누릅니다.
3. 키보드로 구동:
Cmd/Ctrl+K는 모든 작업을 실행하며; 빠른 액션 키는 포커스된 세션으로 전송됩니다; 세션을 워크트리(worktree)로 분기하여 병렬 작업을 수행할 수 있습니다; 반복 작업을 스케줄러에 등록합니다.
4. 음성 기능 추가:
마이크를 누르고 말하면 되며 (인스턴트 모드에서는 빠르게 확인하기 위해 녹취록이 나타나고, Enter를 누르면 전송됩니다), 에이전트의 응답은 소리 내어 들려줍니다 — Kokoro 신경 음성은 기본으로 제공되므로, 눈을 다른 곳에 두고도 귀로 요약 내용을 듣거나 세션을 구동할 수 있습니다.
멀티-에이전트 오케스트레이션 (Multi-Agent Orchestration)
AgentWire는 복잡한 작업을 위해 오케스트레이터/워커 패턴(orchestrator/worker patterns)을 지원합니다:
**세션(Sessions)**에서 워커를 생성할 수 있습니다:
agentwire spawn --roles worker
agentwire send --pane 1
두 가지 계층, 양쪽 모두:
**`default` (설정 불필요, 새로 설치했을 때의 기본값):** Chrome 음성 인식 입력, **Kokoro-82M 출력** — 정말 훌륭한 신경 음성(TTS Arena에서 82M 파라미터로 최고 기록)을 제공하며, 8개 언어에 걸쳐 32개의 사전 설정된 목소리를 지원하고, 순수 CPU 기반이며 모든 OS에서 동일하게 작동합니다. 모델(~200 MB)은 첫 포털 시작 시 백그라운드에서 다운로드되며; 브라우저의 speechSynthesis가 준비될 때까지 음성을 처리하고 (최후의 수단 대체 기능을 유지합니다). GPU도 필요 없고, 인증서도 필요 없고, 명령어도 필요 없습니다.
**`custom` (사용자 모델 가져오기):** [음성 슁(voice shim) 계약](docs/wiki/voice/shim-contract.md)을 구현하는 모든 HTTP 슁 — ~30줄의 코드로 무엇이든 감쌀 수 있습니다 (Deepgram, whisper.cpp, 표현적인 감정 태그 모델 등). 음성 복제, GPU 엔진, 감정 제어는 여기서 작동합니다. 번들된 서버들은 참고용 슁입니다:
```yaml
tts:
backend: "custom"
...
슁은 GET /capabilities를 통해 기능(감정 태그, 스타일 지침)을 선언할 수 있으며 — agentwire는 슁의 tool_prompt를 에이전트의 say 도구 정의에 주입하여 에이전트가 실제로 이를 사용하도록 합니다.
<details>
<summary><strong>텍스트 전용을 선호하시나요?</strong></summary>
인스턴트 모드는 이미 아무것도 필요하지 않습니다 — 마이크를 누르지 않으면 됩니다. 에이전트 음성은 브라우저를 통해 재생됩니다; 탭을 음소거하거나 (연결된 브라우저가 없더라도, 로컬 스피커에서 음성이 재생되며, 시스템 수준에서 침묵시킬 수 있습니다).
</details>
CLI 참고 자료
<details>
<summary><strong>세션 관리</strong></summary>
agentwire list
agentwire new -s <이름> -p <경로>
agentwire kill -s <이름>
...
</details>
<details>
<summary><strong>워커 패널</strong></summary>
agentwire spawn --roles worker
agentwire send --pane 1 "작업"
agentwire output --pane 1
...
</details>
<details>
<summary><strong>음성 명령어</strong></summary>
agentwire say "Hello"
agentwire send -s NAME "Done"
agentwire listen start/stop
...
<details>
<summary><strong>원격 머신 (Remote Machines)</strong></summary>
agentwire machine add gpu --host 10.0.0.5 --user dev
agentwire new -s ml@gpu
agentwire tunnels up
</details>
<details>
<summary><strong>안전 및 진단 (Safety & Diagnostics)</strong></summary>
agentwire doctor
agentwire safety status
agentwire hooks install
...
</details>
문서 (Documentation)
전체 참조: docs/wiki/INDEX.md
빠른 링크:
라이선스 (License)
AgentWire는 **Apache License 2.0**에 따라 무료 오픈 소스로 제공됩니다. — 당신의 머신, 당신의 키, 원격 측정 없음.