Where Am I: 프롬프트 위에 표시되는 Claude Code 세션 요약
Claude Code 프롬프트 위에 세션 목표, 지금 하는 일, 사용자를 기다리는 항목, 다음 단계를 보여 줍니다.
권한
- 파일 읽기컴퓨터의 파일을 읽고 디렉터리 목록을 볼 수 있습니다($.fs.read / list / stat / exists).
- 모델 호출 (사용량 소모)Claude에 자체 요청을 보낼 수 있으며, 이는 요금제 사용량에 포함됩니다($.model.* / $.agent.spawn).
- 도구 호출 가로채기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
- 표시 위치
- 프롬프트 위
이 모드는 무엇을 하나요?
Where Am I는 Hamza Zafar(hamzafer)가 만든 커뮤니티 모드로, 그의 claude-code-mods 모음에 속합니다. 프롬프트 위에 Claude Code 세션 요약을 유지해서, 긴 답변 뒤나 자리를 비웠다 돌아왔을 때 고개만 들면 지금 어디쯤인지 알 수 있습니다. 밴드에는 세션의 목표, 지금 일어나는 일, Claude가 사용자에게서 기다리는 것, 다음 단계가 표시됩니다. 작성자는 흐름을 쉽게 놓치는 사람을 위해 만들었고, 뒤에 있는 시스템 프롬프트는 쉬운 말을 쓰도록 요구합니다.
밴드는 최대 세 줄입니다. ◆ Goal:은 전체 목표이며, 모델은 목표가 분명히 바뀌지 않는 한 이전 목표를 유지하도록 지시받습니다. now: 줄은 Claude의 작업을 실시간으로 따라가며 reading src/index.js 같은 라벨을 보여 주고, next:는 같은 줄에 놓입니다. 노란색 waiting on you: 줄은 Claude가 사용자에게 무언가 필요할 때만 나타납니다. 각 필드는 한 문장, 최대 70자로 잘립니다.
요약은 각 턴이 끝난 뒤 작은 모델 호출로 작성됩니다. /where는 요청하면 더 긴 요약을 만드는데, 대화의 최근 12개 메시지를 바탕으로 한 최대 여섯 개의 글머리 기호입니다. 여러 밴드 모드를 함께 쓰면 Where Am I는 공유 밴드 순서 파일로 다른 모드와 함께 정렬되며, 작성자의 테스트가 이를 다룹니다.
데모
녹화에서는 작은 데모 프로젝트에서 모드를 불러온 Claude Code를 시작하고, Claude에게 README.md를 읽고 프로젝트가 무엇인지 한 문장으로 말해 달라고 요청합니다. Claude가 작업하는 동안 프롬프트 위 밴드는 아직 비어 있습니다. 턴이 끝나면 Claude의 답변과 done 줄이 나타나고, 몇 초 뒤 프롬프트 위에 요약이 표시됩니다. 데모 앱을 이해하는 것이 목표라는 Goal: 줄, README를 읽었다는 now: 줄, 그리고 next: 줄입니다. 그다음 클립은 Ctrl+C로 끝납니다.
설치
설치 블록의 어떤 방법이든 쓸 수 있으며, 모두 작성자 본인의 마켓플레이스에서 바로 설치합니다. 밴드는 첫 턴이 끝난 뒤 나타나고, /where는 세션이 시작될 때 등록됩니다.
$ install where-am-i
Claude Code 2.1.287 이상 필요
작성자의 마켓플레이스에서 설치: hamzafer/claude-code-mods
1.Claude Code 안에서 한 줄로
/plugin install where-am-i --marketplace hamzafer/claude-code-mods실행 중인 세션(v2.1.275 이상)에 붙여 넣으세요. Claude Code가 먼저 마켓플레이스 추가 여부를 묻습니다.
2.셸에서 설치
claude plugin marketplace add hamzafer/claude-code-mods claude plugin install where-am-i@claude-code-mods그런 다음 이미 열려 있는 세션에서 /reload-plugins를 실행하세요.
3.설치하지 않고 사용해 보기
git clone https://github.com/hamzafer/claude-code-mods claude --plugin-dir ./claude-code-mods/mods/where-am-i한 세션에서만 모드를 불러옵니다. 설정에는 아무것도 추가되지 않습니다.
작동 방식
요약은 호스트가 보유하는 $.state 아톰에 있으므로 핫 리로드 뒤에도 유지됩니다. 요약을 쓰는 모델 호출은 turn.complete에서 실행되고 기다리지 않으므로 턴은 바로 끝납니다. hooks/register.tsx에서 가져왔습니다.
on('turn.complete', async ($, e, next) => {
const r = await next(e)
if (!e.agentId) {
await update($, live, () => '')
void summarize($, prompt, log, e.answer).catch(() => {}) // in the background, so the turn ends at once
}
return r
})summarize는 haiku 모델로 $.model.complete를 호출합니다. 이전 요약, 사용자의 최신 메시지(앞 1500자), 이번 턴의 도구 호출 라벨, Claude 답변의 앞 2500자를 보내고, goal, now, waiting, next가 담긴 JSON을 요청합니다. parseRecap은 JSON을 감싼 코드 펜스를 허용하고, 필드를 다듬으며, 긴 대시를 바꿉니다. tool.call 훅은 now 라벨을 기록하고 다음 요약을 위해 최근 20개 라벨을 유지하는데, 관찰만 할 뿐 호출은 그대로 돌려줍니다. 서브에이전트의 턴은 건너뛰고, 다른 모드의 호출은 next.origin을 확인해 무시합니다. 밴드는 AbovePrompt 렌더 위치에 그려지며 설문이 열려 있는 동안에는 사라집니다.
사용자 지정
/config에는 옵션이 없고, 명령은 /where 하나뿐입니다. 모양이나 동작을 바꾸려면 register.tsx를 편집하세요. MODEL은 요약에 쓸 모델, MAX_LOG는 유지할 도구 호출 라벨 수, clip은 70자 제한을 정하고, summarize와 longRecap의 두 시스템 프롬프트가 말투를 정합니다. 다른 밴드 모드 사이에서의 순서는 설정 폴더의 bands.json에서 세션마다 한 번만 읽으므로, 변경을 적용하려면 Claude Code를 다시 시작하세요.
권한 및 안전
무엇이든 실행하기 전에 플러그인이 실행할 수 있는 모든 파일을 읽었습니다. hooks/hooks.json, hooks/register.tsx, hooks/bands.ts, 타입 선언, 테스트입니다. package.json, 설치 스크립트, 바이너리, 번들된 코드는 없고, 숨은 문자, eval, 동적 import도 찾지 못했습니다. MIT 라이선스는 저장소 루트에 있습니다.
- 모델 호출.
$.model.complete는 메인 에이전트의 모든 턴 뒤와/where에서 실행됩니다. 사용자의 프롬프트, 도구 라벨, Claude의 답변(/where는 최근 12개 메시지)을 Claude Code를 통해 haiku 모델로 보내므로 요금제나 API 사용량이 소모됩니다. 모드 자체에는 네트워크 코드가 없고 다른 호스트로는 아무것도 전송되지 않습니다. - 환경 변수와 파일.
CLAUDE_CONFIG_DIR와HOME을 읽고, 있으면 파일 하나,<config dir>/claude-code-mods/bands.json을 읽어 밴드 순서를 얻습니다. 파일은 쓰지 않으며 요약은$.state에 있습니다. - 훅.
prompt.submit과tool.call은 관찰만 하고 모든 것을 그대로 전달합니다. validate는 두 훅 모두.catch가 없다고 알려 줍니다. 모드는 아무것도 막거나 바꾸지 않습니다./where를 추가하고 프롬프트 위 UI를 바꿉니다. - 없는 것. 프로세스, 셸 명령, 데몬, 텔레메트리, 비밀 값, 설정 변경은 없고, 두 개의 요약 프롬프트 외에 모델을 겨냥한 지시도 없습니다.
claude plugin validate는 오류도 경고도 보고하지 않았고, 작성자의 테스트 7개는 Claude Code 2.1.303에서 claude plugin test로 모두 통과했습니다.
- 파일 읽기
- 컴퓨터의 파일을 읽고 디렉터리 목록을 볼 수 있습니다($.fs.read / list / stat / exists).
- 모델 호출 (사용량 소모)
- Claude에 자체 요청을 보낼 수 있으며, 이는 요금제 사용량에 포함됩니다($.model.* / $.agent.spawn).
- 도구 호출 가로채기
- 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, 테스트, 녹화). 밴드가 보이지 않는다면:
- 먼저 한 턴을 끝내세요. 요약은 그 뒤에 작성되며, 모델 호출이 실패하거나 응답을 해석할 수 없으면 밴드는 빈 채로 남습니다.
- 입력창 위에 설문이 열려 있으면 숨겨지고, 닫으면 돌아옵니다.
/where가 알 수 없는 명령이라면 Claude Code에 같은 이름의 명령이 이미 있는 것이며, 모드는 그 명령 없이 시작됩니다./where가 “Could not build a recap right now”라고 하면 모델 호출에 응답이 없었던 것이니 다시 시도하세요.
밴드는 next-steps의 상태를 읽으므로, 그 모드가 목록을 보여 주는 동안에는 자신의 next 부분을 숨깁니다.
자주 묻는 질문
- Where Am I는 토큰을 쓰나요?
- 네, 조금 씁니다. 메인 에이전트의 턴이 끝날 때마다 Claude Code를 통해 haiku 모델을 백그라운드에서 한 번 호출해 요약을 쓰며, 출력은 최대 300토큰입니다. /where를 실행하면 한 번 더 호출하고 출력은 최대 500토큰입니다. 모드 자체는 네트워크 요청을 보내지 않습니다.
- 요약에는 무엇이 들어 있나요?
- 짧은 네 개의 필드이며, 각각 한 문장, 약 70자로 잘립니다. goal은 세션의 목표, now는 방금 끝난 일, waiting은 Claude가 사용자에게 바라는 것(비어 있으면 숨김), next는 다음 단계입니다.
- Claude가 작업하는 동안 “now” 줄은 어떻게 갱신되나요?
- Claude가 도구를 호출할 때마다 훅이 “reading src/login.js”나 “running npm test” 같은 쉬운 라벨로 바꿉니다. 다른 모드가 백그라운드에서 하는 호출은 무시되고, 턴이 끝나면 모델이 쓴 요약이 다시 표시됩니다.
- 첫 프롬프트 뒤에 요약이 보이지 않는 이유는 무엇인가요?
- 요약은 턴이 끝난 뒤 백그라운드 모델 호출로 작성됩니다. 첫 답변이 끝나고 몇 초 뒤에 나타나며, 그때까지 밴드는 숨겨져 있습니다.
- next-steps 모드도 함께 쓰면 어떻게 되나요?
- next-steps가 다음 프롬프트 목록을 보여 주는 동안에는 Where Am I가 자신의 “next” 부분을 빼서 서로 겹치지 않게 합니다.
# 관련 모드
추천Next Steps
각 턴이 끝나면 Claude Code 입력창 위에 다음에 보낼 만한 프롬프트 2~3개를 보여 줍니다. 1, 2, 3으로 초안을 넣습니다.
- 프롬프트 위
- 모델 호출 (사용량 소모)
- 프롬프트 읽기
- UI 변경
v2.1.291에서 테스트됨
추천Context Bar
Claude Code 컨텍스트 창을 프롬프트 위 누적 막대 하나로 보여 줍니다. 카테고리마다 색이 다르고 토큰 수도 표시됩니다.
- 프롬프트 위
- UI 변경
- 명령어/도구 추가
- 데이터 저장
v2.1.291에서 테스트됨
추천Mission Control
Claude Code의 메인 에이전트, 서브에이전트, 모든 도구 호출을 실시간으로 보여 주는 패널과, 이들이 건드린 파일의 코드 맵입니다.
- 패널
- 프롬프트 위
- 파일 읽기
- 파일 쓰기
- 명령어 실행
- 모델 호출 (사용량 소모)
- 도구 호출 가로채기
- UI 변경
- 명령어/도구 추가
v2.1.296에서 테스트됨
더 보기: 타이머, 할 일, 스탠드업, 슬래시 명령.