Claude Code에 프롬프트 입력란 위에 '템플릿 버튼'을 배치하는 mod 제작 — 숫자 키 하나로 정형 프롬프트 삽입
요약
Claude Code의 모드(mod)를 활용하여 프롬프트 입력란 위에 템플릿 버튼을 배치하는 기능을 소개합니다. 이 mod는 자주 사용하는 정형화된 프롬프트를 Markdown 파일로 정의하고, 숫자 키를 이용해 쉽게 삽입할 수 있게 합니다. 핵심은 템플릿이 '삽입'만 하고 전송되지 않아, 사용자가 내용을 확인하거나 수정 후 최종적으로 보낼 수 있다는 점입니다.
핵심 포인트
- 자주 쓰는 정형 프롬프트를 버튼으로 만들어 효율성을 높였습니다.
- Markdown 파일로 템플릿을 정의하고 프로젝트/전역 폴더에 배치합니다.
- 템플릿은 삽입만 하며, 사용자가 내용을 수정 후 전송할 수 있습니다.
- 터미널 환경에서 숫자 키 또는 `/tpl` 명령어로 접근 가능합니다.
Claude Code를 매일 사용하다 보면, "직전 변경 사항 검토", "이 코드 설명해줘", "이 버그 조사해서 고쳐줘"와 같이 매번 거의 같은 프롬프트를 반복해서 입력하게 됩니다.
슬래시 커맨드나 스킬로 만들 수도 있지만, 현장에서 조금 수정해서 보내고 싶은 경우도 많습니다. 그래서 Claude Code의 mod(function hooks 플러그인)로서, 프롬프트 입력란 바로 위에 템플릿 버튼을 나열하고 숫자 키로 삽입할 수 있도록 하는 mod를 제작했습니다.
👉 리포지토리: NaokiIshimura/claude-code-mod-prompt-templates
이런 식으로 프롬프트란 위에 버튼들이 나열됩니다 👇
템플릿은 Markdown 파일 하나로 정의할 수 있습니다.
---
label: review
mode: replace
...
# mod를 로드하고 실행하기만 하면 됩니다
claude --plugin-dir ~/cc-mods-prompts
- Claude Code의 프롬프트 입력란 위에 템플릿 버튼 줄을 표시하며,
1부터9까지의 숫자 키로 정형 프롬프트를 삽입할 수 있는 mod - 템플릿은 삽입만 될 뿐 전송되지는 않기 때문에, 내용을 확인/편집한 후 보낼 수 있습니다 - 템플릿은~/.claude/prompt-templates/*.md(모든 프로젝트 공통) 또는<project>/.claude/prompt-templates/*.md(프로젝트 전용)에 Markdown으로 놓기만 하면 됩니다.
프롬프트가 비어 있는 상태에서 1을 누르면, 첫 번째 템플릿이 프롬프트에 삽입됩니다. 프롬프트가 비어 있지 않게 바뀌었으므로, 줄 끝의 힌트 표시도 변경됩니다.
핵심은 **'삽입만 하고 전송하지 않는다'**는 점입니다. 템플릿을 기반으로 대상 파일명이나 버그 증상 등을 추가한 후 Enter를 눌러 보낼 수 있습니다.
| 상황 | 조작 | 줄 끝의 힌트 |
|---|---|---|
| 프롬프트가 비어 있음 | 숫자 키 누르기 | (press a number on an empty prompt) |
| ... |
그 외 세부 동작은 다음과 같습니다.
- 앞쪽 9개의 템플릿에
1부터9까지 할당되며, 10개 이상일 경우0: More…에서 목록을 열어 선택할 수 있습니다 -/tpl-bar로 버튼 줄의 표시/숨김을 전환할 수 있습니다 - 모델이 응답하는 중에도 템플릿을 삽입할 수 있어, 대기 시간에 다음 지시를 준비할 수 있습니다 - 메인 화면 터미널(tmux 내부 등)에서는 클릭이 Claude Code에 도달하지 않으므로, 키 조작을 사용합니다.
버튼이 표시되지 않는 환경(VS Code 확장이나 모바일) 또는 버튼 줄을 숨긴 경우에는 커맨드에서도 사용할 수 있습니다.
| 명령어 | 내용 |
|---|---|
/tpl <name> | 템플릿 삽입 (키 → 레이블 순으로 일치하는 것을 찾습니다. 대소문자는 구분하지 않습니다.) |
/tpl | 템플릿 목록 열기 |
/tpl-bar | 버튼 줄 표시/숨김 전환 |
/tpl-reload | 템플릿 재로드 (파일 추가/변경 시) |
- Claude Code 2.1.287 이상 (
claude --version으로 확인)
mod의 API는 얼리 액세스 단계이므로, 향후 릴리스에서 변경될 수 있습니다. 동작 확인은 Claude Code 2.1.287로 진행했습니다.
원하는 곳에 클론합니다. 여기서는 ~/cc-mods-prompts에 놓는 예시로 설명하겠습니다.
git clone https://github.com/NaokiIshimura/claude-code-mod-prompt-templates.git ~/cc-mods-prompts
mod는 폴더 단위로 로드됩니다. 다음 중 하나를 선택하세요.
시작 시 폴더만 전달하면 됩니다. 기기 설정을 아무것도 변경하지 않으므로, 시험해 보기에는 이것이 가장 간편합니다.
claude --plugin-dir ~/cc-mods-prompts
~/.claude/settings.json의 env
폴더를 추가하고 Claude Code를 재시작합니다. 데스크톱 앱처럼 플래그를 전달할 수 없는 세션에서도 사용할 수 있습니다.
{
"env": {
"CLAUDE_CODE_PLUGIN_DIRS": "/Users/you/cc-mods-prompts"
...
}
- 절대 경로로 지정합니다 (
~도 사용 가능) - 여러 mod를 로드할 때는
:구분자 (Windows에서는;) - 이미
env블록이 있는 경우, 그곳에 한 줄을 추가합니다.
리포지토리에는 샘플 템플릿(review/explain/bugfix)이 일본어판과 영어판 모두 들어 있습니다. 우선은 일본어판을 복사해서 사용해 보세요.
mkdir -p ~/.claude/prompt-templates
cp ~/cc-mods-prompts/examples/prompt-templates/ja/*.md ~/.claude/prompt-templates/
Claude Code를 실행하면 프롬프트 입력란 바로 위에 Templates: 1: review 2: explain 3: bugfix와 같은 줄이 표시됩니다. /tpl-reload를 실행해서 Loaded 3 templates가 반환되면 성공입니다 🎉
줄이 표시되지 않을 때는, claude --debug로 실행하여 디버그 로그에서 prompt-templates를 포함하는 줄을 찾아보세요.
업데이트는 폴더에서 git pull만 하면 됩니다. 실행 중인 인터랙티브 세션은 mod 파일이 변경되면 자동으로 재로드됩니다.
언인스톨은 --plugin-dir 전달을 멈추거나, CLAUDE_CODE_PLUGIN_DIRS에서 폴더를 제외하고 폴더를 삭제합니다.
| 위치 | 용도 |
|---|---|
~/.claude/prompt-templates/*.md | 모든 프로젝트에서 사용할 템플릿 |
<project>/.claude/prompt-templates/*.md | 해당 프로젝트 전용 템플릿. 같은 파일 이름의 사용자 템플릿보다 우선함 |
프로젝트 측의 템플릿을 리포지토리에 커밋해 두면, 팀원들과 동일한 정형 프롬프트를 공유할 수도 있습니다.
1개의 템플릿 = 1개의 Markdown 파일입니다. 확장자 .md를 제외한 파일명이 키가 됩니다. 프론트매터(Frontmatter)는 생략 가능합니다.
---
label: bugfix
mode: replace
...
| 필드 | 의미 | 기본값 |
|---|---|
label | 버튼에 표시할 이름 | 파일명 |
mode | insert (커서 위치에 삽입) / replace (초안을 대체) / append (끝에 추가) | insert |
order | 순서 (숫자 오름차순) | order가 있는 템플릿 뒤에, 이름 순으로 정렬됨 |
본문 끝의 개행은 삽입 전에 제거됩니다.
replace: 리뷰 요청이나 버그 수정 요청처럼, 프롬프트 전체를 템플릿으로 시작하고 싶을 때insert:
| 파일 | 내용 |
|---|---|
.claude-plugin/plugin.json | 플러그인 매니페스트 |
hooks/hooks.json | 로드할 모듈(./register.tsx )지정 |
hooks/register.tsx | 훅(Hook)・렌더링・커맨드 |
hooks/parse.ts | 템플릿의 파싱과 정렬을 수행하는 순수 함수 |
types/index.d.ts | 템플릿의 타입과 $.state 의 계약 |
hooks/*.test.ts(x) | 테스트 |
hooks/register.tsx에 처리가 모여 있는 것은, $ (엔진의 인터페이스)나 상태를, 별 파일에서 import한 함수에는 전달할 수 없다는 제약이 있기 때문입니다. 따라서 부작용이 없는 파싱 처리만
parse.ts
에 분리하여 테스트하기 쉽게 만들었습니다. 또한, ctrl+c이나 Esc Esc로 프롬프트를 지울 때에는 프롬프트 편집 이벤트가 발생하지 않기 때문에, 프롬프트가 비어있지 않은 동안은 일정한 간격으로 내용을 다시 읽고, 줄 끝의 힌트를 올바르게 전환하는 등의 공도 기울였습니다.
개발 시에는 다음 커맨드로 매니페스트 검증과 테스트를 할 수 있습니다.
claude plugin validate .
# 매니페스트와 훅 체크
claude plugin test .
# hooks/*.test.ts(x) 실행
claude-code-mod-prompt-templates는 Claude Code의 프롬프트 입력란 위에 템플릿 버튼을 나열하고, 숫자 키로 정형 프롬프트를 삽입할 수 있는 mod입니다 - 전송은 하지 않고
삽입만 하기 때문에, 템플릿을 초안으로 삼아 그 자리에서 편집할 수 있습니다 - 템플릿은 Markdown 파일을 놓기만 하면 됩니다. 사용자 공용・프로젝트 전용의 두 곳에 둘 수 있습니다
자주 사용하는 프롬프트가 있는 분들은 꼭 claude --plugin-dir로 가볍게 시도해 보세요. 자신이 자주 쓰는 프롬프트를 ~/.claude/prompt-templates/에 추가해 나갈수록, 점점 익숙해질 겁니다 🙌
버그 보고나 개선안은 GitHub의 Issue에서 기다리겠습니다!
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기