Use Haiku: Claude Code Haiku 프롬프트를 한 번만 실행
Claude Code 프롬프트 앞에 _ 를 붙이면 그 한 턴만 Haiku로 실행되고, 입력 중과 실행 중, 답변 아래에 표시됩니다.
권한
- 프롬프트 읽기입력한 내용과 대화 기록을 볼 수 있습니다(prompt.* / session.append / session.messages).
- UI 변경Claude Code 화면에 밴드, 패널, 상태 텍스트, 토스트를 그립니다(ui.render / $.ui.*).
- 테스트 버전
- v2.1.303
- 마지막 테스트
- 필요 버전
- Claude Code ≥ 2.1.287
- 표시 위치
- 스피너, 대화 기록, 상태 표시줄
이 모드는 무엇을 하나요?
Use Haiku는 Claude Code Haiku 프롬프트를 한 번만 실행하게 해 주는 커뮤니티 모드입니다. 작성자는 Miguel Ángel Durán(midudev)이며 better-claude 모음의 일부입니다. 세션 모델을 바꾸지 않고도 특정 프롬프트만 Haiku로 보낼 수 있습니다. 프롬프트를 _ 로 시작하면 그 한 턴이 claude-haiku-5-5로 실행됩니다. Claude는 _ 를 뺀 텍스트를 받고, 그 턴의 모든 모델 요청이 그 턴이 시작한 서브에이전트의 요청까지 포함해 Haiku로 갑니다. 다음 프롬프트는 세션 모델로 돌아갑니다.
모드는 세 곳에서 전환을 보여 줍니다. 입력하는 동안 _ 가 입력 상자에서 굵게 표시되고 그 아래 줄에 ⚡ this prompt runs on Haiku 가 나옵니다. 실행 중에는 스피너 단어 뒤에 on Haiku 가 붙습니다. 턴이 끝나면 답변 아래 줄에 API가 보고한 모델 이름이 나오고(예: ⚡ Answered by claude-haiku-5-5), 다른 모델이 답했다면 경고가 나옵니다. 프롬프트에는 사용자에게 보이지 않는 메모도 붙어 모델에게 자신이 Haiku라고 알려 주므로, "어떤 모델이야?"라고 물어도 올바르게 답합니다. 작은 모델로 충분한 빠른 질문이나 간단한 조회에 적합합니다.
사용자 본인의 프롬프트만 해당합니다. 직접 입력, 휴대폰에서 전송, claude -p "_…", 예약된 /loop, 그리고 After처럼 플러그인이 대신 보내는 프롬프트가 포함됩니다. 작성자의 README는 모드를 지원하는 Claude Code 버전(2.1.289 이상)을 요구합니다.
데모
녹화에서는 작은 데모 프로젝트에서 모드를 불러온 Claude Code를 시작하고 _what is the name of this project? answer in one short sentence 를 입력합니다. 입력하는 동안 상자 아래에 ⚡ this prompt runs on Haiku 가 보입니다. Enter를 누르면 스피너가 Haiku… 로 바뀝니다. 턴이 끝나면 Claude가 프로젝트 이름이 demo-app이라고 답하고, 답변 아래에 ⚡ Answered by claude-haiku-5-5 줄이 나옵니다. 데모 세션은 이미 Haiku를 쓰고 있어서 이 영상에서 모델이 바뀌지는 않습니다. 보이는 것은 각 위치에서 모드가 주는 피드백입니다.
설치
설치 블록의 방법 중 아무거나 사용하세요. 모두 작성자의 마켓플레이스 better-claude에서 바로 설치합니다. 모드는 다음 세션 시작부터 활성화됩니다. 설정할 것은 없고, 프롬프트 앞에 _ 만 붙이면 됩니다.
$ install use-haiku
Claude Code 2.1.287 이상 필요
작성자의 마켓플레이스에서 설치: midudev/better-claude
1.Claude Code 안에서 한 줄로
/plugin install use-haiku --marketplace midudev/better-claude실행 중인 세션(v2.1.275 이상)에 붙여 넣으세요. Claude Code가 먼저 마켓플레이스 추가 여부를 묻습니다.
2.셸에서 설치
claude plugin marketplace add midudev/better-claude claude plugin install use-haiku@better-claude그런 다음 이미 열려 있는 세션에서 /reload-plugins를 실행하세요.
3.설치하지 않고 사용해 보기
git clone https://github.com/midudev/better-claude claude --plugin-dir ./better-claude/plugins/use-haiku한 세션에서만 모드를 불러옵니다. 설정에는 아무것도 추가되지 않습니다.
작동 방식
모드는 hooks 모듈 하나, hooks/register.tsx로 이루어져 있습니다. prompt.submit에서 유휴 상태이고 _ 하나로 시작하는 프롬프트는 표시가 제거되고, 모델용 메모가 붙으며, 다음 턴을 차지합니다. 그런 다음 turn.step이 그 턴의 각 요청의 모델을 바꿔 씁니다.
// Every request of a Haiku turn goes to Haiku: the main loop's and those of the subagents it started.
on('turn.step', async function* ($, e, next) {
const isHaiku = e.agentId === undefined
? e.turnId === (await read($, haikuTurn))
: (await read($, haikuAgents)).includes(e.agentId)
return yield* next(isHaiku ? { ...e, model: HAIKU } : e)
})Haiku 턴의 id와 그 서브에이전트의 id는 $.state에 저장되므로 턴 도중에 다시 불러와도 유지됩니다. agent.spawn은 Haiku 턴의 서브에이전트를 Haiku로 시작하고 id를 기억합니다. turn.complete는 Haiku 턴을 끝내고 답변 아래 줄을 추가하며, 대화형 세션에서만 그렇게 하므로 claude -p 출력은 깔끔하게 유지됩니다. 두 개의 ui.render 훅이 스피너 접미사와 프롬프트 아래 힌트를 그립니다.
사용자 지정
옵션은 없습니다. 모델 이름(HAIKU), 표시(MARK), 강조 색은 register.tsx 맨 위의 상수입니다. 바꾸려면 자신의 복사본을 편집하고 claude --plugin-dir 로 불러오세요.
권한 및 안전
실행하기 전에 플러그인이 실행할 수 있는 모든 파일을 읽었습니다. hooks/hooks.json, hooks/register.tsx, 타입 선언, 매니페스트, 테스트, 그리고 저장소의 package.json, marketplace.json, LICENSE입니다. 설치 스크립트, 의존성, 번들 코드, 바이너리는 없었고 숨겨진 유니코드 문자도 발견하지 못했습니다.
게이팅 훅: prompt.submit과 agent.spawn은 제출되는 내용과 서브에이전트의 모델을 다시 씁니다. README의 설명과 같습니다. _ 를 제거하고, 프롬프트 컨텍스트에 메모를 추가하고, Haiku 턴의 모델을 지정합니다. 메모는 “The person sent this prompt to Haiku: you are claude-haiku-5-5 while you answer it” 입니다. validate는 이 두 훅에 .catch가 없다고 표시합니다. UI 변경은 프롬프트 아래 힌트, 스피너 라벨, 굵은 _, 답변 아래 줄입니다. 턴 도중에 _ 프롬프트를 보내면 토스트가 나타납니다.
모드는 $.state와 $.ui만 사용합니다. 네트워크, 프로세스 실행, 파일 쓰기, 환경 변수 읽기, 데몬이 없고 텔레메트리도 없습니다. claude plugin validate는 오류와 경고를 보고하지 않았고, 작성자의 테스트 10개는 Claude Code 2.1.303에서 통과했습니다. 라이선스는 MIT(LICENSE 파일 있음)입니다.
- 프롬프트 읽기
- 입력한 내용과 대화 기록을 볼 수 있습니다(prompt.* / session.append / session.messages).
- UI 변경
- Claude Code 화면에 밴드, 패널, 상태 텍스트, 토스트를 그립니다(ui.render / $.ui.*).
호환성 및 문제 해결
macOS의 Claude Code 2.1.303에서 확인했습니다(validate, 테스트, 녹화). 프롬프트가 Haiku로 실행되지 않는다면:
- 첫 글자가
_하나이고 그 뒤에 텍스트가 있나요? - Claude가 유휴 상태인가요? 턴 도중에 보낸 프롬프트는 힌트가 알려 주듯 현재 모델을 유지합니다.
- 프롬프트가 채널, 다른 세션, 백그라운드 작업이 아니라 본인에게서 온 것인가요?
- 플러그인을 불러왔고(
/plugin에 표시됩니다) 설치 후 새 세션을 시작했나요? - 답변 아래 줄이 다른 모델이 답했다고 경고하면 API가 요청을 따르지 않은 것입니다. 경고에 모델 이름이 표시됩니다.
자주 묻는 질문
- 이 모드가 세션 모델을 바꾸나요?
- 아니요. _ 로 시작하는 턴만 claude-haiku-5-5로 보내집니다. 다음 프롬프트는 세션이 쓰던 모델로 돌아가며, 어떤 설정도 바뀌지 않습니다.
- Claude가 작업 중일 때 _ 프롬프트를 입력하면 어떻게 되나요?
- 텍스트는 실행 중인 턴에 합쳐지거나 그 뒤에 대기하므로 현재 모델을 그대로 씁니다. 프롬프트 아래 줄이 보내기 전에 경고하고, 보낸 뒤에는 토스트로 알려 줍니다.
- 서브에이전트도 Haiku로 실행되나요?
- 네. Haiku 턴이 시작한 서브에이전트는 Haiku로 생성되고, 그 턴이 끝난 뒤에도 Haiku를 유지합니다. 포크와 워크플로 에이전트는 요청마다 처리되며, 팀원은 자기 모델을 유지합니다.
- Asked for Haiku, but … answered 경고는 왜 나오나요?
- 대화형 Haiku 턴이 끝나면 모드는 API가 돌려준 사용량에서 모델 이름을 읽습니다. 이름에 haiku가 없으면 평소의 Answered by 줄 대신 그 이름이 담긴 경고를 보여 줍니다.
- __init__.py 같은 파일 이름은 여전히 쓸 수 있나요?
- 네. 맨 앞의 밑줄 두 개는 표시가 아니고, 밑줄 하나만 있는 경우도 표시가 아닙니다. __init__.py fails to import 같은 프롬프트는 그대로 전송됩니다.
# 관련 모드
추천After
Claude Code용 프롬프트 대기열: /after는 현재 턴이 끝난 뒤에 다음 작업을 실행하며, 진행 중인 작업에 끼어들지 않습니다.
- 프롬프트 위
- 패널
- 토스트
- 상태 표시줄
- 모델 호출 (사용량 소모)
- 프롬프트 읽기
- UI 변경
- 명령어/도구 추가
- 데이터 저장
v2.1.303에서 테스트됨
추천Context Bar
Claude Code 컨텍스트 창을 프롬프트 위 누적 막대 하나로 보여 줍니다. 카테고리마다 색이 다르고 토큰 수도 표시됩니다.
- 프롬프트 위
- UI 변경
- 명령어/도구 추가
- 데이터 저장
v2.1.291에서 테스트됨
더 보기: 타이머, 할 일, 스탠드업, 컨텍스트, 사용량, 비용.