클로드 코드 agent view: 여러 백그라운드 세션을 한 화면에서 관리하기

클로드 코드 agent view: 여러 백그라운드 세션을 한 화면에서 관리하기

클로드 코드로 일하다 보면 동시에 굴리고 싶은 작업이 점점 늘어납니다. 버그 하나는 조사를 시키고, 다른 한쪽에서는 PR 리뷰를 받고, 또 다른 세션에서는 깜박이는 테스트(flaky test)를 추적하고 싶죠. 그런데 터미널 탭을 세 개 열어두면 각각이 뭘 하고 있는지 일일이 들여다봐야 하고, 답해야 하는 세션이 어느 탭인지 찾는 데도 시간을 씁니다. 🤔

이럴 때 쓰라고 만든 게 바로 agent view입니다. claude agents 한 줄로 열리는 한 화면이고, 백그라운드에서 돌고 있는 모든 세션이 한눈에 들어옵니다. 누가 일하는 중인지, 누가 내 답을 기다리는지, 누가 결과를 다 내놨는지가 그룹으로 묶여 보이고요. 이번 글에서는 agent view로 여러 세션을 어떻게 띄우고 관리하는지 살펴보겠습니다.

agent view가 뭔가요?

agent view는 셸에서 claude agents를 실행하면 열리는 전용 화면입니다. 현재 돌아가는 모든 백그라운드 세션이 표 형태로 나열되고, 맨 아래에 새 작업을 던질 수 있는 입력창이 붙어 있습니다. 클로드 코드 v2.1.139 이상에서 동작하며, 글을 쓰는 시점에는 리서치 프리뷰 단계라 단축키와 UI가 더 바뀔 수 있습니다.

여기서 말하는 “백그라운드 세션”은 서버 프로세스를 뒤로 보내는 백그라운드 실행과는 다른 개념입니다. 셸 명령어 하나가 아니라 클로드 코드 대화 세션 자체가 터미널 없이 돌아가는 거예요. 슈퍼바이저(supervisor) 프로세스가 따로 떠서 세션들을 관리하니까, 터미널을 닫아도 작업은 계속됩니다.

그래서 워크플로우가 이런 모양이 됩니다. 입력창에 “PR 1234의 리뷰 코멘트 반영해줘” 같은 프롬프트를 넣고 엔터를 치면, 새 세션이 시작되면서 행(row) 하나로 표에 떠요. 다른 일을 하다가 가끔 agent view를 열어서 누가 막혔는지 보고, 답해줄 게 있으면 그 자리에서 답하고, 결과 검토가 필요하면 그 세션에 부착(attach)해서 전체 대화로 들어가는 식이죠.

첫 세션 띄우기

먼저 셸에서 agent view를 엽니다.

claude agents

화면이 뜨면 맨 아래에 입력창이 있고, 그 위로 세션 목록이 비어 있을 거예요. 처음 열었다면 띄운 세션이 없으니 당연히 비어 있습니다. 입력창에 작업 설명을 넣고 엔터를 누르면 첫 세션이 시작됩니다.

> investigate the flaky SettingsChangeDetector test

엔터를 누른 직후부터 새 세션이 별도 프로세스로 시작되고, 입력창은 다시 비워집니다. 두 번째 프롬프트를 더 입력하면 첫 세션에 후속 메시지로 들어가는 게 아니라 또 다른 세션이 새로 시작돼요. 입력창은 항상 “새 세션 띄우기” 용도라는 점만 기억하면 됩니다.

프롬프트 첫 단어가 서브 에이전트 이름과 일치하면 그 서브 에이전트가 세션의 메인 에이전트로 동작합니다. 예를 들어 code-reviewer fix the review comments on #1234 같은 식이죠. 명시적으로 쓰고 싶다면 @code-reviewer 형태로 멘션해도 됩니다.

세션이 시작될 때 사용되는 모델은 agent view 헤더에 표시된 모델입니다. 띄울 때마다 다른 모델로 돌리고 싶다면, 열 때 플래그로 기본값을 바꿔둘 수 있어요.

claude agents --permission-mode plan --model opus --effort high

이 플래그들은 v2.1.142 이상에서 동작하므로, 옛 버전이라면 claude update로 먼저 갱신해야 합니다.

세션 상태 읽기

표의 각 행은 세션 이름, 지금 뭘 하는지 한 줄 요약, 마지막으로 상태가 바뀐 시간을 보여줍니다. 행 맨 앞에는 작은 아이콘이 붙는데, 색과 애니메이션으로 상태를 표시해요.

  • Working — 애니메이션 아이콘. 클로드가 지금 도구를 돌리거나 응답을 생성 중
  • Needs input — 노란색. 질문이나 권한 결정을 기다리는 중
  • Idle — 흐릿한 색. 할 일이 없고 다음 프롬프트 대기 중
  • Completed — 초록색. 작업이 성공적으로 끝남
  • Failed — 빨간색. 오류로 끝남
  • Stopped — 회색. Ctrl+Xclaude stop으로 중지됨

아이콘 모양은 또 별개의 정보를 줍니다. 이나 은 세션 프로세스가 살아 있어서 바로 응답할 수 있다는 뜻이고, 은 프로세스가 종료된 상태예요. 종료됐어도 엿보기(peek)나 답장이 가능하며, 그 순간 프로세스가 다시 살아납니다. /loop로 반복 실행 중인 세션이 다음 주기까지 잠들어 있는 상태고요.

표는 상태별로 그룹이 묶여서 표시됩니다. 위에서부터 Needs input, Ready for review(PR이 열린 세션), Working, Completed 순이에요. 내가 답해줘야 풀리는 일이 항상 위로 오니까, 화면을 열 때마다 어디부터 봐야 할지가 자연스럽게 정해집니다.

예시 화면은 이런 모양입니다.

agent view
Pinned
  ✽ clawd walk cycle          Write assets/sprites/clawd-walk.png           3m

Ready for review
  ∙ jump physics              github.com/example/game/pull/2048          ●  2h

Needs input
  ✻ power-up design           needs input: double jump or wall climb?       1m

Working
  ✽ collision detection       Edit src/physics/CollisionSystem.ts           2m

Completed
  ✻ title screen              result: menu, options, and credits done       9m

─────────────────────────────────────────────────────────────────────────
❯ start a task in the background
─────────────────────────────────────────────────────────────────────────
  ⏵⏵ bypass permissions · enter to open · space to reply · ctrl+x to delete · ? for shortcuts

세션 표 아래에는 새 세션을 띄우는 입력창이 있고, 바로 그 아래로 지금 화면에서 쓸 수 있는 단축키 힌트가 한 줄로 떠 있습니다. 맨 앞의 ⏵⏵는 현재 권한 모드를 알려주고(bypass permissions면 권한 확인 없이 실행됨), 그 옆에는 자주 쓰는 동작이 나열돼요. 더 많은 단축키가 궁금하면 ?를 누르면 됩니다.

오른쪽 끝의 동그라미는 PR 상태입니다. 노란색이면 체크가 돌아가는 중이거나 리뷰 대기, 초록색이면 통과해서 머지 가능, 보라색이면 머지 완료, 회색이면 드래프트나 닫힘이에요. 터미널이 하이퍼링크를 지원하면 동그라미를 눌러서 바로 PR로 갈 수 있습니다.

엿보기와 답장하기

행을 화살표 키로 선택한 다음 Space를 누르면 엿보기(peek) 패널이 열립니다. 그 세션이 마지막으로 출력한 내용이나 지금 묻고 있는 질문이 보이고, 패널 안에서 바로 답장을 쓸 수 있어요.

peek panel
power-up design · 1m
─────────────────────────────────────
needs input:

Should I prioritize the double jump or the wall climb
ability for the new level?

[Tab to apply suggestion · Enter to send]

여기서 답장을 치고 엔터를 누르면 그 세션으로 메시지가 들어갑니다. 전체 대화 기록을 열 필요 없이 짧은 답만으로 막힌 세션을 풀어주는 거죠. 객관식 질문이면 숫자 키로 바로 선택할 수도 있고, Tab을 누르면 추천 답안이 입력창에 채워집니다. 답장 맨 앞에 !를 붙이면 메시지 대신 셸 명령으로 전달되고요.

엿보기 패널을 띄운 상태에서 을 누르면 인접한 세션을 차례로 들여다볼 수 있어요. 답장 한두 줄이면 끝나는 일은 대부분 엿보기에서 처리되니까, 전체 대화로 들어가는 일이 생각보다 적습니다.

세션에 부착하기

엿보기로는 부족하고 전체 대화 맥락이 필요하면, 선택된 행에서 Enter를 누릅니다. agent view 화면이 통째로 그 세션의 인터랙티브 화면으로 바뀌면서, 마치 그 디렉토리에서 claude를 처음 실행한 것처럼 동작해요. 부착되는 순간 클로드가 그동안 뭘 했는지 짧게 요약해줍니다.

부착된 상태에서는 일반 클로드 코드 세션과 똑같이 모든 명령어와 단축키가 동작합니다. 다 보고 났으면 빈 입력창에서 를 누르면 세션은 그대로 두고 agent view로 돌아갑니다. Ctrl+CCtrl+D로 빠져나가도 백그라운드 세션은 죽지 않아요. 정말로 끝내고 싶다면 세션 안에서 /stop을 실행해야 합니다.

이미 열려 있는 일반 세션을 agent view로 옮기고 싶다면 두 가지 방법이 있습니다. 그 세션 안에서 /bg를 실행하거나, 빈 입력창에서 를 누르면 됩니다. 둘 다 현재 대화를 백그라운드로 보내고 agent view를 여는 동작이에요.

셸에서 직접 띄우기

agent view를 안 열고 셸에서 바로 세션을 만들 수도 있습니다.

claude --bg "investigate the flaky SettingsChangeDetector test"

--bg 플래그를 붙이면 새 세션이 바로 백그라운드로 들어가요. 세션이 뜨면 짧은 ID와 함께 관리 명령어가 출력됩니다.

결과
backgrounded · 7c5dcf5d
  claude agents             list sessions
  claude attach 7c5dcf5d    open in this terminal
  claude logs 7c5dcf5d      show recent output
  claude stop 7c5dcf5d      stop this session

서브 에이전트를 세션의 메인 에이전트로 쓰고 싶다면 —agent 플래그와 조합합니다.

claude --agent code-reviewer --bg "address review comments on PR 1234"

--name 플래그로 표에 표시될 이름을 직접 정해둘 수도 있고요. 스크립트나 CI에서 세션을 줄줄이 띄울 때 유용합니다.

키보드 단축키

화면 하단 힌트만으로는 부족할 때 ?를 누르면 전체 단축키가 한 화면에 뜹니다. 자주 쓰는 것만 추리면 다음과 같아요.

  • / — 행 사이 이동
  • Enter — 입력창이 비어 있으면 선택 세션에 부착, 텍스트가 있으면 새 세션 띄우기
  • Space — 엿보기 패널 열기 또는 닫기
  • Shift+Enter — 띄우고 바로 부착
  • Alt+1~Alt+9 — 현재 그룹의 1~9번 세션에 즉시 부착
  • Ctrl+S — 상태별 그룹과 디렉토리별 그룹 사이 토글
  • Ctrl+T — 선택 세션을 상단에 고정 또는 해제
  • Ctrl+R — 세션 이름 바꾸기
  • Ctrl+X — 세션 중지. 2초 안에 한 번 더 누르면 삭제
  • Esc — 패널 닫기, 입력 지우기, 또는 종료

Ctrl+X를 두 번 눌러 세션을 삭제하면 그 세션이 쓰던 워크트리(worktree)까지 함께 정리됩니다. 커밋되지 않은 변경분도 같이 사라지니까, 살리고 싶은 작업은 미리 푸시하거나 커밋해두는 게 안전해요.

입력창으로 세션 거르기

세션이 많아지면 표만으로는 원하는 항목을 찾기 어렵습니다. 이때 입력창에 필터 문법을 치면 표가 즉시 좁혀져요. a:code-reviewer라고 치면 code-reviewer 에이전트가 메인인 세션만, s:working이라고 치면 지금 일하는 중인 세션만 보입니다. s:blocked는 답장을 기다리거나 PR 리뷰가 필요한 세션을 모두 묶어서 보여주고요. PR 번호나 URL을 그대로 붙여 넣으면 그 PR을 다루는 세션 한 개만 골라줍니다.

필터를 걸어둔 상태에서 그냥 엔터를 누르면 입력 내용이 새 세션 프롬프트로 해석돼요. 필터를 풀고 싶을 땐 Esc로 입력을 비우면 됩니다.

파일 편집은 격리됩니다

여러 세션을 동시에 굴리면 가장 걱정되는 게 같은 파일을 동시에 수정해서 충돌이 나는 상황이죠. agent view는 이걸 git 워크트리로 자동 해결합니다.

백그라운드 세션이 파일을 수정하기 직전에, 클로드가 그 세션을 .claude/worktrees/ 아래 격리된 워크트리로 옮겨요. 그래서 여러 세션이 같은 체크아웃을 읽을 수는 있어도 쓰기는 각자 자기 워크트리에서만 일어납니다. 세션이 같은 파일을 동시에 고쳐도 서로 안 부딪치는 거죠.

다만 git 저장소가 아닌 디렉토리에서는 워크트리가 만들어지지 않으니, 그런 환경에서 같은 파일을 만지는 세션을 동시에 띄우는 건 피해야 합니다. 그리고 세션을 삭제하면 워크트리도 함께 사라지니, 머지나 푸시는 삭제 전에 마쳐야 합니다.

서브 에이전트, 에이전트 팀과의 차이

병렬 작업을 도와주는 기능이 이미 여럿이라 헷갈리기 쉬워요. 셋을 한 줄로 비교해보면 이렇습니다.

서브 에이전트는 한 세션 안에서 옆방을 하나 더 여는 느낌입니다. 메인 대화의 컨텍스트를 아끼려고 검색이나 조사를 별도 컨텍스트로 위임하고, 끝나면 요약만 받아옵니다. 같은 세션 안에서 일어나는 일이라 부모/자식 관계가 명확해요.

에이전트 팀은 여러 세션이 메시지를 주고받으며 협업합니다. 팀원끼리 직접 대화하고 공유 태스크 리스트를 보면서 자율적으로 일을 나눠 가져요. 하나의 큰 작업을 여러 명이 분담하는 모델입니다.

agent view는 독립된 작업 여러 개를 한 화면에서 굴리는 도구입니다. 세션들이 서로 모르고, 서로 메시지를 보내지도 않아요. 그냥 내가 동시에 시켜놓은 별개의 일들이 한 화면에 모여 있는 거죠. “버그 조사”, “PR 리뷰”, “테스트 추적”처럼 서로 무관한 작업을 동시에 굴릴 때 잘 맞습니다.

세 기능 사이의 결정 기준은 단순합니다. 작업이 한 흐름 안의 보조 조사면 서브 에이전트, 한 큰 작업의 분담이면 에이전트 팀, 서로 무관한 여러 작업의 병렬 실행이면 agent view예요.

슈퍼바이저가 뒤에서 해주는 일

agent view를 처음 열거나 첫 세션을 백그라운드로 보내는 순간, 슈퍼바이저(supervisor) 프로세스가 자동으로 뜹니다. 이 프로세스가 모든 백그라운드 세션을 떠받치고 있어요. 터미널을 닫아도, agent view를 닫아도 슈퍼바이저는 그대로 살아 있고, 그 안에서 세션들이 일을 계속합니다.

세션이 끝난 뒤 한 시간쯤 아무도 안 들여다보면 슈퍼바이저가 그 세션의 프로세스를 정리해서 자원을 풀어줘요. 대화 기록과 상태는 디스크에 남아 있으니, 나중에 엿보거나 답장을 보내는 순간 슈퍼바이저가 떠나간 자리에서 새 프로세스를 띄워서 이어받습니다. 모든 세션이 끝나고 아무도 부착해 있지 않으면 슈퍼바이저 자신도 종료되고, 다음에 필요할 때 다시 시작됩니다.

세션 상태는 다음 위치에 저장됩니다.

  • ~/.claude/daemon.log — 슈퍼바이저 로그
  • ~/.claude/daemon/roster.json — 살아 있는 세션 목록
  • ~/.claude/jobs/<id>/state.json — 세션별 상태

머신이 잠들거나 꺼지면 백그라운드 세션도 같이 중지되는데, 이때는 claude respawn --all로 한꺼번에 되살릴 수 있어요. 자동 업데이트로 클로드 코드 바이너리가 교체되면 슈퍼바이저가 그걸 감지해서 새 버전으로 재시작하고, 그 사이에도 백그라운드 세션은 끊기지 않습니다.

한도와 주의할 점

리서치 프리뷰 단계라 몇 가지 한도가 있습니다.

우선 각 백그라운드 세션이 사용량 한도(rate limit)를 독립적으로 소모해요. 열 개를 병렬로 굴리면 한 개 굴리는 것에 비해 한도가 그만큼 빨리 차오릅니다. 세션을 띄우기 전에 정말 동시에 굴려야 하는 작업인지 한 번 더 점검하는 게 좋아요.

세션은 로컬 머신에서 돕니다. 머신이 잠들거나 종료되면 작업도 함께 멈추니, 종일 굴려야 할 일이라면 머신의 절전 설정을 먼저 살펴봐야 합니다. 클라우드에서 돌리고 싶다면 Claude Code on the web 같은 호스팅 환경이 따로 있고요.

마지막으로 세션 삭제는 워크트리까지 함께 지웁니다. 커밋이나 푸시를 먼저 하지 않으면 그 워크트리 안의 변경분이 사라지니, 결과를 받아낸 뒤에 삭제하는 습관을 들이는 게 좋아요.

조직 차원에서 agent view를 비활성화해야 한다면 disableAgentView 설정을 true로 두거나, CLAUDE_CODE_DISABLE_AGENT_VIEW 환경 변수를 켜면 됩니다. 관리되는 설정으로 강제할 수도 있고요.

마치며

agent view는 클로드 코드를 한 대화창에서 차례차례 시키는 도구에서, 여러 작업을 한 화면에서 굴리고 관제하는 도구로 바꿔놓는 변화입니다. 별개의 작업 세 개를 동시에 시켜놓고 답이 필요한 세션만 골라서 답장하고, 결과가 나온 세션만 골라서 검토하는 흐름이 자연스러워지죠.

처음 써본다면 작업 한두 개로 시작해서 엿보기와 부착, 백그라운드 전환을 손에 익히는 걸 추천해요. 익숙해지면 claude 대신 claude agents를 주 진입점으로 삼아도 좋습니다. 모든 작업을 표에서 띄우고, 필요할 때만 부착하고, 로 다시 돌아오는 패턴이요. 한도가 빨리 차는 게 걱정된다면 /loop로 반복 작업을 묶어서 효율을 올리는 것도 방법이고요.

더 자세한 내용은 Manage multiple agents with agent view 공식 문서를 참고하세요.

This work is licensed under CC BY 4.0 CC BY

개발자를 위한 뉴스레터

달레가 정리한 AI 개발 트렌드와 직접 만든 콘텐츠를 전해드립니다.

Discord