환경 변수
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_PROVIDER 및 PI_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에 나열됩니다.