Claude Code를 터미널 CLI와 Desktop 앱으로 나눠 쓸 수 있다는 걸 알고 나서 비교해봤다.
기본 전제: 토큰·성능은 동일하다
두 인터페이스는 동일한 Claude Code 엔진과 Anthropic API를 사용한다. Desktop의 시각적 UI는 클라이언트 측에서 렌더링되므로 API 호출이나 토큰 소모량에 영향을 주지 않는다. Prompt caching, auto-compaction도 동일하게 적용된다. 설정 파일(~/.claude.json, CLAUDE.md, MCP 서버)도 공유된다.
CLI에서만 되는 것
- 비인터랙티브 모드 (
-p): CI/CD 파이프라인, 스크립팅에 필수 - Unix 파이프라인:
git diff | claude -p "review"같은 조합 - 구조화 출력:
--output-format json/stream-json - 예산·턴 제한:
--max-budget-usd,--max-turns dontAsk권한 모드: Desktop은 4가지 모드만, CLI는 하나 더- 제3자 클라우드: AWS Bedrock, Google Vertex, Azure Foundry
- 고급 권한 제어:
--allowedTools,--disallowedTools - Agent Teams: 다중 에이전트 병렬 조율
- Linux 지원: Desktop은 macOS/Windows만
Desktop에서만 되는 것
- 시각적 Diff + 인라인 댓글: 변경된 줄에 댓글 → Claude가 읽고 수정
- 앱 미리보기:
localhost임베딩 브라우저로 실시간 확인 - 자동 검증: 스크린샷 캡처 → 검증 → 수정 자동 반복
- 병렬 세션 탭: 사이드바에서 여러 작업 동시 관리 (자동 Git Worktree 격리)
- PR 자동화 UI: Auto-fix, Auto-merge, CI 상태 실시간 표시
- 파일·이미지 첨부: 드래그 앤 드롭으로 목업이나 에러 화면 첨부
세션은 공유되지 않는다
두 인터페이스는 세션 저장소가 완전히 분리되어 있다. --continue로 이전 세션을 불러올 때 CLI는 CLI 세션만, Desktop은 Desktop 세션만 본다.
전환은 일방향이다:
- CLI → Desktop 가능: 세션 중
/desktop입력 → 대화 기록 유지한 채 Desktop으로 이동, CLI 종료 - Desktop → CLI 불가: 역방향 전환 방법이 없다
예외적으로 웹(Remote) 세션은 양방향이다. Desktop에서 "Continue in → Claude Code on the Web"으로 보낸 세션을 CLI에서 claude --teleport로 받아올 수 있다.
도구 선택 기준
"CLI 우선으로 하다가 필요할 때 /desktop"이라는 전략은 직관적으로 보이지만, /desktop이 일방향이기 때문에 스위칭 이후 CLI로 돌아갈 수 없다는 게 함정이다. 작업을 시작하기 전에 성격을 먼저 파악하는 게 낫다.
| 작업 | 선택 |
|---|---|
| UI 확인이 필요한 프론트엔드 작업 | Desktop |
| PR 리뷰, 시각적 코드 검토 | Desktop |
| 여러 버그 병렬 수정 | Desktop |
| 자동화, 스크립팅, CI/CD | CLI |
| 백엔드 로직, 리팩토링 | CLI |
| 계획 수립 후 실행 | CLI로 계획 → Desktop으로 실행 |