Pi 구성, 확장, 플랫폼 설정 및 API 참조.

설정

Pi는 전역 설정을 재정의하는 프로젝트 설정과 함께 JSON 설정 파일을 사용합니다.

위치 범위
~/.pi/agent/settings.json 글로벌(모든 프로젝트)
.pi/settings.json 프로젝트(현재 디렉터리)

직접 편집하거나 일반 옵션에 /settings를 사용하세요.

프로젝트 신뢰

대화형 시작 시 pi는 프로젝트 로컬 설정, 리소스 또는 프로젝트 .agents/skills를 포함하고 ~/.pi/agent/trust.json의 폴더 또는 상위 폴더에 대해 저장된 결정이 없는 프로젝트 폴더를 신뢰하기 전에 묻습니다. 프로젝트를 신뢰하면 pi가 .pi/settings.json.pi 리소스를 로드하고, 누락된 프로젝트 패키지를 설치하고, 프로젝트 확장을 실행할 수 있습니다.

비대화형 모드(-p, --mode json--mode rpc)에는 신뢰 프롬프트가 표시되지 않습니다. 적용 가능한 저장된 신뢰 결정이 없으면 전역 설정에서 defaultProjectTrust를 사용합니다. ask(기본값) 및 never는 해당 프로젝트 리소스를 무시하고 always는 이를 신뢰합니다. 한 번의 실행에 대해 프로젝트 신뢰를 재정의하려면 --approve/-a 또는 --no-approve/-na를 전달합니다.

확장이나 저장된 결정이 적용되지 않는 경우 defaultProjectTrust는 대체 동작을 제어합니다. ~/.pi/agent/settings.json에서는 "ask", "always", "never"로 설정하거나 /settings로 변경하세요.

pi config 및 패키지 명령은 동일한 프로젝트 신뢰 흐름을 사용합니다. 단, pi update는 메시지를 표시하지 않습니다. 하나의 명령에 대해 프로젝트 로컬 설정을 신뢰하려면 --approve를 전달하고 이를 무시하려면 --no-approve를 전달합니다.

직계 상위 폴더에 대한 신뢰를 포함하여 향후 세션에 대한 프로젝트 신뢰 결정을 저장하려면 대화형 모드에서 /trust를 사용하세요. ~/.pi/agent/trust.json만 씁니다. 현재 세션은 다시 로드되지 않으므로 변경 사항을 적용하려면 pi를 다시 시작하세요.

모든 설정

모델과 사고

환경 유형 기본 설명
defaultProvider - 기본 공급자(예: "anthropic", "openai")
defaultModel - 기본 모델 ID
defaultThinkingLevel - "off", "minimal", "low", "medium", "high", "xhigh", "max"
hideThinkingBlock 부울 false 출력에서 사고 블록 숨기기
showCacheMissNotices 부울 false 중요한 프롬프트 캐시 누락에 대한 기록 알림 표시
thinkingBudgets 물체 - 사고 수준에 따른 맞춤형 토큰 예산

생각예산

{
  "thinkingBudgets": {
    "minimal": 1024,
    "low": 4096,
    "medium": 10240,
    "high": 32768
  }
}

UI 및 디스플레이

환경 유형 기본 설명
theme "dark" 테마 이름("dark", "light" 또는 맞춤설정)
externalEditor $VISUAL, $EDITOR, Windows에서는 메모장, 다른 곳에서는 nano Ctrl+G 외부 편집기 명령; 환경 변수보다 우선합니다.
quietStartup 부울 false 시작 헤더 숨기기
defaultProjectTrust "ask" 대체 프로젝트 신뢰 동작: "ask", "always" 또는 "never". 전역 설정만
collapseChangelog 부울 false 업데이트 후 요약된 변경 로그 표시
enableInstallTelemetry 부울 true 첫 번째 설치 또는 변경 로그 감지 업데이트 후 익명의 설치/업데이트 버전 핑을 보냅니다. 업데이트 확인을 제어하지 않습니다.
enableAnalytics 부울 false 분석 데이터 공유를 선택하세요. 현재는 최초 실험 설정 중에만 요청됩니다(PI_EXPERIMENTAL=1).
trackingId - enableAnalytics가 켜져 있을 때 생성되는 Analytics 추적 식별자
doubleEscapeAction "tree" 이중 이스케이프 작업: "tree", "fork" 또는 "none"
treeFilterMode "default" /tree에 대한 기본 필터: "default", "no-tools", "user-only", "labeled-only", "all"
editorPaddingX 숫자 0 입력 편집기의 가로 패딩(0-3)
outputPad 숫자 1 사용자 메시지, 보조 메시지, 생각에 대한 가로 패딩(0 또는 1)
autocompleteMaxVisible 숫자 5 자동 완성 드롭다운에 표시되는 최대 항목(3-20)
showHardwareCursor 부울 false TUI가 IME 지원을 위해 위치를 지정하는 동안 터미널 커서를 표시합니다.
tuiMode "regular" 대화형 TUI 모드: "regular" 또는 실험적 "fullscreen". /settings의 변경사항은 즉시 적용됩니다. --tui-mode 시작 시 이 설정을 재정의합니다.
fullscreenExitOutput "transcript" 전체 화면 종료 출력: "transcript"는 최종 기록과 이력서 힌트를 인쇄하고, "resume-hint"는 이전 화면을 복원하고 이력서 힌트만 인쇄합니다. 일반 TUI 모드에서는 효과가 없습니다.
fullscreenScrollbar "auto" 전체 화면 기록 스크롤 막대: "auto"는 스크롤하는 동안 일시적으로 표시하고, "always"는 가장 오른쪽 열을 예약하여 표시되도록 유지하며, "hidden"는 숨깁니다. 일반 TUI 모드에서는 효과가 없습니다.

VS Code의 경우 --wait를 포함하면 편집기가 종료된 후 pi가 다시 시작됩니다.

{
  "externalEditor": "code --wait"
}

원격 분석 및 업데이트 확인

enableInstallTelemetryhttps://pi.dev/api/report-install에 대한 익명 설치/업데이트 핑만 제어합니다. 원격 분석을 옵트아웃해도 업데이트 확인이 비활성화되지는 않습니다. Pi는 여전히 https://pi.dev/api/latest-version를 가져와서 최신 버전을 찾을 수 있습니다.

PI_SKIP_VERSION_CHECK=1를 설정하면 Pi 버전 업데이트 확인이 비활성화됩니다. 업데이트 확인, 패키지 업데이트 확인, 설치/업데이트 원격 측정을 포함하여 여기에 설명된 모든 시작 네트워크 작업을 비활성화하려면 --offline 또는 PI_OFFLINE=1를 사용하세요.

회로망

환경 유형 기본 설명
httpProxy - HTTP_PROXYHTTPS_PROXY로 적용되는 HTTP 프록시 URL입니다. 전역 설정에만 해당됩니다.
{
  "httpProxy": "http://127.0.0.1:7890"
}

경고

환경 유형 기본 설명
warnings.anthropicExtraUsage 부울 true Anthropic 구독 인증이 유료 추가 사용량을 사용할 수 있는 경우 경고 표시
{
  "warnings": {
    "anthropicExtraUsage": false
  }
}

압축

환경 유형 기본 설명
compaction.enabled 부울 true 자동 압축 활성화
compaction.reserveTokens 숫자 16384 LLM 응답용으로 예약된 토큰
compaction.keepRecentTokens 숫자 20000 보관할 최근 토큰(요약되지 않음)
{
  "compaction": {
    "enabled": true,
    "reserveTokens": 16384,
    "keepRecentTokens": 20000
  }
}

지점 요약

환경 유형 기본 설명
branchSummary.reserveTokens 숫자 16384 branch summarization용으로 예약된 토큰
branchSummary.skipPrompt 부울 false "분기를 요약하시겠습니까?"를 건너뛰세요. /tree 탐색 시 프롬프트(기본값은 요약 없음)

다시 해 보다

환경 유형 기본 설명
retry.enabled 부울 true 일시적인 오류에 대해 자동 에이전트 수준 재시도 활성화
retry.maxRetries 숫자 3 최대 에이전트 수준 재시도 횟수
retry.baseDelayMs 숫자 2000 에이전트 수준 지수 백오프에 대한 기본 지연(2초, 4초, 8초)
retry.provider.timeoutMs 숫자 SDK 기본값 Provider/SDK 요청 시간 제한(밀리초)
retry.provider.maxRetries 숫자 0 Provider/SDK 재시도 횟수
retry.provider.maxRetryDelayMs 숫자 60000 실패하기 전 최대 서버 요청 지연 시간(60초)

공급자가 retry.provider.maxRetryDelayMs보다 긴 재시도 지연을 요청하면 조용히 기다리는 대신 정보 오류와 함께 요청이 즉시 실패합니다. 제한을 비활성화하려면 0로 설정하세요.

공급자 수준 재시도가 명시적으로 필요한 경우가 아니면 retry.provider.maxRetries0로 유지하세요. 0 이상으로 설정하면 SDK/공급자 재시도가 사용 제한 초과 오류를 Pi에서 확인하기 전에 처리할 수 있으며, 이로 인해 일부 상황에서 공급자 할당량이 재설정될 때까지 에이전트가 차단될 수 있습니다.

{
  "retry": {
    "enabled": true,
    "maxRetries": 3,
    "baseDelayMs": 2000,
    "provider": {
      "timeoutMs": 3600000,
      "maxRetries": 0,
      "maxRetryDelayMs": 60000
    }
  }
}

메시지 전달

환경 유형 기본 설명
steeringMode "one-at-a-time" 조정 메시지 전송 방법: "all" 또는 "one-at-a-time"
followUpMode "one-at-a-time" 후속 메시지 전송 방법: "all" 또는 "one-at-a-time"
transport "auto" 여러 전송을 지원하는 제공업체가 선호하는 전송: "sse", "websocket", "websocket-cached" 또는 "auto"
httpIdleTimeoutMs 숫자 300000 HTTP 헤더/본문 유휴 시간 제한(밀리초). 명시적인 스트림 유휴 시간 제한이 있는 공급자에서도 사용됩니다. 비활성화하려면 0로 설정하세요.
websocketConnectTimeoutMs 숫자 15000 WebSocket 전송을 지원하는 공급자에 대한 WebSocket 연결/열기 핸드셰이크 시간 제한(밀리초)입니다. 비활성화하려면 0로 설정하세요.

터미널 및 이미지

환경 유형 기본 설명
terminal.showImages 부울 true 터미널에 이미지 표시(지원되는 경우)
terminal.imageWidthCells 숫자 60 터미널 셀의 기본 인라인 이미지 너비
terminal.clearOnShrink 부울 false 콘텐츠가 축소되면 빈 행 지우기(깜박임이 발생할 수 있음)
images.autoResize 부울 true 이미지 크기를 최대 2000x2000으로 조정합니다. @file 첨부파일, read 및 도구에서 반환한 이미지에 적용됩니다.
images.blockImages 부울 false 모든 이미지가 LLM으로 전송되지 않도록 차단

껍데기

환경 유형 기본 설명
shellPath - 사용자 정의 셸 경로(예: Windows의 Cygwin용) 홈 디렉토리에 대해 선행 ~ 지원
shellCommandPrefix - 모든 bash 명령의 접두사(예: "shopt -s expand_aliases")
npmCommand 끈[] - npm 패키지 조회/설치 작업에 사용되는 명령 argv(예: ["mise", "exec", "node@20", "--", "npm"])
{
  "npmCommand": ["mise", "exec", "node@20", "--", "npm"]
}

npmCommand는 git 패키지 내부의 설치, 제거 및 종속성 설치를 포함한 모든 npm 패키지 관리자 작업에 사용됩니다. 사용자 범위 npm 패키지는 ~/.pi/agent/npm/ 아래에 설치됩니다. 프로젝트 범위 npm 패키지는 .pi/npm/ 아래에 설치됩니다. 프로세스가 시작되어야 하는 것과 똑같이 argv 스타일 항목을 사용하십시오. npmCommand가 구성되면 git 패키지 종속성 설치는 일반 install를 사용하여 래퍼 또는 대체 패키지 관리자의 npm 관련 플래그를 방지합니다.

세션

환경 유형 기본 설명
sessionDir - 세션 파일이 저장되는 디렉터리입니다. 절대 또는 상대 경로와 ~를 허용합니다.
{ "sessionDir": ".pi/sessions" }

여러 소스가 세션 디렉터리를 지정하는 경우 settings.json에서 우선 순위는 --session-dir, PI_CODING_AGENT_SESSION_DIR, sessionDir입니다.

모델 사이클링

환경 유형 기본 설명
enabledModels 끈[] - Ctrl+P 순환을 위한 모델 패턴(--models CLI 플래그와 동일한 형식)
{
  "enabledModels": ["claude-*", "gpt-4o", "gemini-2*"]
}

Markdown

환경 유형 기본 설명
markdown.codeBlockIndent " " 코드 블록 들여쓰기
markdown.mermaid "streaming" 인어 렌더링 모드: "off", "final" 또는 "streaming"

자원

이러한 설정은 확장 프로그램, 스킬, 프롬프트 및 테마를 로드할 위치를 정의합니다.

~/.pi/agent/settings.json의 경로는 ~/.pi/agent를 기준으로 결정됩니다. .pi/settings.json의 경로는 .pi를 기준으로 결정됩니다. 절대 경로와 ~가 지원됩니다.

환경 유형 기본 설명
packages 정렬 [] npm/git 리소스를 로드할 패키지
extensions 끈[] [] 로컬 확장 파일 경로 또는 디렉터리
skills 끈[] [] 로컬 기술 파일 경로 또는 디렉터리
prompts 끈[] [] 로컬 프롬프트 템플릿 경로 또는 디렉터리
themes 끈[] [] 로컬 테마 파일 경로 또는 디렉터리
enableSkillCommands 부울 true /skill:name 명령어로 스킬 등록

배열은 glob 패턴과 제외를 지원합니다. 제외하려면 !pattern를 사용하세요. 정확한 경로를 강제로 포함하려면 +path를 사용하고, 정확한 경로를 강제로 제외하려면 -path를 사용하세요.

패키지

문자열 형식은 패키지에서 모든 리소스를 로드합니다.

{
  "packages": ["pi-skills", "@org/my-extension"]
}

개체 양식은 로드할 리소스를 필터링합니다.

{
  "packages": [
    {
      "source": "pi-skills",
      "skills": ["brave-search", "transcribe"],
      "extensions": []
    }
  ]
}

패키지 관리에 대한 자세한 내용은 packages.md를 참조하세요.

{
  "defaultProvider": "anthropic",
  "defaultModel": "claude-sonnet-4-20250514",
  "defaultThinkingLevel": "medium",
  "theme": "dark",
  "compaction": {
    "enabled": true,
    "reserveTokens": 16384,
    "keepRecentTokens": 20000
  },
  "retry": {
    "enabled": true,
    "maxRetries": 3
  },
  "enabledModels": ["claude-*", "gpt-4o"],
  "warnings": {
    "anthropicExtraUsage": true
  },
  "packages": ["pi-skills"]
}

프로젝트 재정의

프로젝트 설정(.pi/settings.json)은 전역 설정보다 우선 적용됩니다. 중첩된 개체가 병합됩니다.

// ~/.pi/agent/settings.json (global)
{
  "theme": "dark",
  "compaction": { "enabled": true, "reserveTokens": 16384 }
}

// .pi/settings.json (project)
{
  "compaction": { "reserveTokens": 8192 }
}

// Result
{
  "theme": "dark",
  "compaction": { "enabled": true, "reserveTokens": 8192 }
}