Docs
Gemini CLI 사용하기
세션 관리

세션 관리

Gemini CLI에는 대화 내역을 자동으로 저장하는 강력한 세션 관리 기능이 포함되어 있습니다. 이를 통해 작업을 중단하고 정확히 중단한 지점에서 다시 시작하거나, 과거 상호 작용을 검토하거나, 대화 기록을 효과적으로 관리할 수 있습니다.

자동 저장

Gemini CLI와 상호 작용할 때마다 세션이 자동으로 저장됩니다. 이것은 수동 개입 없이 백그라운드에서 발생합니다.

  • 저장되는 내용: 다음을 포함한 전체 대화 내역:
    • 프롬프트와 모델의 응답.
    • 모든 도구 실행(입력 및 출력).
    • 토큰 사용 통계(입력/출력/캐시 등).
    • 에이전트 생각/추론 요약(사용 가능한 경우).
  • 위치: 세션은 ~/.gemini/tmp/<project_hash>/chats/에 저장됩니다.
  • 범위: 세션은 프로젝트별로 저장됩니다. 다른 프로젝트로 디렉토리를 전환하면 해당 프로젝트의 세션 기록으로 전환됩니다.

세션 재개

이전 세션을 재개하여 이전 컨텍스트가 복원된 상태로 대화를 계속할 수 있습니다.

명령줄에서

CLI를 시작할 때 --resume (또는 -r) 플래그를 사용할 수 있습니다:

  • 최신 세션 재개:

    gemini --resume

    가장 최근 세션을 즉시 로드합니다.

  • 인덱스로 재개: 먼저 사용 가능한 세션을 나열한 다음 (세션 나열 참조), 인덱스 번호를 사용하세요:

    gemini --resume 1
  • ID로 재개: 전체 세션 UUID를 제공할 수도 있습니다:

    gemini --resume a1b2c3d4-e5f6-7890-abcd-ef1234567890

대화형 인터페이스에서

CLI가 실행되는 동안 /resume 슬래시 명령을 사용하여 세션 브라우저를 열 수 있습니다:

/resume

그러면 다음과 같은 대화형 인터페이스가 열립니다:

  • 탐색: 과거 세션 목록을 스크롤합니다.
  • 미리보기: 세션 날짜, 메시지 수, 첫 번째 사용자 프롬프트와 같은 세부 정보를 봅니다.
  • 검색: /를 눌러 검색 모드로 들어가서 ID나 내용으로 세션을 필터링합니다.
  • 선택: Enter를 눌러 선택한 세션을 재개합니다.

세션 관리

세션 나열

명령줄에서 현재 프로젝트에 대해 사용 가능한 모든 세션 목록을 보려면:

gemini --list-sessions

출력 예시:

Available sessions for this project (3):

  1. Fix bug in auth (2 days ago) [a1b2c3d4]
  2. Refactor database schema (5 hours ago) [e5f67890]
  3. Update documentation (Just now) [abcd1234]

세션 삭제

오래되거나 원치 않는 세션을 제거하여 공간을 확보하거나 기록을 정리할 수 있습니다.

명령줄: 인덱스 또는 ID와 함께 --delete-session 플래그를 사용하세요:

gemini --delete-session 2

세션 브라우저에서:

  1. /resume 명령으로 브라우저를 엽니다.
  2. 삭제하려는 세션으로 이동합니다.
  3. x를 누릅니다.

구성

settings.json 파일에서 Gemini CLI가 세션 기록을 관리하는 방법을 구성할 수 있습니다.

세션 보존

기록이 무한정 커지는 것을 방지하기 위해 자동 정리 정책을 활성화할 수 있습니다.

{
  "general": {
    "sessionRetention": {
      "enabled": true,
      "maxAge": "30d", // 30일 동안 세션 보관
      "maxCount": 50 // 가장 최근 50개의 세션 보관
    }
  }
}
  • enabled: (boolean) 세션 정리의 마스터 스위치입니다. 기본값은 false입니다.
  • maxAge: (string) 세션을 보관할 기간(예: "24h", "7d", "4w")입니다. 이 기간보다 오래된 세션은 삭제됩니다.
  • maxCount: (number) 보관할 최대 세션 수입니다. 이 수를 초과하는 가장 오래된 세션은 삭제됩니다.
  • minRetention: (string) 최소 보존 기간(안전 제한)입니다. 기본값은 "1d"이며; 이 기간보다 최신인 세션은 자동 정리로 삭제되지 않습니다.

세션 제한

컨텍스트 창이 너무 커져 비용이 많이 드는 것을 방지하기 위해 개별 세션의 길이를 제한할 수도 있습니다.

{
  "model": {
    "maxSessionTurns": 100
  }
}
  • maxSessionTurns: (number) 단일 세션에서 허용되는 최대 턴 수(사용자 + 모델 교환)입니다. 제한 없음을 설정하려면 -1로 설정하세요(기본값).

    제한 도달 시 동작:

    • 대화형 모드: CLI가 정보 메시지를 표시하고 모델에 요청 전송을 중지합니다. 새 세션을 수동으로 시작해야 합니다.
    • 비대화형 모드: CLI가 오류와 함께 종료됩니다.