Claude Code 명령어·단축키 사용법: 슬래시 명령과 Windows 단축키
/effort status를 맨 앞에 적어 보내면 Effort level: auto (currently medium) 한 줄이 바로 나옵니다. 그런데 같은 글자를 “지금 /effort status 를 실행해 주세요”처럼 문장 속에 넣었더니, 명령은 실행되지 않고 Claude가 직접 입력해 달라고 답하더라고요.
슬래시 명령은 Claude에게 부탁하는 말이 아니라 CLI가 가로채는 입력이라서 그렇습니다. 이것만 알면 명령 때문에 헤맬 일이 크게 줄어요. 처음에는 /init·/context·/compact·/clear·/model·/rewind·/usage만 익혀도 충분하고, 단축키는 Esc(멈추기), Shift+Tab(권한 모드, 안 되면 Alt+M), Ctrl+J(줄바꿈)부터 손에 붙이세요.
2026년 9월 30일 공식 문서 기준입니다. 명령 위치에 따른 차이와 -p에서 듣는 명령은 Ubuntu 24.04 · Claude Code 2.1.285에서 직접 실행해 확인했습니다.
10월 12일에는 Windows 11 · PowerShell 5.1 · Claude Code 2.1.296에서 -p 동작을, 10월 13일에는 같은 환경의 대화형 세션에서 ? 단축키 패널과 Shift+Tab·Alt+M을 다시 확인했습니다.
확인한 버전·환경
- Claude Code 2.1.296 · Windows 11 · Windows PowerShell 5.1 · 확인일 2026-10-12
- Claude Code 2.1.285 · Ubuntu 24.04 · bash · 확인일 2026-09-30
명령은 메시지 맨 앞에
같은 글자를 위치만 바꿔 claude -p로 보내 본 결과입니다.
| 보낸 메시지 | 결과 |
|---|---|
/effort status |
Effort level: auto (currently medium) 한 줄 출력 |
지금 /effort status 를 실행해 주세요 |
명령 실행 안 됨, Claude가 “직접 입력해 달라”고 답함 |
이유는 간단합니다. 슬래시 명령은 Claude가 대신 실행해 주는 것이 아니라 CLI가 가로채는 입력이고, 메시지의 첫 글자가 /일 때만 가로챕니다. 뒤에 이어지는 글자는 그 명령의 인자가 되고요.
그러니 Claude에게 “/compact 해 줘”라고 부탁해도 소용이 없습니다. 문장 속 명령은 평범한 글자로 Claude에게 가고, Claude는 그 명령을 대신 누를 수 없거든요. 명령은 입력창 맨 앞에 직접 적으세요.
예외가 하나 있습니다. v2.1.199부터 스킬은 /skill-a /skill-b do XYZ처럼 최대 여섯 개까지 이어 붙일 수 있고, 남은 글자는 각 스킬에 인자로 갑니다.
응답 중에 보낸 명령은 어디로 가나
Claude가 답하는 중에도 입력은 받습니다. 대부분의 명령은 대기열에 들어가 지금 턴이 끝난 뒤 넣은 순서대로 하나씩 실행돼요. 바로 도는 예외도 있습니다.
- 조회 명령:
/status·/tasks·/usage같은 명령은 응답을 끊지 않고 그 자리에서 돕니다. - 설정 명령:
/model·/effort는 캐시 경고를 확인한 뒤 그 턴의 다음 요청부터,/fast는 다음 턴부터 적용됩니다.
평범한 메시지는 조금 다릅니다. 도구 호출이 도는 중에 보내면 그 호출이 끝나는 대로 같은 턴 안에서 전달됩니다.
대기열을 기다리지 않고 지금 보내려면 Ctrl+Enter(v2.1.275 이상)를 누릅니다. 넣은 것을 되돌리려면 입력창 첫 줄에서 Up을 누르세요. 대기열의 메시지가 한 줄씩 입력창으로 돌아옵니다.
확장 키를 보고하지 않는 터미널에서는
Ctrl+Enter가 평범한Enter로 들어가 대기열에 쌓이기만 하니, 그때는 어디서나 되는Ctrl+X Ctrl+S를 쓰세요.
처음 익힐 명령 열세 개
세션을 굴리는 데 실제로 손이 자주 가는 명령만 추렸습니다. 전체 목록은 세션 안의 /help나 공식 명령 페이지의 표에서 볼 수 있어요. 그 표에는 내장 명령과 스킬로 묶인 것(/code-review, /simplify, /doctor 등), 워크플로로 도는 것(/deep-research)이 구분돼 있습니다.
| 명령 | 한 줄 용도 |
|---|---|
/init |
저장소에 CLAUDE.md 초안 만들기 |
/plan [설명] |
바로 계획 모드로 들어가기 |
/context |
컨텍스트를 무엇이 채웠는지 보기 |
/compact [지시] |
대화를 요약해 자리 비우기 |
/clear [이름] |
빈 컨텍스트로 새 대화 시작 |
/model, /effort |
모델·추론 수준 바꾸기 |
/btw [질문] |
기록에 남기지 않는 곁가지 질문 |
/diff |
작업 트리 변경 보기 |
/code-review, /security-review |
지금 diff의 버그·보안 문제 찾기 |
/rewind |
코드와 대화를 이전 지점으로 되감기 |
/doctor |
설치 상태 점검과 수정 |
/usage |
비용·요금제 한도·활동 통계 보기 |
/help |
지금 쓸 수 있는 명령 보기 |
헷갈리는 짝은 /compact와 /clear입니다. 같은 일을 이어 가며 자리만 비우려면 /compact, 다른 일로 갈아탈 때는 /clear를 쓰면 돼요. /clear는 이전 대화를 지우지 않고 새 대화를 열 뿐이라 /resume으로 돌아갈 수 있습니다.
그 밖에 알아 두면 좋은 것들입니다.
/init은 Codex나 Gemini CLI 설정이 있으면/import로 가져올지 묻습니다./context는 사용량을 색 격자로 보여 주고 줄일 방법을 제안합니다./effort는low~xhigh,max,auto중에서 고릅니다./usage는/cost·/stats로도 부를 수 있습니다.
명령 목록은 사람마다 다르게 보입니다. 플랫폼·요금제·환경에 따라 빠지는 명령이 있어서, 예를 들어 /desktop은 macOS와 x64 Windows에서 Claude 구독으로 로그인했을 때만 보이고 /upgrade는 Enterprise 요금제에서 보이지 않습니다.
이 중 몇 개는 따로 깊게 다뤘습니다.
/context·/compact·/clear는 컨텍스트가 찼을 때 무엇을 지우고 무엇을 남기나에, /plan은 계획 모드를 언제 켜고 언제 끄나에, /rewind는 체크포인트로 위험한 시도를 싸게 만드는 법에 있습니다.
Enter 전에 하이라이트부터 보기
/를 치면 메뉴가 열리고 글자를 더 칠수록 걸러집니다. 맨 위 후보가 하이라이트됐는지만 보고 Enter를 누르면 대부분의 실수를 피할 수 있어요.
- 하이라이트됨: 이름이나 별칭과 맞을 때입니다. 이름 안 단어의 처음부터 맞아도 되고
:·_·-는 무시합니다./adddir은/add-dir을,/new는 별칭을 통해/clear를 가리킵니다(v2.1.236 이상). - 하이라이트 없음: 오타입니다.
Tab이나 화살표로 후보를 고르세요. 그대로Enter를 누르면 적은 글자가 제출돼Unknown command가 돌아옵니다. - 목록에서 사라짐: 이 세션에서 쓸 수 없는 명령입니다. 맞는 것이 하나도 없으면
No commands match "/name"이 나옵니다. - 숨은 명령:
/heapdump처럼 일부러 뺀 명령은 이름 전체를 쳐야 나타납니다.
문장 중간에서도 빈칸 뒤에 /와 앞 글자를 치면 자동완성이 열립니다. 그 글자로 시작하는 명령만 맞추므로 /tmp/notes.md 같은 경로를 칠 때는 닫혀요. 다만 글자를 채워 줄 뿐, 문장 중간의 명령이 실행되지는 않습니다.
단축키는 세 개부터, 나머지는 ?로
빈 입력창에서 ?를 누르면 지금 터미널에서 되는 단축키 패널이 열립니다. 전체 화면 렌더러에서는 기록 뷰어 안에서도 ?로 그 화면의 단축키를 볼 수 있고요.
Windows에서 열어 보니 이미지 붙여넣기가 Alt+V, 모델 전환이 Alt+P로 나왔습니다. 다른 글에서 본 키와 다르다면 이 패널부터 보세요.
아래 표는 공식 문서가 배정한 값인데, 플랫폼과 터미널에 따라 다를 수 있다고 문서에도 적혀 있습니다. 그래서 저는 표보다 ? 패널을 더 믿으라고 권합니다.
| 하려는 일 | 키 | 참고 |
|---|---|---|
| 지금 턴 멈추기 | Esc |
이미 한 일은 남음 |
| 입력 지우기 / 되감기 메뉴 | Esc Esc |
입력이 비었으면 되감기 |
| 실행 중단·종료 | Ctrl+C |
두 번 누르면 종료 |
| 권한 모드 바꾸기 | Shift+Tab |
일부 Windows는 Alt+M |
| 줄바꿈 | Ctrl+J, \ 다음 Enter |
설정 없이 어디서나 |
| 도구 호출까지 자세히 보기 | Ctrl+O |
응답별 시각·모델 |
| 기록 거꾸로 찾기 | Ctrl+R |
|
| 깨진 화면 다시 그리기 | Ctrl+L |
대화는 남음 |
| 긴 프롬프트를 편집기로 | Ctrl+G |
Ctrl+X Ctrl+E도 같음 |
| 쓰던 입력 잠시 치우기 | Ctrl+S |
다시 누르면 복원 |
| 파일 언급 / 셸 명령 | @ / ! |
! 출력은 세션에 들어감 |
표만 봐서는 헷갈리는 동작도 있습니다.
Ctrl+C는 도는 것이 없을 때 첫 번째는 입력을 지우고, 한 번 더 누르면 종료합니다.EscEsc로 지운 입력은 기록에 남아Up으로 다시 불러올 수 있습니다.Up기록은 작업 폴더마다 따로입니다.- 글자를 지우는 조합은 끊는 자리가 다릅니다(v2.1.261 이상).
src/utils/foo.ts에서Alt+B는ts·foo·utils·src앞에서 한 번씩 멈추고,Ctrl+W는 앞 공백까지 경로 전체를 한 번에 지웁니다.
단축키를 바꾸려면 /keybindings
/keybindings를 실행하면 ~/.claude/keybindings.json을 만들거나 엽니다. 블록마다 맥락(context)과 “키: 동작” 짝을 적어요. 아래는 공식 문서 예시를 한 줄로 줄여 적은 것으로, Chat 맥락에서 Ctrl+E를 외부 편집기에 걸고 Ctrl+S 배정을 풉니다.
{
"$schema": "https://www.schemastore.org/claude-code-keybindings.json",
"bindings": [
{ "context": "Chat", "bindings": { "ctrl+e": "chat:externalEditor", "ctrl+s": null } }
]
}
맥락은 Global·Chat·Autocomplete·Confirmation·HistorySearch 등 22개입니다. 파일을 고치면 다시 띄우지 않아도 바로 적용돼요. 다만 Alt+B·Alt+F·Alt+D·Option+Delete·Ctrl+Backspace 같은 단어 단위 조합은 이 파일로 바꿀 수 없습니다.
-p로 실행하면 듣는 명령이 다르다
claude -p(비대화형)에는 대화창이 없어서, 대화창을 여는 명령은 다른 모습으로 동작합니다.
| 명령 | -p에서의 동작 |
|---|---|
/color, /rename |
그대로 동작(v2.1.205+) |
/effort |
동작 |
/config |
key=value 형태만, 켜기 제한 있음 |
/model |
인자로 받고 이번 세션만(v2.1.205+) |
/mcp |
서버 상태를 글로 출력(v2.1.205+) |
/import |
찾은 설정 나열, 확정 명령 안내 |
/reload-plugins |
직접 입력 시만, MCP 변경 미적용(v2.1.260+) |
/fast |
제한적 |
/config에서 패널 확인이 필요한 설정은 key=value로 켤 수 없고 끄는 것만 됩니다. /model은 기본값으로 저장되지 않아요.
직접 실행해 보니 claude -p "/color blue"는 Session color set to: blue를 출력했습니다. /config가 받는 키는 /config --help로 볼 수 있고, 2.1.285에서는 36개, Windows의 2.1.296에서는 37개였습니다.
Windows에서 나머지 명령도 돌려 봤습니다. 출력은 이렇게 한 줄씩이었어요.
> claude -p "/model haiku"
Set model to `Haiku 5.5` for this session only
> claude -p "/mcp"
<n> MCP server(s): <n> connected, 0 not connected, 0 disabled. Use `/mcp` in the terminal for details.
> claude -p "/keybindings"
/keybindings isn't available in this environment.
/keybindings처럼 화면이 있어야 하는 명령은 Unknown command가 아니라 이 안내 한 줄로 끝납니다.
Usage: /config key=value [key=value ...]
...
editor=normal|vim
permissionMode=default|plan|acceptEdits|auto|dontAsk
theme=auto|dark|light|light-daltonized|dark-daltonized|light-ansi|dark-ansi
...
editor=normal|vim이 있는 이유는 /vim 명령이 v2.1.92에서 없어지고 편집 모드를 /config에서 바꾸게 됐기 때문입니다. /vim이 안 된다면 /config의 Editor mode에서 Vim과 Normal 편집 모드를 바꾸세요. 스크립트에서 Claude Code를 돌리는 방법은 -p로 비대화형 실행하고 출력 형식을 고르는 법에 있습니다.
자주 막히는 곳
공개 사례 세 건을 해당 증상 옆에 함께 적었습니다. 공개된 GitHub 이슈에서 사실만 추린 것입니다.
Unknown command
하이라이트가 없는 상태(오타)에서 Enter를 눌렀거나, 이 세션에서 쓸 수 없는 명령입니다. 쓸 수 없는 명령도 대부분 이 답을 돌려주지만, 일부와 조직 정책으로 꺼진 일부 명령은 자체 안내 문구로 답합니다. Tab이나 화살표로 후보를 골라 보내고, 목록에 아예 없으면 /help로 지금 쓸 수 있는 명령을 확인하세요.
-p에서는 사정이 다릅니다. Windows에서 없는 명령 /foobarbaz와 오타 /efort status를 보내 보니 Unknown command 없이 글자 그대로 Claude에게 갔어요. Claude가 “이 세션에 없는 명령”이라고 답하고 /effort를 쓰려던 것 같다고 짚어 주긴 했지만, 그만큼 요청이 한 번 나간 겁니다.
스크립트에서는 오타가 오류로 멈추지 않으니, 명령 이름을 틀리지 않았는지 한 번 손으로 돌려 보고 넣으세요.
문장 중간 메뉴는 버전에 따라 갈렸다는 보고도 있습니다. MaksimCher(2026-09-01, #91337)는 macOS 데스크톱 앱과 CLI 2.1.257에서 문장 중간의 /가 메뉴를 열지 않는다며 2.1.246에서 되고 2.1.247에서 깨졌다고 보고했습니다. 이슈는 닫혀 있습니다.
Git Bash에서 /effort가 C:/Program Files/Git/effort로 바뀜
Windows의 Git Bash에서 claude -p "/effort status"를 실행하면 명령이 돌지 않고, Claude가 C:/Program Files/Git/effort status라는 메시지를 받았다고 답합니다. 직접 겪은 일이에요.
원인은 Git Bash(MSYS)가 /로 시작하는 인자를 Windows 경로로 바꾸는 데 있습니다. 메시지 첫 글자가 /가 아니게 되니 명령으로 인식되지 않는 거죠. 경로 변환을 끄면 Effort level: auto (currently medium)이 정상으로 나왔습니다.
MSYS_NO_PATHCONV=1 claude -p "/effort status"
PowerShell에서는 이런 변환이 없어 그대로 실행하면 됩니다. 스킬을 -p로 부를 때도 같은 일이 생깁니다.
Shift+Tab을 눌러도 권한 모드가 바뀌지 않음
Node·Bun 런타임이 VT 입력 모드를 켜지 않는 Windows에서는 이 키 대신 Alt+M이 배정돼 있습니다. Alt+M을 눌러 보세요.
Windows 11의 2.1.296에서는 Shift+Tab이 그대로 먹었습니다. 누를 때마다 하단 표시가 auto mode on → manual mode on → accept edits on으로 바뀌었고, 이 상태에서 Alt+M은 아무 반응이 없었어요. 어느 키가 배정됐는지는 위의 ? 패널에 나옵니다.
모드는 default(화면 표시 Manual) → acceptEdits → plan 순서로 돌고, 켜져 있으면 bypassPermissions → auto를 거쳐 default로 돌아옵니다. 모드별 차이는 권한 모드를 언제 무엇으로 두나에 있습니다.
오래된 걸림돌이기도 합니다. bukanpeneliti(2025-07-12, #3390)는 Windows 11 · PowerShell 7.5.2 · CLI 1.0.51에서 Shift+Tab이 오류도 없이 반응하지 않았다고 보고했고, #3368의 중복으로 닫혔습니다.
Shift+Enter로 줄이 바뀌지 않고 전송됨
Shift+Enter가 기본으로 되는 터미널은 iTerm2·WezTerm·Ghostty·Kitty·Warp·Apple Terminal·Windows Terminal뿐이고, 나머지는 설정이 필요합니다. 그럴 땐 Ctrl+J나 \ 다음 Enter를 쓰세요.
Shift+Enter를 꼭 쓰고 싶다면 /terminal-setup이 VS Code·Cursor·Devin Desktop·Alacritty·Zed에 배정을 넣어 줍니다.
/clear를 잘못 눌러 대화가 사라진 것처럼 보임
/clear는 대화를 지우지 않고 빈 컨텍스트로 새 대화를 시작할 뿐입니다. /resume으로 이전 대화로 돌아가면 되고, 같은 프로세스 안이면 되감기 메뉴의 이전 세션 항목에서도 복구됩니다. /clear 리팩터링처럼 이름을 붙여 두면 /resume 목록에서 찾기 쉬워요.
gitpushoriginmaster(2026-03-30, #40931)는 /c 다음 Enter만으로 확인 없이 /clear에 닿을 수 있다며 확인 절차를 요청했고, not planned로 닫혔습니다. 보고자는 되돌릴 수 없다고 썼지만 공식 문서는 이전 대화가 보존된다고 설명합니다.
마치며
명령을 문장 속에 넣어 보니 Claude는 “직접 입력해 달라”고만 답했습니다. 슬래시 명령은 Claude가 아니라 CLI의 몫이라는 걸 기억해 두면, 명령은 맨 앞에 직접 적고, 응답 중에 보낸 명령은 대기열에서 기다린다는 것까지 자연스럽게 이어집니다. 단축키는 터미널마다 다르니 표를 외우기보다 빈 입력창에서 ?를 한 번 눌러 자기 터미널에서 되는 키부터 확인해 보세요.
/model로 무엇을 골라야 할지, 바꾼 모델이 왜 다음 세션에 안 남는지가 궁금하다면 Claude Code 모델을 바꾸는 다섯 자리와 우선순위를 이어서 보시면 됩니다.
참고한 공식 자료
모두 2026년 9월 30일에 확인했고, Commands는 10월 12일에 다시 확인했습니다.
- Commands — Claude Code 공식 문서: 전체 명령 표, 메시지 맨 앞 규칙, 메뉴 매칭과 숨은 명령,
-p에서의 동작 - Interactive mode — Claude Code 공식 문서: 단축키 표, 여러 줄 입력, 대기열 동작, 기록 검색
- Customize keyboard shortcuts — Claude Code 공식 문서: 설정 파일 위치와 구조, 맥락 목록
- CLI reference — Claude Code 공식 문서:
-p/--print등 명령줄 플래그
인용한 공개 사례
- MaksimCher, [BUG]
/no longer opens the slash-command menu mid-message — only at index 0 (regressed in 2.1.247, last good 2.1.246), anthropics/claude-code #91337, 2026-09-01 등록, 닫힘 - bukanpeneliti, [BUG] Shift+Tab not switching to plan mode on Windows, anthropics/claude-code #3390, 2025-07-12 등록, #3368의 중복으로 닫힘
- gitpushoriginmaster, [FEATURE] Require full typing or confirmation for /clear to prevent accidental context loss, anthropics/claude-code #40931, 2026-03-30 등록, not planned로 닫힘
변경 이력
- 2026-10-13 — Windows 11 · Claude Code 2.1.296에서 연 ? 단축키 패널 화면을 더했습니다. 이미지 붙여넣기가 Alt+V, 모델 전환이 Alt+P로 나오고, Shift+Tab으로 권한 모드가 바뀌며 Alt+M은 반응이 없었던 결과도 적었습니다.
- 2026-10-12 — Windows 11에서 -p 동작을 다시 확인해 더했습니다. /model·/mcp·/keybindings 출력, /config 키 37개(2.1.296), -p에서 없는 명령이 Unknown command 없이 Claude에게 가는 것, Git Bash에서 /명령이 경로로 바뀌는 문제와 MSYS_NO_PATHCONV=1입니다.