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

환경 변수

Pi는 세 가지 방법으로 환경 변수를 사용합니다.

  • PI_OFFLINE와 같은 변수는 Pi 프로세스를 구성합니다.
  • Pi는 PI_CODING_AGENT를 설정하여 하위 프로세스가 Pi 내부에서 실행되는지 감지할 수 있습니다.
  • LLM 호출 가능 bash 도구에 의해 실행되는 명령은 현재 세션을 설명하는 PI_* 변수를 수신합니다.

공급자 API-주요 변수는 Providers에 별도로 문서화되어 있습니다.

프로세스 마커

CLI 및 RPC 진입점은 PI_CODING_AGENT=true로 설정됩니다. 하위 프로세스는 이를 상속하고 이를 사용하여 Pi 내부에서 실행되는지 감지할 수 있습니다. 세션별로 지정되지 않으며 SDK를 통해 Pi가 삽입되면 자동으로 설정되지 않습니다.

Bash 도구 세션 환경

bash 도구로 실행되는 명령은 현재 Pi 세션 상태를 수신합니다.

변하기 쉬운 설명
PI_SESSION_ID 현재 세션 ID
PI_SESSION_FILE 현재 세션 JSONL 파일의 절대 경로입니다. 임시 세션이 설정되지 않았습니다.
PI_PROVIDER 현재 선택된 모델 제공자
PI_MODEL 현재 선택된 모델 ID
PI_REASONING_LEVEL 현재 유효 추론 수준: off, minimal, low, medium, high, xhigh 또는 max

각 명령이 시작될 때 값이 확인됩니다. 따라서 모델을 전환하거나 추론 수준을 변경하면 Pi을 다시 시작하지 않고도 다음 bash 명령에 영향을 미칩니다. PI_PROVIDERPI_MODEL는 선택된 Pi 모델을 식별하며, 라우터가 내부적으로 선택할 수 있는 다른 업스트림 모델이 아닙니다.

어떤 모델이나 공급자가 실행 중인지 묻는 메시지가 나타나면 시스템 프롬프트에서 답변을 추론하는 대신 다음 변수를 검사하세요.

printf '%s/%s\n' "$PI_PROVIDER" "$PI_MODEL"
printf 'reasoning=%s session=%s\n' "$PI_REASONING_LEVEL" "$PI_SESSION_ID"

세션이 지속되면 세션 파일을 직접 검사할 수 있습니다.

if [ -n "$PI_SESSION_FILE" ]; then
  tail -n 1 "$PI_SESSION_FILE"
fi

이러한 변수는 LLM 호출 가능 bash 도구에 주입됩니다. 사용자가 입력한 ! 또는 !! 명령에는 삽입되지 않습니다.

사용자 정의 Bash 도구

createBashTool()로 생성된 Bash 도구는 Pi로 등록할 때 기본적으로 세션 환경을 노출합니다. 주입은 spawnHook 이전에 발생하므로 후크는 ctx.env에서 변수를 받습니다.

const bashTool = createBashTool(cwd, {
  spawnHook: (ctx) => ({
    ...ctx,
    env: { ...ctx.env, CI: "1" },
  }),
});

생성 후크와 별도로 세션 메타데이터를 비활성화합니다.

const bashTool = createBashTool(cwd, {
  exposeSessionEnvironment: false,
  spawnHook: (ctx) => ctx,
});

비활성화되면 Pi는 이러한 변수에 대해 상속된 값을 제거하므로 중첩된 Pi 프로세스는 오래된 상위 세션 메타데이터를 노출하지 않습니다.

Pi 프로세스 구성

다음 변수는 Pi 자체에서 읽습니다.

변하기 쉬운 설명
PI_CODING_AGENT_DIR 구성 디렉터리를 재정의합니다. 기본값은 ~/.pi/agent입니다.
PI_CODING_AGENT_SESSION_DIR 세션 저장소를 재정의합니다. --session-dir에 의해 재정의됨
PI_PACKAGE_DIR Nix/Guix 저장소 경로에 유용한 패키지 디렉터리를 재정의합니다.
PI_OFFLINE 업데이트 확인, 패키지 업데이트, 원격 측정 설치/업데이트 등 시작 네트워크 작업을 비활성화합니다.
PI_SKIP_VERSION_CHECK pi.dev 최신 버전 요청 비활성화
PI_TELEMETRY 설치/업데이트 원격 측정 및 공급자 속성 헤더 재정의: 1/true/yes 또는 0/false/no
PI_CACHE_RETENTION 지원되는 경우 확장된 공급자 프롬프트 캐싱을 위해 long로 설정
PI_SHARE_VIEWER_URL /share에서 사용하는 기본 URL을 재정의합니다.
PI_HARDWARE_CURSOR 하드웨어 커서를 표시하려면 1로 설정하세요. Terminal setup 참조
VISUAL, EDITOR externalEditor가 설정되지 않은 경우 외부 편집기 대체
HTTP_PROXY, HTTPS_PROXY 프록시 아웃바운드 HTTP 요청

ANTHROPIC_API_KEY, OPENAI_API_KEY와 같은 공급자 자격 증명 및 클라우드 공급자 구성은 Providers에 나열됩니다.