본문으로 건너뛰기
claudemods

Agent Radar: 프롬프트 위에서 보는 Claude Code 서브에이전트 모니터

실행 중인 서브에이전트마다 프롬프트 위에 한 줄씩: 경과 시간, 도구 수, 현재 작업. /radar 패널도 제공합니다.

권한

  • 도구 호출 가로채기Claude가 하는 모든 도구 호출을 볼 수 있고(tool.call / tool.check), 이를 차단하거나 변경할 수 있습니다.
  • 프롬프트 읽기입력한 내용과 대화 기록을 볼 수 있습니다(prompt.* / session.append / session.messages).
  • UI 변경Claude Code 화면에 밴드, 패널, 상태 텍스트, 토스트를 그립니다(ui.render / $.ui.*).
  • 명령어/도구 추가사용자나 Claude가 호출할 수 있는 새 슬래시 명령어나 도구를 등록합니다($.command.register / $.tool.register).
테스트 버전
v2.1.291
마지막 테스트
필요 버전
Claude Code ≥ 2.1.287
표시 위치
프롬프트 위, 패널, 토스트

Claude Code 안에서 설치:

/plugin install agent-radar --marketplace hamzafer/claude-code-mods
모든 설치 방법 ↓

이 모드는 무엇을 하나요?

Agent Radar는 Hamza Zafar(hamzafer)가 만든 커뮤니티 모드로, 그의 claude-code-mods 컬렉션에 들어 있습니다. Claude Code 서브에이전트 모니터입니다. Claude가 서브에이전트에게 작업을 맡기면 프롬프트 위의 띠에 그 서브에이전트를 위한 실시간 한 줄이 생기므로, 아무것도 열지 않고도 각 에이전트가 무엇을 하는지 볼 수 있습니다.

한 줄은 ● Read README and all src/ files 4s · 2 tools · searching src/**/*처럼 보입니다. 에이전트의 설명, 경과 시간, 지금까지의 도구 호출 수, 그리고 가장 최근 호출을 알기 쉽게 풀어 쓴 라벨이 담깁니다. 에이전트가 끝나면 점이 녹색 체크로 바뀌어 30초 동안 남고, ✓ sweep runner done (9s · 4 tools) 같은 토스트가 나타납니다. 실패하거나 중단된 에이전트에는 빨간 X와 이유가 표시됩니다.

/radar는 "Agent Radar"라는 제목의 패널을 엽니다. 에이전트를 최대 아홉 개까지 단축키와 함께 나열하고, 실행 중인 수와 끝난 수를 보여 주며, 하나를 열면 마지막 메시지 여섯 개를 볼 수 있습니다. 패널에는 "Clear finished" 버튼이 있습니다. 모드가 로드되기 전에 시작된 에이전트는 /radar를 실행할 때 엔진 자체의 에이전트 목록에서 가져옵니다. 모드는 토큰 수나 비용을 표시하지 않습니다.

데모

녹화에서는 작은 데모 프로젝트에서 Claude Code 2.1.291과 Haiku를 사용합니다. Claude에게 scan src라는 이름의 Explore 서브에이전트로 README.md와 src/의 각 파일을 읽게 합니다. Claude가 이를 백그라운드 에이전트로 시작하면 프롬프트 위에 노란색 줄이 바로 나타납니다: ● scan src 4s · 2 tools · searching src/**/*. 시간과 도구 수는 매초 올라가고, 서브에이전트가 한 파일에서 다음 파일로 넘어가면 라벨이 reading src/login.js로 바뀝니다.

설치

위의 설치 블록은 작성자의 마켓플레이스를 추가하고 거기서 플러그인을 설치합니다. 띠는 다음에 서브에이전트가 시작될 때 나타납니다. 이미 열려 있는 세션에 설치했다면 /reload-plugins를 실행하세요.

$ install agent-radar

Claude Code 2.1.287 이상 필요

작성자의 마켓플레이스에서 설치: hamzafer/claude-code-mods

  1. 1.Claude Code 안에서 한 줄로

    /plugin install agent-radar --marketplace hamzafer/claude-code-mods

    실행 중인 세션(v2.1.275 이상)에 붙여 넣으세요. Claude Code가 먼저 마켓플레이스 추가 여부를 묻습니다.

  2. 2.셸에서 설치

    claude plugin marketplace add hamzafer/claude-code-mods
    claude plugin install agent-radar@claude-code-mods

    그런 다음 이미 열려 있는 세션에서 /reload-plugins를 실행하세요.

  3. 3.설치하지 않고 사용해 보기

    git clone https://github.com/hamzafer/claude-code-mods
    claude --plugin-dir ./claude-code-mods/mods/agent-radar

    한 세션에서만 모드를 불러옵니다. 설정에는 아무것도 추가되지 않습니다.

작동 방식

모드는 레이더 상태를 호스트가 보관하는 $.state 아톰 세 개(agents, selected, now)에 두므로 핫 리로드 후에도 유지됩니다. 훅 네 개가 이 상태를 채웁니다. agent.spawn은 항목을 추가하고, tool.call은 agentId가 있는 도구 호출을 세며, turn.complete는 에이전트를 완료 또는 실패로 표시하고 토스트를 띄웁니다. session.start에서 시작되는 1초 시계는 줄이 하나라도 표시되는 동안 경과 시간을 다시 그립니다. 도구 호출 훅은 hooks/register.tsx에서 가져온 것입니다.

on('tool.call', async ($, e, next) => {
  if (e.agentId) {
    const id = e.agentId
    const line = describe(e as unknown as Record<string, unknown>)
    await update($, agents, list => list.map(a => (a.id === id ? { ...a, tools: a.tools + 1, last: line } : a)))
  }
  return next(e)
})

호출을 실행시키기 전에 카운터를 갱신하고, 그다음 next(e)의 결과를 그대로 반환합니다. agentId가 없는 메인 에이전트의 호출은 무시합니다. describe는 호출을 짧은 라벨로 바꿉니다. reading과 editing에는 경로의 마지막 두 구간이, searching에는 패턴의 첫 30자가, running에는 Bash 설명 또는 명령의 첫 50자가 붙고, Playwright 도구는 browser: click으로 표시됩니다. 띠는 AbovePrompt 렌더 위치에서, 다른 모드와 Claude Code가 그곳에 놓은 내용 뒤에 그려지며, 설문이 열려 있는 동안은 자리를 비켜 줍니다.

사용자 지정

/config에는 옵션이 없습니다. 모양을 바꾸려면 register.tsx 맨 위의 상수를 수정하세요. SHOW_DONE_MS(끝난 줄이 남는 시간, 30초)와 BAND_ROWS(띠에 표시하는 줄 수, 4)입니다. 에이전트 목록은 agent.spawn 훅에서 30개로 제한되며, 색과 기호는 icon과 color 함수에서 정합니다.

권한 및 안전

실행하기 전에 플러그인이 로드하는 모든 파일을 읽었습니다: .claude-plugin/plugin.json, hooks/hooks.json, hooks/register.tsx, types/index.d.ts, 테스트 파일입니다. package.json, 설치 스크립트, 바이너리, 번들된 코드는 없으며, 숨겨진 문자나 제로 폭 문자도 발견하지 못했습니다. 저장소에는 MIT LICENSE가 있습니다.

UI를 변경함은 띠, 패널, 토스트를 포함합니다. 명령을 추가함은 /radar를 포함합니다. 모드는 네트워크, 셸 명령, 파일 쓰기, 환경 변수를 사용하지 않으며, 메모리에 보관되는 Claude Code 호스트 상태 밖에는 아무것도 저장하지 않습니다. 백그라운드 서비스도 시작하지 않습니다. 1초 시계는 세션에 속하며 에이전트 줄이 표시되는 동안에만 돕니다. 프롬프트나 도구 결과에 아무것도 추가하지 않고, 모델을 호출하지도 않습니다.

눈여겨볼 점은 다음과 같습니다. 모드는 매처 없이 모든 tool.call과 agent.spawn에 훅을 걸기 때문에, Bash 명령이나 파일 경로 같은 서브에이전트의 도구 이름과 입력을 보고 가장 최근 것의 짧은 라벨을 메모리에 보관합니다. 이를 저장하거나 전송하지는 않습니다. 패널에서 에이전트를 열면 $.session.messages를 통해 최근 메시지를 읽어 로컬에 표시하며, 각각 400자로 잘립니다. 마지막으로, claude plugin validate는 오류와 경고를 보고하지 않았지만 agent.spawn과 tool.call 훅에 .catch가 없다고 알렸습니다. 두 훅 모두 next(e)로 이벤트를 넘기므로, 실질적인 위험은 차단이 아니라 상태 업데이트에서 오류가 던져지는 것입니다. 작성자의 테스트 2개는 Claude Code 2.1.291에서 통과했습니다.

도구 호출 가로채기
Claude가 하는 모든 도구 호출을 볼 수 있고(tool.call / tool.check), 이를 차단하거나 변경할 수 있습니다.
프롬프트 읽기
입력한 내용과 대화 기록을 볼 수 있습니다(prompt.* / session.append / session.messages).
UI 변경
Claude Code 화면에 밴드, 패널, 상태 텍스트, 토스트를 그립니다(ui.render / $.ui.*).
명령어/도구 추가
사용자나 Claude가 호출할 수 있는 새 슬래시 명령어나 도구를 등록합니다($.command.register / $.tool.register).

호환성 및 문제 해결

macOS의 Claude Code 2.1.291에서 확인했습니다(validate와 테스트). 띠가 보이지 않으면 다음을 확인하세요.

  • 서브에이전트가 현재 세션에서 시작되어야 합니다. 띠는 시작되는 것을 본 에이전트만 나열합니다. 더 일찍 시작된 에이전트를 가져오려면 /radar를 실행하세요.
  • 프롬프트 위에 설문이 열려 있습니다. 설문을 닫으면 띠가 돌아옵니다.
  • 다른 플러그인이 이미 /radar를 쓰고 있습니다. Claude Code가 그 이름을 거부하고, 모드는 명령 없이 계속 동작합니다.
  • 열려 있는 세션에 설치했습니다: /reload-plugins를 실행하세요.

Claude Code의 "Agent view" 푸터는 이 모드와 별개이며, 프롬프트 아래에 자체 에이전트 목록을 보여 줍니다.

자주 묻는 질문

Agent Radar는 네트워크 요청을 보내거나 모델을 호출하나요?
아니요. 이 hooks 모듈은 네트워크, 셸, 파일, 환경 변수 API를 쓰지 않습니다. Claude Code 자체 이벤트를 듣고 그 이벤트가 알려 주는 내용을 그릴 뿐입니다. 읽는 텍스트는 서브에이전트의 메시지뿐이며, /radar 패널에서 에이전트를 열었을 때만 읽습니다.
프롬프트 위의 줄에는 무엇이 표시되나요?
상태 점(실행 중이면 노란색, 완료되면 녹색 체크, 오류나 중단이면 빨간 X), 에이전트의 설명, 경과 시간과 도구 수가 표시됩니다. 실행 중인 에이전트에는 'reading demo-app/README.md'나 'searching src/**/*'처럼 가장 최근 도구 호출을 나타내는 짧은 라벨도 붙습니다. 최대 네 줄까지 보이고, 그 이상은 '+N more · /radar'로 표시됩니다.
끝난 에이전트는 띠에 얼마나 남아 있나요?
30초입니다. 그 뒤에는 줄이 사라지지만, 에이전트는 /radar 패널에 남습니다. 패널은 최근 에이전트 30개를 보관하며, 'Clear finished'를 누를 때까지 유지됩니다.
도구 호출을 느리게 하거나 막을 수 있나요?
막지 않습니다. 서브에이전트의 모든 도구 호출에 훅을 걸어 카운터를 하나 올린 다음, 호출은 그대로 통과시킵니다. 이 훅에는 .catch가 없어서 상태 업데이트가 실패하면 해당 호출에서 오류로 나타납니다. claude plugin validate는 이를 경고가 아닌 참고 사항으로 나열합니다.
/radar가 다른 명령과 충돌하면 어떻게 되나요?
Claude Code는 이미 있는 이름을 거부합니다. 모드는 그 거부를 무시하고 그대로 시작하므로 띠는 계속 동작하지만, 이 경우에는 /radar 패널 명령이 없습니다.
Claude Code에서 실행 중인 도구 호출 카운터추천

도구 호출 카운터

Claude의 도구 호출을 턴별·세션별로 세어 스피너 옆에 표시하고, 상세 내역을 보는 /tally 명령을 추가합니다.

  • 스피너
  • 대화 기록
  • 상태 표시줄
  • 도구 호출 가로채기
  • UI 변경
  • 명령어/도구 추가

v2.1.310에서 테스트됨

Claude Code에서 실행 중인 완료 토스트추천

완료 토스트

긴 Claude 턴이 끝나면 "Done in 2m 14s" 토스트와 짧은 알림음을 내고, 데스크톱 알림도 선택적으로 보냅니다.

  • 토스트
  • 명령어 실행
  • UI 변경
  • 소리 재생

v2.1.310에서 테스트됨

더 보기: 패널 및 대시보드, 타이머, 할 일, 스탠드업.