Wendov1.0 · iOS & Android
한국어

가이드

코딩 에이전트를 위한 tmux: 계속 돌리기 위한 최소한

에이전트를 SSH 셸에서 바로 시작하면 그 연결이 살아 있는 동안만 삽니다. tmux를 쓰면 접속 여부와 상관없이 에이전트가 서버에서 계속 돌고, 노트북에서든 폰에서든 원할 때 다시 붙으면 됩니다. tmux를 깊이 알 필요는 없습니다. 명령 열두 개 정도면 충분합니다.

이 글은 폰에서 Mosh와 SSH 비교의 짝이며, 폰에서 Claude Code 사용하기 가이드의 일부이기도 합니다.

살아남는 세션

가장 자주 쓰게 될 명령입니다.

tmux new-session -A -s agents

-A 플래그는 그 이름의 세션이 있으면 붙고, 없으면 만든다는 뜻입니다. 그래서 항상 같은 명령을 실행해도 됩니다. 안에서는 다른 셸에서처럼 에이전트를 시작합니다.

cd ~/code/my-app
claude

아무것도 종료하지 않고 나오려면 Ctrl-b를 누른 뒤 d를 눌러 분리합니다. 에이전트는 계속 돌아갑니다. 다시 들어가려면 다음을 씁니다.

tmux attach -t agents

어떤 세션이 있는지 보려면 다음을 씁니다.

tmux ls

터미널을 닫거나, Wi-Fi가 끊기거나, SSH가 죽어도 상관없습니다. 세션은 서버에 남습니다. 이것이 핵심입니다.

창: 에이전트마다 창 하나

세션에는 탭 같은 창이 있습니다. 흔한 상황은 이렇습니다. 2번 창에서 긴 리팩터링이 돌고, 3번 창에서 테스트가 돌고, 1번 창에서는 당신이 뭔가 만져 보고 있습니다.

tmux 안의 모든 단축키는 Ctrl-b로 시작합니다.

  • c는 새 창을 만듭니다.
  • ,는 현재 창의 이름을 바꿉니다.
  • n과 p는 다음 창과 이전 창으로 이동합니다.
  • 0–9는 번호로 창에 이동합니다.
  • w는 목록을 열어 고르게 합니다.

바깥에서나 스크립트에서도 창을 만들고 이름을 붙일 수 있습니다.

tmux new-window -n claude -c ~/code/my-app
tmux new-window -n codex -c ~/code/my-app
tmux rename-window -t agents:2 refactor

창마다 이름을 붙이는 일은 생각보다 중요합니다. 폰의 작은 목록에서는 “claude”, “codex”, “tests”가 보이는데, “bash”가 네 번 줄지어 있으면 도움이 안 됩니다.

패널

같은 창에서 두 가지를 동시에 보고 싶다면 창을 나눕니다.

  • Ctrl-b %는 창을 두 열로 나눕니다.
  • Ctrl-b "는 창을 두 행으로 나눕니다.
  • Ctrl-b o는 다음 패널로 이동합니다.
  • Ctrl-b x는 현재 패널을 닫습니다(먼저 물어봅니다).

폰 화면에서는 보통 패널보다 작업당 창 하나가 낫습니다. 노트북에서는 패널을 쓰세요.

작은 ~/.tmux.conf

마우스 지원과 더 긴 기록, 이 두 설정이 경험을 많이 바꿉니다. 기본 기록은 약 2,000줄인데, 에이전트는 이를 금방 넘깁니다.

set -g mouse on
set -g history-limit 50000
set -g allow-rename off

mouse on이면 손가락이나 휠로 스크롤하고, 패널을 탭해서 선택할 수 있습니다. allow-rename off는 실행 중인 프로그램이 창 이름을 바꾸지 못하게 합니다. 다음으로 다시 불러옵니다.

tmux source-file ~/.tmux.conf

마우스 없이 지나간 내용을 읽으려면 Ctrl-b [로 복사 모드에 들어가 화살표 키나 PgUp으로 올라가고, q로 나옵니다. Mosh에는 없고 tmux에는 있는 기능입니다.

에이전트 여러 개를 동시에: git worktree

두 에이전트가 같은 디렉터리를 편집하면 서로를 짓밟습니다. 깔끔한 해법은 에이전트마다 worktree 하나입니다. 각자 자기 폴더의 자기 브랜치에서 작업하고, 같은 저장소를 공유합니다.

cd ~/code/my-app
git worktree add ../my-app-auth -b feature/auth
git worktree add ../my-app-reports -b feature/reports
git worktree list

그다음 각각에 tmux 창을 하나씩 만듭니다.

tmux new-window -n auth -c ~/code/my-app-auth
tmux new-window -n reports -c ~/code/my-app-reports

브랜치를 병합하고 끝났다면 다음을 씁니다.

git worktree remove ../my-app-auth

Wendo가 이를 쓰는 방식

Wendo는 코딩 에이전트를 따라가기 위해 만든 iOS·Android용 SSH 클라이언트이고, tmux는 그 중심입니다. tmux 연동은 Wendo Pro 기능입니다.

  • 연결 시 진입할 곳: tmux를 고르고 원하면 세션 이름도 지정합니다. Wendo가 tmux new-session -A -s wendo(또는 지정한 이름)를 실행하므로, 연결을 열 때마다 당신의 세션으로 돌아옵니다.
  • 머신에는 각 컴퓨터의 세션, 창, 패널이 보입니다. 하나를 탭하면 그 자리에서 열립니다.
  • tmux에서는 워크스페이스 시트로 창을 전환하고, 이름을 바꾸고, 패널이나 창을 닫고, 세션을 만들 수 있습니다. 새 창에서 에이전트(Claude Code, Codex, OpenCode, Gemini CLI)를 실행하거나, 새 브랜치에 git worktree를 만들어 전용 창으로 열 수도 있습니다. 방금 위에서 손으로 한 일이 바로 그것입니다.
  • Claude가 멀티플렉서 안에서 실행되면 받은 편지함 알림이 정확한 패널로 데려다 줍니다. 훅 설치는 알림과 승인에서 다룹니다.

터미널 설정에는 tmux 전역 옵션(제목, 마우스, 상태 표시줄) 적용이 있습니다. 모든 내용은 tmux 문서에 있고, 연결이 불안정하다면 세션 문서가 Mosh와 ET를 설명합니다.

대안: zellij와 herdr

다른 멀티플렉서가 좋다면 Wendo는 zellij(zellij attach -c wendo)와 herdr(herdr 또는 herdr --session <name>)도 지원합니다. 컴퓨터에 설치되어 있어야 합니다. 원리는 같습니다. 에이전트는 서버에 살고, 당신은 오갑니다.