CLI

Eleven·2026년 4월 16일

Hello, Claude Code

목록 보기
11/11

요약

Claude Code CLI는 터미널에서 Claude Code를 실행하는 기본 방법이다. 대화형(Interactive) 모드와 비대화형(Print) 모드 두 가지로 동작하며, 모델 선택, 파이프 처리, CI/CD 통합 등 다양한 플래그를 지원한다.


개념 정리

두 가지 실행 모드

# 대화형 모드 (REPL) — 기본값
claude                              # 그냥 실행
claude "이 코드 설명해줘"           # 초기 프롬프트와 함께 실행

# Print 모드 (비대화형)
claude -p "이 코드 리뷰해줘"        # 한 번만 실행하고 종료
claude --print "이 코드 리뷰해줘"   # 동일한 의미
대화형 (REPL)Print 모드 (-p)
특징여러 번 주고받는 대화단일 쿼리 실행 후 종료
기능탭 자동완성, 히스토리, 슬래시 커맨드스크립트 자동화, 파이프, JSON 출력
용도일반 개발 작업CI/CD, 배치 처리, 자동화

세션 관리

claude -c                        # 가장 최근 세션 이어가기
claude -r "feature-auth"         # 이름으로 세션 재개
claude --resume "session-id"     # ID로 세션 재개

파일 파이프 처리

# 파일 내용을 Claude에게 전달
cat error.log | claude -p "이 에러 설명해줘"
cat main.py | claude -p "버그 찾아줘"

# 여러 파일
cat *.py | claude -p "공통 패턴 분석해줘"

-p를 빼면 대화형 모드로 실행돼서 Claude와 계속 대화를 이어가게 된다. 자동화 스크립트에서는 반드시 -p를 써야 한다.


출력 형식

claude -p "함수 목록 나열해줘"                        # 텍스트 (기본값)
claude -p --output-format json "함수 목록 나열해줘"   # JSON (스크립트 파싱용)
claude -p --output-format stream-json "분석해줘"      # 스트리밍 JSON

모델 선택

claude --model opus "복잡한 아키텍처 리뷰"      # 깊은 분석
claude --model sonnet "기능 구현해줘"            # 일반 작업 (기본값)
claude --model haiku -p "JSON 포맷해줘"         # 빠른 단순 작업 (비용 절약)

# opusplan: Opus가 계획 → Sonnet이 실행 (비용 효율적)
claude --model opusplan "캐싱 레이어 설계하고 구현해줘"

# 안정성을 위한 폴백 모델
claude -p --model opus --fallback-model sonnet "아키텍처 분석"

복잡한 기능을 설계하고 구현할 때 비용을 아끼려면 --model opusplan을 쓴다. Opus가 계획을 세우고 더 저렴한 Sonnet이 실제 구현을 담당한다.


Effort Level — 사고 깊이 조절

# 플래그로 설정
claude --effort high "복잡한 리뷰"

# 환경변수로 설정
export CLAUDE_CODE_EFFORT_LEVEL=high   # low, medium, high, max

# 프롬프트에 "ultrathink" 키워드 → 심층 추론 활성화
claude -p "ultrathink: 마이크로서비스 vs 모놀리스 선택 기준 분석해줘"

System Prompt 커스터마이징

# 완전한 커스텀 페르소나
claude --system-prompt "You are a senior security engineer. Focus on vulnerabilities."

# 기존 프롬프트에 추가
claude --append-system-prompt "항상 단위 테스트 예시를 포함해줘"

# 파일에서 로드 (Print 모드에서만)
claude -p --system-prompt-file ./prompts/code-reviewer.txt "main.py 리뷰해줘"

CI/CD 패턴

# 기본 CI/CD 패턴
claude -p "테스트 실행 후 리포트 생성" --permission-mode dontAsk

# 완전 자율 모드 (샌드박스에서만)
claude --enable-auto-mode -p "테스트 실행하고 실패 수정해줘"

# 에러 로그 자동 분석
cat error.log | claude -p "원인 분석하고 수정 방법 알려줘" --permission-mode dontAsk

전체 플래그 치트시트

claude                            # 대화형 실행
claude -p "질문"                  # Print 모드 (비대화형)
claude -c                         # 최근 세션 이어가기
claude -r "이름"                  # 세션 이름으로 재개
claude --model opus/sonnet/haiku  # 모델 선택
claude --model opusplan           # Opus 계획 + Sonnet 실행
claude --effort high              # 사고 깊이 설정
claude --permission-mode plan     # 읽기 전용 분석
claude --permission-mode dontAsk  # 자동 승인 (CI용)
claude --enable-auto-mode         # 완전 자율 모드
claude --system-prompt "..."      # 커스텀 페르소나
claude --output-format json       # JSON 출력

핵심 요약 (TL;DR)

  • CLI는 대화형(REPL)과 비대화형(Print, -p) 두 가지 모드로 동작
  • -p = 자동화용, 파이프 처리, CI/CD 통합의 핵심 플래그
  • opusplan = Opus 계획 + Sonnet 실행, 비용 효율적인 복잡 작업
  • cat 파일 | claude -p "질문" 패턴으로 파일 내용 자동 분석
  • --permission-mode dontAsk + -p = CI/CD 표준 조합

다음에 알아볼 것

  • Module 03: Skills — 마지막 남은 모듈
  • CI/CD 파이프라인에 Claude Code 실제 통합 실습


[Series] Claude Code Fundamentals - CLI (Command Line Interface)

Summary

The Claude Code CLI is the primary way to interact with Claude Code from the terminal. It operates in two modes — Interactive (REPL) and Non-interactive (Print) — and supports various flags for model selection, file piping, and CI/CD integration.


Key Concepts

Two Execution Modes

# Interactive mode (REPL) — default
claude                              # Launch session
claude "explain this code"          # Launch with initial prompt

# Print mode (non-interactive)
claude -p "review this code"        # Run once and exit
claude --print "review this code"   # Same thing
Interactive (REPL)Print Mode (-p)
StyleMulti-turn conversationSingle query, then exits
FeaturesTab completion, history, slash commandsScriptable, pipeable, JSON output
Use caseGeneral development workCI/CD, batch processing, automation

Session Management

claude -c                        # Continue most recent session
claude -r "feature-auth"         # Resume session by name
claude --resume "session-id"     # Resume by ID

File Piping

cat error.log | claude -p "explain this error"
cat main.py | claude -p "find bugs"
cat *.py | claude -p "analyze common patterns"

Without -p, Claude runs in interactive mode and keeps the conversation going. For automation scripts, -p is required.


Output Format

claude -p "list functions"                        # Text (default)
claude -p --output-format json "list functions"   # JSON (for script parsing)
claude -p --output-format stream-json "analyze"   # Streaming JSON

Model Selection

claude --model opus "complex architecture review"   # Deep analysis
claude --model sonnet "implement this feature"      # General tasks (default)
claude --model haiku -p "format this JSON"          # Fast simple tasks (cost-saving)

# opusplan: Opus plans → Sonnet executes (cost-efficient)
claude --model opusplan "design and implement caching layer"

# Fallback model for reliability
claude -p --model opus --fallback-model sonnet "analyze architecture"

For complex design + implementation tasks on a budget, use --model opusplan. Opus handles the planning; the cheaper Sonnet handles execution.


Effort Level — Control Reasoning Depth

claude --effort high "complex review"
export CLAUDE_CODE_EFFORT_LEVEL=high   # low, medium, high, max
claude -p "ultrathink: analyze microservices vs monolith tradeoffs"

System Prompt Customization

claude --system-prompt "You are a senior security engineer. Focus on vulnerabilities."
claude --append-system-prompt "Always include unit test examples"
claude -p --system-prompt-file ./prompts/code-reviewer.txt "review main.py"

CI/CD Patterns

claude -p "run tests and generate report" --permission-mode dontAsk
claude --enable-auto-mode -p "run tests and fix failures"
cat error.log | claude -p "analyze root cause" --permission-mode dontAsk

Full Flag Cheat Sheet

claude                            # Interactive session
claude -p "question"              # Print mode (non-interactive)
claude -c                         # Continue recent session
claude -r "name"                  # Resume session by name
claude --model opus/sonnet/haiku  # Select model
claude --model opusplan           # Opus plans + Sonnet executes
claude --effort high              # Set reasoning depth
claude --permission-mode plan     # Read-only analysis
claude --permission-mode dontAsk  # Auto-approve (for CI)
claude --enable-auto-mode         # Fully autonomous mode
claude --system-prompt "..."      # Custom persona
claude --output-format json       # JSON output

TL;DR

  • CLI has two modes: Interactive (REPL) and Non-interactive (Print, -p)
  • -p = key flag for automation, file piping, and CI/CD integration
  • opusplan = Opus plans + Sonnet executes, cost-efficient for complex tasks
  • cat file | claude -p "question" pattern for automated file analysis
  • --permission-mode dontAsk + -p = standard CI/CD combination

0개의 댓글