brunolca/claude-plugins/tree/main/plugins/worktree-terminal

brunolca/claude-plugins/tree/main/plugins/worktree-terminal

Claude가 자체 git worktree에서 에이전트를 실행하면(Agent의 isolation: "worktree" 또는 EnterWorktree), 변경 사항은 .claude/worktrees/<name>에 저장됩니다. /term은 그 위치에서 셸을 열며 Claude 옆의 분할 창, 탭 또는 창으로 배치할 수 있습니다. /term, /term list, /term <n>, /term main, /term <name>과 배치를 재정의하는 --split/--tab/--window를 지원하고 프롬프트 위에 worktree별 버튼도 제공합니다. /config 아래 설정에서 터미널 앱(auto, tmux, zellij, kitty, wezterm, iterm, ghostty, warp, alacritty, gnome-terminal, konsole, terminal, system, custom), 배치와 사용자 지정 명령을 선택할 수 있습니다.
먼저 작성자의 README에서 marketplace와 플러그인 이름을 확인하세요. 저장소 구조에 따라 명령어가 달라질 수 있습니다.
claude plugin marketplace add brunolca/claude-plugins claude plugin install worktree-terminal
A Claude Code mod that opens a terminal in the worktree you or your agents are working in.
When Claude runs agents in their own git worktrees (Agent with isolation: "worktree", EnterWorktree), their changes live in .claude/worktrees/<name>. /term opens a shell right there: as a split next to Claude, a tab, or a window.

| Command | Opens |
| --- | --- |
| /term | the session's current directory (the worktree, once Claude entered one) |
| /term list | lists every worktree of the repo, agents' marked |
| /term <n> / /term main / /term <name> | a worktree by its number, the main one, or part of its folder or branch name |
| … --split / --tab / --window | overrides the placement for this call |
While agent worktrees exist, a row above the prompt has one button per worktree.
/term runs at once, even mid-turn.
In /config, under worktree-terminal:
| Setting | Values |
| --- | --- |
| Terminal app | auto (default), tmux, zellij, kitty, wezterm, iterm, ghostty, warp, alacritty, gnome-terminal, konsole, terminal, system, custom |
| Placement | split (default, right of Claude), tab, window |
| Custom command | used with custom: argv split on spaces, {dir} replaced by the path, e.g. foot -D {dir} |
auto reads the environment of the window Claude runs in; a multiplexer (tmux, Zellij) wins over the terminal hosting it.
| Terminal | split | tab | window | Needs |
| --- | --- | --- | --- | --- |
| tmux | ✓ | ✓ | → tab | |
| Zellij | ✓ | ✓ | → tab | |
| kitty | ✓ | ✓ | ✓ | allow_remote_control yes; listen_on unix:/tmp/kitty recommended; splits layout for a right split |
| WezTerm | ✓ | ✓ | ✓ | wezterm on PATH |
| iTerm2 | ✓ | ✓ | ✓ | Automation permission for iTerm2 (asked once) |
| Warp | → tab | ✓ | ✓ | |
| GNOME Terminal | → tab | ✓ | ✓ | |
| Konsole | → tab | ✓ | ✓ | |
| Ghostty | → window | → window | ✓ | |
| Alacritty | → window | → window | ✓ | |
| Terminal.app | → window | → window | ✓ | |
| anything else | → window | → window | ✓ | open -a Terminal (macOS), x-terminal-emulator (Linux) |
→ is the fallback used when the terminal has no way to open that placement from outside; /term says when it fell back.
claude plugin validate plugins/worktree-terminal
claude plugin test plugins/worktree-terminal
claude --plugin-dir plugins/worktree-terminal # load from the working copy, hot-reloaded
Adding a terminal: one entry in TERMINALS (hooks/terminals.ts) and one in CASES (tests/terminals.test.ts); a test fails while they disagree.