본문으로 건너뛰기
claudemods

Flightdeck: 터미널에서 쓰는 Claude Code 에이전트 대시보드

Claude Code 세션의 실시간 패널: 모델과 컨텍스트, 모든 권한 검사, 서브에이전트 카드, 직전 턴의 영수증.

권한

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

Claude Code 안에서 설치:

/plugin install flightdeck --marketplace scasella/claude-flightdeck
모든 설치 방법 ↓

이 모드는 무엇을 하나요?

Flightdeck는 Stephen Casella(scasella)가 만든 커뮤니티 모드로, Claude Code 에이전트 대시보드 역할을 합니다. 세션과 그 에이전트가 지금 무엇을 하는지를 한 패널에 보여 줍니다. 모델 이름과 추론 강도, 컨텍스트 게이지, 세션 비용, 요금제가 보고하는 사용 한도 구간, 모든 권한 검사, 서브에이전트 카드, 직전 턴의 영수증을 모아 줍니다.

패널은 다음과 같습니다. main(모델, 강도, 모드, 요청 수, 컨텍스트, 비용, 직전 요청의 속도), architect(어드바이저형 에이전트나 서버 도구에 대한 자문, 정규식으로 판별), gate(권한 검사마다 한 칸: 허용, 분류기 또는 사용자가 결정, 대기 중, 거부), agents(에이전트가 셋을 넘으면 카드가 스윔레인으로 바뀜), loops(어떤 카드에도 맞지 않는 모델 루프), receipt(턴의 소요 시간, 에이전트 수, 편집 수, 오류 수, 비용), 짧은 log입니다. 보여 줄 것이 없는 패널은 자리를 차지하지 않습니다. 작성자의 README는 모든 수치가 실제 세션 이벤트에서 온다고 설명하며, architect의 "시점"은 추정이고 그렇게 표시됩니다.

데모

녹화에서는 작은 데모 프로젝트에서 모드를 불러온 Claude Code를 시작합니다. 터미널이 144열보다 좁아서 /flightdeck로 패널을 엽니다. 프롬프트 위에 테두리가 있는 요약이 나타나고 idle과 $0.00을 보여 줍니다. 이어서 Claude에게 README.md를 읽고 프로젝트를 한 문장으로 설명하라고 요청합니다. 턴이 실행되는 동안 패널은 working으로 바뀌고 gate 행에 1 allowed · 0 classifier · 0 denied가 나타납니다. 턴이 끝나면 컨텍스트 게이지(4%), 비용, 그리고 last turn 47s · 0 agents · 0 edits · 0 errors라는 영수증 줄이 표시됩니다.

설치

설치 블록의 어떤 방법을 써도 작성자 본인의 마켓플레이스에서 바로 설치됩니다. /reload-plugins를 실행한 다음 /flightdeck를 실행하세요. 작성자는 설치 프로그램이 설정 옵션이 지정되지 않았다고 알릴 수 있지만 기본값으로 동작한다고 안내합니다.

$ install flightdeck

Claude Code 2.1.287 이상 필요

작성자의 마켓플레이스에서 설치: scasella/claude-flightdeck

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

    /plugin install flightdeck --marketplace scasella/claude-flightdeck

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

  2. 2.셸에서 설치

    claude plugin marketplace add scasella/claude-flightdeck
    claude plugin install flightdeck@claude-flightdeck

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

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

    git clone https://github.com/scasella/claude-flightdeck
    claude --plugin-dir ./claude-flightdeck

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

작동 방식

모든 내용은 $.state 아톰에 보관되고, 각 훅은 이를 갱신한 뒤 이벤트를 그대로 넘깁니다. 권한 검사는 다음과 같이 기록됩니다(hooks/register.tsx에서).

on('tool.check', async ($, e, next) => {
  const verdict = await next(e)
  if (e.tool_use_id) {
    const check: Check = {
      id: e.tool_use_id,
      tool: e.tool,
      bucket: bucketOf(e.tool),
      verdict: verdict.decision === 'allow' ? 'rule' : verdict.decision,
      detail: shorten(describeInput(e.tool, e.input), 90),
      // ...
    }
    await update($, gate, g => recordCheck(normalizeGate(g), check))
  }
  return verdict
})

판정은 받은 그대로 반환됩니다. 패널 자체는 Pane 렌더 위치에 그려집니다. 레이아웃은 놓인 위치에 따라 달라집니다. 프롬프트 위에 인라인이면 최대 8행 요약, 대화 기록 옆에 도킹하면 한 열, 110열부터는 두 열입니다. 작은 클라이언트 모듈 rail.tsx와 elapsed.tsx는 화면 자체의 프레임 시계로 움직이는 연결선과 실행 중인 시계를 그리므로 패널 전체를 다시 그리지 않습니다. 리듀서와 포매터는 hooks/core.ts의 순수 함수입니다.

사용자 지정

옵션은 /config에 있습니다. panels(보여 줄 패널과 순서), layout(auto, compact, wide, mini), maxCards(16), motion(while-active 또는 off), palette(theme 또는 pastel), architectPattern, architectLabel, gateLabel, matchDescriptions, moments, openOnStart, statusLine입니다. /flightdeck 명령은 open, close, reset, layout auto|compact|wide|mini를 받습니다. ctrl+x tab으로 패널에 포커스를 두고, 16으로 카드를 펼치고, f, s, o로 gate의 파일, 셸, 기타 행을 엽니다.

권한 및 안전

무엇이든 실행하기 전에 플러그인이 실행할 수 있는 모든 파일을 읽었습니다. plugin.json, marketplace.json, hooks/hooks.json, hooks/register.tsx, hooks/core.ts, hooks/rail.tsx, hooks/elapsed.tsx, 타입 선언, 테스트입니다. package.json, 설치 스크립트, 바이너리, 번들된 코드는 없습니다. 네트워크, 프로세스, eval, 동적 import, 숨겨진 유니코드를 검색했지만 아무것도 나오지 않았습니다.

  • 네트워크, 프로세스, 파일, 환경 변수: 모두 없음. 요청을 보내지 않고, 명령을 실행하지 않고, 파일을 읽거나 쓰지 않고, 환경 변수를 읽지 않으며, 모델도 호출하지 않습니다.
  • 관찰하는 것: 모든 도구 호출의 이름과 입력, 모든 권한 판정, 서브에이전트 시작, 토큰 사용량과 최종 답변, 그리고 로그용으로 각 프롬프트의 앞 70자입니다. 세션 상태에 짧은 요약만 보관하며 자격 증명은 정규식 필터로 가려집니다. 이 필터는 최선의 노력 수준이므로, 패널에는 명령이 보인다고 생각하세요.
  • 게이팅 훅: tool.check, tool.call, agent.spawn, agent.offer, session.append, session.compact, classic.UserPromptSubmit은 모두 그대로 통과시킵니다. next(e)를 기다린 뒤 그 결과를 반환합니다. claude plugin validate는 이 훅들에 .catch가 없다고 알립니다. 또한 조직이 Claude Code를 관리하는 환경에서는 classic과 compact 훅이 실행되지 않습니다.
  • 텔레메트리, 데몬, 그 밖의 쓰기: 모두 없음. 세션이 끝난 뒤에는 아무것도 남지 않습니다.
  • 라이선스: MIT, LICENSE 파일 있음.

claude plugin validate는 오류도 경고도 보고하지 않았습니다. 작성자의 테스트 28개가 Claude Code 2.1.303에서 모두 통과했습니다.

도구 호출 가로채기
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.303에서 확인했습니다(validate와 테스트). 작성자의 README는 2.1.287 이상을 요구합니다. 패널이 나타나지 않으면:

  • /reload-plugins를 실행한 다음 /flightdeck를 실행하세요. 144열보다 좁으면 패널이 자동으로 열리지 않습니다.
  • 대화 기록에서 flightdeck:로 시작하는 흐린 줄을 찾아보세요. 실패한 훅이나 패널이 거부된 이유가 적혀 있습니다.
  • 색이 이상하면 palette를 pastel로 설정하세요. 업데이트 후 카운터가 오래된 것처럼 보이면 /flightdeck reset을 실행하세요.
  • VS Code와 모바일에서는 연결선과 시계가 정지 상태입니다.

자주 묻는 질문

Flightdeck는 데이터를 내 컴퓨터 밖으로 보내나요?
아니요. 코드에서 네트워크 호출, 프로세스 실행, 파일 읽기와 쓰기를 찾지 못했습니다. 시계, 사용량, 상태, 패널을 위해 Claude Code 자체 API만 호출합니다. 상태는 세션 상태에 있으며 세션이 끝나면 사라집니다.
도구 호출을 막거나 바꿀 수 있나요?
아니요. tool.check, tool.call, agent.spawn 등에 훅을 걸지만, 모든 훅이 다음 핸들러를 기다린 뒤 그 결과를 그대로 반환합니다. 무엇도 거부하거나 고쳐 쓰거나 지연시키지 않습니다.
비밀 값이 포함된 명령도 저장하나요?
권한 검사마다 한 줄 요약(도구 이름과 경로, 명령 또는 패턴, 최대 90자)을 세션 상태에 보관합니다. bearer 토큰, API 키, 비밀번호 같은 흔한 자격 증명 형태는 먼저 가려집니다. 요약은 패널에만 표시되고 세션 간에 저장되지 않습니다.
Claude Code를 시작했는데 패널이 열리지 않습니다. 왜 그런가요?
openOnStart는 너비가 144열 이상인 터미널에서만 패널을 자동으로 엽니다. 더 좁다면 /flightdeck를 실행하세요. 프롬프트 위에 인라인으로 놓이면 8행 요약을 보여 줍니다.
Agent Radar와는 어떻게 다른가요?
Agent Radar는 실행 중인 서브에이전트마다 프롬프트 위에 한 줄을 그립니다. Flightdeck는 모델, 컨텍스트 게이지, 비용, 권한 검사 띠, 스윔레인으로 바뀌는 서브에이전트 카드, 직전 턴의 영수증을 한 패널에 담은 더 넓은 대시보드입니다.
Claude Code에서 실행 중인 Agent Radar추천

Agent Radar

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

  • 프롬프트 위
  • 패널
  • 토스트
  • 도구 호출 가로채기
  • 프롬프트 읽기
  • UI 변경
  • 명령어/도구 추가

v2.1.291에서 테스트됨

Claude Code에서 실행 중인 Context Bar추천

Context Bar

Claude Code 컨텍스트 창을 프롬프트 위 누적 막대 하나로 보여 줍니다. 카테고리마다 색이 다르고 토큰 수도 표시됩니다.

  • 프롬프트 위
  • UI 변경
  • 명령어/도구 추가
  • 데이터 저장

v2.1.291에서 테스트됨

Claude Code에서 실행 중인 컨텍스트 미터추천

컨텍스트 미터

컨텍스트 창 사용률, 5시간·7일 요금제 사용량, 세션 비용을 상태 표시줄에 보여 주고 한도에 가까워지면 경고합니다.

  • 상태 표시줄
  • 토스트
  • UI 변경

v2.1.310에서 테스트됨

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