
새로 나온 슬래시 명령 몇 개 따라가다 보니 Claude Code Desktop App에서 안 먹는 게 한두 개가 아니었다.
같은 명령인데 CLI에서는 되고 Desktop App에서는 안 됐다.
같은 설정인데 어떤 곳에선 적용되고 어떤 곳에선 무시됐다.
직접 부딪히며 발견한 것들을 우선 공유한다. 분명 여기 적은 것 외에도 더 있을 거고, 앞으로 또 부딪히는 게 생기면 추가로 공유할 생각이다.
/voice, /config, /status, /stats — 내가 부딪힌 것만 네 개다. Desktop App 입력창에 친 다음 Tab이나 Space를 누르면 자동완성이 가장 가까운 다른 명령으로 바꿔버린다.
| 입력한 명령 | 자동 변환되는 명령 |
|---|---|
/stats, /status | /usage |
/config | /configure |
/voice | /document-release |
= Desktop App에 등록 안 된 명령이라 자동완성이 비슷한 다른 명령으로 바꾼다. 모르는 사람은 "내가 친 명령이 실행됐다"고 착각하기 쉽다.
같은 정보·기능은 메뉴나 버튼으로 따로 제공된다:
| 슬래시 (CLI) | Desktop App 대체 |
|---|---|
/config | Settings 메뉴 (상단 톱니바퀴) |
/status | 좌하단/상단 표시 (모드·모델·effort) |
/stats (= /usage 별칭, CLI 한정) | Settings → 사용량 |
/voice | 입력창 좌하단 마이크 버튼을 hold(누르고 있는 동안)로 push-to-talk |
CLI에서 쓰던 명령을 그대로 Desktop App에 치면 안 되니까, 환경마다 입력 방식이 다르다는 걸 인지하고 시작해야 한다.
이건 CLI 한정이다. Desktop App은 마이크 버튼이 따로 있어서 영향 없다.
CLI에서 /voice 활성하고 Space 길게 눌러도 push-to-talk 녹음이 안 되고, 그냥 일반 스페이스가 연속 입력되는 경우가 있다.
알려진 버그 (GitHub Issue #35156). Windows 11 area:tui 라벨로 OPEN/stale 상태.
임시 우회:
/voice off
/voice hold
토글 한 번 끄고 다시 켜면 Space가 정상 동작한다. 단 또 멈출 수 있어서 매번 우회해야 한다.
Desktop App에서 안전하게 쓰고 싶으면 마이크 버튼을 쓰면 된다 (GUI라 키 이벤트 충돌 없음).
Desktop App에선 한국어 음성이 잘 잡혔다. 그래서 CLI에서도 당연히 될 줄 알았다.
근데 CLI에서는 한국어로 발화해도 transcript가 영어로 깨져서 들어왔다.
원인은 단순했다. settings.json에 language 필드가 없으면 CLI는 영어로 잡는다. 공식 문서 인용:
"If that setting is empty, dictation defaults to English."
해결:
{
"language": "korean"
}
~/.claude/settings.json에 추가하고 새 세션을 시작하면 된다.
그러면 /voice 활성 메시지가 Dictation language: ko로 바뀌고, 한국어 발화가 정상 잡힌다.
흥미로운 점은 같은 음성 입력 기능인데 언어 결정 방식이 환경마다 다르다는 거다.
| 환경 | 언어 결정 |
|---|---|
| Desktop App | 자동 감지 또는 OS 시스템 언어 사용 (settings.json 무관) |
| CLI | settings.json의 language 필드 명시 필요. 비어 있으면 영어 |
Desktop App에선 한국어 그냥 됐고, CLI에선 명시적으로 적어줘야 됐다.
공식 문서엔 CLI 동작만 명시되어 있고 Desktop App 자동 감지는 따로 설명이 없다.
같은 기능 같은 이름인데 환경에 따라 동작이 다르다는 게 첫 번째로 헷갈렸다.
가장 큰 함정.
CLI에서 /config 치면 처음에 자유 입력 프롬프트가 뜬다.
Enter your preferred response and voice language:
> Korean
Leave empty for default (English)
여기에 Korean 입력하고 Enter 쳤다. 그런데 실 음성 입력은 여전히 영문이었다.
흐름을 그대로 적으면 이렇다:
| 단계 | settings.json | /config 자유 입력 | 실 동작 |
|---|---|---|---|
| 1. 초기 | (없음) | empty (English) | 영문 음성 |
2. /config에 korean 입력 | (그대로 없음) | korean 표시 | 여전히 영문 음성 |
| 3. settings.json에 korean 추가 | "korean" | korean 표시 | 한글 음성 ✅ |
4. /config에서 값 지움 | "korean" (그대로) | empty | 여전히 한글 음성 |
= /config 자유 입력 프롬프트는 표시만 바뀌고 실 적용은 무시된다. CLI는 오직 settings.json만 본다.
(흥미로운 점 하나. CLI에서 /status, /config, /usage, /stats 네 개 명령이 모두 같은 4탭 UI(Status / Config / Usage / Stats)를 띄운다. 입력한 명령에 해당하는 탭이 기본 선택될 뿐 사실상 같은 화면이다. 4탭 네비의 Config 탭에서 Space로 항목 토글이 가능해 보이는데 거기서 변경하면 적용되는지는 검증 못 했다. 어쨌든 자유 입력 프롬프트는 무력했다.)
결론은 단순하다. 모든 설정은 settings.json을 직접 편집하고 새 세션을 시작해야 한다. /config UI로 한 변경은 신뢰하지 않는 게 안전.
이번 글에서 다룬 것들을 같은 톤으로 묶으면 이렇다:
같은 슬래시·같은 설정 키라도 환경마다 동작이 다르다.
| 함정 | 핵심 |
|---|---|
| Desktop App 미작동 슬래시 | GUI는 슬래시 대신 메뉴 |
| /voice Space 멈춤 (Win 11) | 토글 off/on 우회 |
| CLI 한국어 STT | settings.json language: korean |
| 언어 처리 환경 차이 | Desktop=자동 / CLI=명시 |
| /config 자유 입력 무력 | settings.json이 진실의 원천 |
이 글이 같은 함정에서 한 시간이라도 아끼는 데 쓰이면 충분하다.
여기 적은 것 외에도 환경별 차이는 더 있을 거고, 신기능 나올 때마다 또 생기기도 한다. 새로 발견하는 게 있으면 후속 글로 추가 공유할 생각이다.
다음에 안 빠질 수 있게 패턴은 하나만 기억하면 된다 — "이 기능은 Desktop에서도 같은 식으로 되나?" 한 번 더 확인하기.
이 글은 Claude Code 플레이북을 만들면서 배운 것을 비개발자 시점으로 정리한 시리즈입니다.