tmux와 Claude Code: 세션, send-keys, 그리고 한계

4 hours ago 4

tmux는 AI 코딩 에이전트를 이름 있는 세션에 유지해 터미널을 닫거나 SSH 연결이 끊겨도 작업을 계속하게 하며, 여러 에이전트를 한 창에서 관리할 수 있게 함 최근 Claude Code의 claude --worktree --tmux 는 단일 브랜치에서 작업할 에이전트의 작업 트리와 세션을 함께 생성함. 세션을 스크립트로 제어하려면 iTerm2 기본 동작 대신 --tmux=classic을 사용해야 함 send-keys와 capture-pane 을 조합하면 외부 스크립트에서 실행 중인 에이전트에 입력을 보내고 화면을 읽을 수 있음. 다만 입력 타이밍과 특수 키 처리, 화면 줄바꿈을 고려해야 함 tmux는 에이전트 상태를 직접 알지 못하므로, 승인 대기와 작업 완료를 구분하려면 화면 문자열을 추출하거나 출력 중단을 감지해야 함. 두 방법 모두 실제 상태를 정확히 보장하지 않음 원격 작업과 SSH 연결 단절 대응에는 tmux가 여전히 적합하지만, 여러 에이전트의 승인 요청, 구조화된 기록, 세션 간 공유, 재부팅 이후 기록 보존은 별도로 해결해야 함 tmux가 에이전트 실행에 맞는 이유 코딩 에이전트는 터미널과 계속 상호작용하는 장기 실행 프로세스이며, tmux의 연결 유지, 다중 세션 관리, 외부 스크립트 제어가 이 형태와 잘 맞음 tmux 서버가 pty를 소유하므로 터미널 창을 닫거나 SSH 연결이 끊겨도 에이전트가 유지되고, 다시 연결해 작업을 이어 볼 수 있음 여러 에이전트를 각각 이름 있는 세션으로 관리하면 애플리케이션 창을 찾아다니는 대신 키 입력으로 세션을 전환할 수 있음 외부 셸에서 실행 중인 에이전트에 입력을 보내거나 화면을 읽을 수 있어, 별도 IPC나 API 연결 없이 제어 스크립트를 만들 수 있음 Claude Code 내장 플래그의 범위 최근 Claude Code의 --worktree [name] 은 세션용 Git 작업 트리를 만들고, --tmux는 해당 작업 트리의 세션을 생성함 claude --worktree --tmux로 실행하거나, claude --worktree auth-refactor --tmux처럼 작업 트리 이름을 지정할 수 있음 --tmux는 --worktree 없이 사용하면 오류가 발생하며, 일반적인 세션 생성 플래그가 아님 iTerm2에서는 기본적으로 네이티브 패널을 사용하므로 이후 tmux 명령으로 제어할 대상이 없음 실제 tmux 세션을 만들고 스크립트로 제어하려면 -...

Read Entire Article




피플앤툴즈 네트워크
🛍 샵