HN 표시: Kage – tmux 및 Git 작업 트리를 사용하여 여러 AI 에이전트를 관리하기 위한 TUI
hackernews
|
|
📦 오픈소스
#ai 에이전트
#claude
#cli 도구
#git
#tmux
#개발 팁
원문 출처: hackernews · Genesis Park에서 요약 및 분석
요약
'Kage'는 나루토의 '그림자 분신' 기술에서 착안한 CLI 도구로, tmux와 Git worktree를 활용해 여러 AI 코딩 에이전트를 독립적으로 병렬 실행할 수 있는 TUI 대시보드를 제공합니다. 각 기능별 고립된 작업 환경을 통해 에이전트 간의 간섭을 방지하며, 사용자는 버블티 UI를 통해 새 작업 생성 및 세션 관리를 직관적으로 수행할 수 있습니다. 또한 Claude Code나 Codex 등 다양한 에이전트를 지원하며, MCP 서버를 연동한 코디네이터 모드를 통해 전체 에이전트의 작업을 조율하는 기능도 포함되어 있습니다.
본문
A CLI tool that manages multiple AI coding agent worktree sessions via tmux. kage (影, shadow) is inspired by 影分身 (Kage Bunshin / Shadow Clone) — the technique of creating multiple clones of yourself, each working independently on a different task. With kage, you summon shadow clones of AI coding agents, each operating in its own git worktree and tmux window, working on separate features in parallel. You are the original; your agents are the clones. ┌───────────────────────────────────┐ │ kage TUI Dashboard │ │ ┌─────────────────────────────┐ │ │ │ ● app/feat-auth [3p] │ │ │ │ app/feat-search [3p] │ │ │ │ app/fix-login [3p] │ │ │ │ │ │ │ │ n:new enter:jump d:delete │ │ │ └─────────────────────────────┘ │ └─────────────────┬─────────────────┘ │ ┌───────────────────┼───────────────────┐ │ │ │ ▼ ▼ ▼ ┌────────────────┐ ┌────────────────┐ ┌────────────────┐ │ tmux window │ │ tmux window │ │ tmux window │ │ feat-auth │ │ feat-search │ │ fix-login │ │┌──────────────┐│ │┌──────────────┐│ │┌──────────────┐│ ││ Claude Code ││ ││ Aider ││ ││ Codex ││ ││ (60%) ││ ││ (60%) ││ ││ (60%) ││ │├──────────────┤│ │├──────────────┤│ │├──────────────┤│ ││ shell (20%) ││ ││ shell (20%) ││ ││ shell (20%) ││ │├──────────────┤│ │├──────────────┤│ │├──────────────┤│ ││ shell (20%) ││ ││ shell (20%) ││ ││ shell (20%) ││ │└──────────────┘│ │└──────────────┘│ │└──────────────┘│ └────────┬───────┘ └────────┬───────┘ └────────┬───────┘ │ │ │ ▼ ▼ ▼ ┌────────────────┐ ┌────────────────┐ ┌────────────────┐ │ git worktree │ │ git worktree │ │ git worktree │ │ app-feat-auth │ │app-feat-search │ │ app-fix-login │ └────────────────┘ └────────────────┘ └────────────────┘ Each "shadow clone" works independently in its own isolated worktree — no conflicts, no interference. - Git worktree isolation — Each feature branch runs in its own worktree, so agents never interfere with each other - tmux-based session management — One tmux session, one window per feature, with customizable pane layouts - Bubble Tea TUI dashboard — Create, launch, switch between, and delete worktree sessions interactively - Feature descriptions — Add short descriptions to feature branches to remember what each clone is working on - Flexible pane layouts — Configure horizontal/vertical splits with nested tree layouts or simple flat lists - Agent-agnostic — Works with Claude Code, Codex, Aider, or any CLI tool - Coordinator mode — Optionally launch a coordinator Claude Code pane on the dashboard with an MCP server for cross-agent orchestration - Go 1.26+ - tmux - Git go install github.com/Sean0628/kage@latest Check the installed version with: kage --version When installed with go install github.com/Sean0628/kage@ , kage --version will report that tagged GitHub version automatically. Or build from source: git clone https://github.com/Sean0628/kage.git cd kage go build -ldflags "-X github.com/Sean0628/kage/cmd.version=v0.1.0" -o bin/kage . GitHub tags are the source of truth for released versions. Push a tag like v0.1.0 and GitHub Actions will build release artifacts with that same version embedded in the binary. git tag v0.1.0 git push origin v0.1.0 - Create a config file at ~/.config/kage/config.yaml : defaults: layout: split: horizontal panes: - cmd: claude size: 60% - cmd: shell size: 20% - cmd: shell size: 20% projects: - name: my-project path: /path/to/your/repo # Optional: launch a coordinator Claude Code pane on the dashboard # coordinator: true - Launch kage: kage This creates (or attaches to) a tmux session named kage and opens the TUI dashboard. | Key | Action | |---|---| ↑ /k | Move up | ↓ /j | Move down | n | New feature branch | enter | Jump to window | a | Attach agent to existing worktree | d | Delete feature (worktree + window) | e | Edit description for selected feature | r | Refresh | h | Show help guide | q | Quit dashboard | While in tmux, press Ctrl+b K to jump back to the dashboard. The config file (~/.config/kage/config.yaml ) defines your projects and pane layouts. defaults: layout: split: horizontal panes: - cmd: claude size: 60% - split: vertical size: 40% panes: - cmd: shell size: 50% - cmd: shell size: 50% defaults: layout: - cmd: claude size: 60% - cmd: shell size: 20% - cmd: shell size: 20% The special command shell leaves the pane as a plain shell with no command executed. projects: - name: frontend path: /path/to/frontend-repo layout: split: horizontal panes: - cmd: claude size: 70% - cmd: shell size: 30% - name: backend path: /path/to/backend-repo Projects without a layout key inherit from defaults . When coordinator: true is set, kage splits the dashboard window and launches a coordinator agent with the kage MCP server pre-configured. The coordinator can orchestrate work across all feature agents — listing projects, sending messages, capturing output, and checking agent status. Each feature also gets a session-scoped global numeric ID in the dashboard and MCP listings. Coordinator calls can use that id instead of spelling out project and branch . c
Genesis Park 편집팀이 AI를 활용하여 작성한 분석입니다. 원문은 출처 링크를 통해 확인할 수 있습니다.
공유