Pi için yapılandırma, özelleştirme, platform kurulumu ve API referansları.

Ayarlar

Pi, proje ayarlarının genel ayarları geçersiz kıldığı JSON ayar dosyalarını kullanır.

Konum Kapsam
~/.pi/agent/settings.json Global (all projects)
.pi/settings.json Project (current directory)

Doğrudan düzenleyin veya ortak seçenekler için /settings kullanın.

Proje Güveni

Etkileşimli başlangıçta pi, proje yerel ayarlarını, kaynaklarını veya proje .agents/skills'yi içeren ve ~/.pi/agent/trust.json'deki klasör veya ana klasör için kayıtlı bir kararı olmayan bir proje klasörüne güvenmeden önce sorar. Bir projeye güvenmek pi'nin .pi/settings.json ve .pi kaynakları yüklemesine, eksik proje paketlerini yüklemesine ve proje uzantılarını yürütmesine olanak tanır.

Etkileşimli olmayan modlar (-p, --mode json ve --mode rpc) bir güven istemi göstermez. Geçerli bir kayıtlı güven kararı olmadan, genel ayarlardan defaultProjectTrust kullanırlar: ask (varsayılan) ve never bu proje kaynaklarını yok sayarken, always onlara güvenir. Bir çalıştırma için proje güvenini geçersiz kılmak için --approve/-a veya --no-approve/-na'yi geçin.

Hiçbir uzatma veya kayıtlı karar geçerli değilse, defaultProjectTrust geri dönüş davranışını kontrol eder. ~/.pi/agent/settings.json'de "ask", "always" veya "never" olarak ayarlayın veya /settings ile değiştirin.

pi config ve paket komutları aynı proje güven akışını kullanır, ancak pi update hiçbir zaman istemde bulunmaz. Bir komut için proje yerel ayarlarına güvenmek için --approve veya bunları yok saymak için --no-approve iletin.

Yakın ana klasöre yönelik güven de dahil olmak üzere gelecekteki oturumlar için bir proje güveni kararını kaydetmek için etkileşimli modda /trust tuşunu kullanın. Sadece ~/.pi/agent/trust.json yazıyor; geçerli oturum yeniden yüklenmediğinden değişikliklerin etkili olması için pi'yi yeniden başlatın.

Tüm Ayarlar

Modelleme ve Düşünme

Ayar Tip Varsayılan Tanım
defaultProvider string - Varsayılan sağlayıcı (ör. "anthropic", "openai")
defaultModel string - Varsayılan model kimliği
defaultThinkingLevel string - "off", "minimal", "low", "medium", "high", "xhigh", "max"
hideThinkingBlock boolean false Çıktıdaki düşünme bloklarını gizle
showCacheMissNotices boolean false Önemli bilgi istemi önbellek eksiklikleri için transkript bildirimlerini göster
thinkingBudgets object - Düşünce düzeyi başına özel token bütçeleri

düşünmeBütçeler

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

Kullanıcı Arayüzü ve Ekran

Ayar Tip Varsayılan Tanım
theme string "dark" Tema adı ("dark", "light" veya özel)
externalEditor string $VISUAL, ardından $EDITOR, ardından Windows'ta Not Defteri veya başka bir yerde nano Ctrl+G harici düzenleyici komutu; ortam değişkenlerine göre önceliklidir
quietStartup boolean false Başlangıç başlığını gizle
defaultProjectTrust string "ask" Geri dönüş projesi güven davranışı: "ask", "always" veya "never". Yalnızca genel ayar
collapseChangelog boolean false Güncellemelerden sonra yoğunlaştırılmış değişiklik günlüğünü göster
enableInstallTelemetry boolean true İlk kurulumdan veya değişiklik günlüğü tarafından algılanan güncellemelerden sonra anonim bir kurulum/güncelleme sürümü ping'i gönderin. Bu güncelleme kontrollerini kontrol etmez
enableAnalytics boolean false Analitik veri paylaşımını etkinleştirin. Şu anda yalnızca deneysel ilk kurulum sırasında sorulur (PI_EXPERIMENTAL=1)
trackingId string - enableAnalytics açıldığında oluşturulan Analytics izleme tanımlayıcısı
doubleEscapeAction string "tree" Çift kaçış eylemi: "tree", "fork" veya "none"
treeFilterMode string "default" /tree için varsayılan filtre: "default", "no-tools", "user-only", "labeled-only", "all"
editorPaddingX number 0 Giriş düzenleyicisi için yatay dolgu (0-3)
outputPad number 1 Kullanıcı mesajları, asistan mesajları ve düşünme için yatay dolgu (0 veya 1)
autocompleteMaxVisible number 5 Otomatik tamamlama açılır menüsünde maksimum görünür öğe (3-20)
showHardwareCursor boolean false TUI IME desteği için konumlandırırken terminal imlecini gösterin
tuiMode string "regular" Etkileşimli TUI modu: "regular" veya deneysel "fullscreen". /settings'den itibaren yapılan değişiklikler hemen uygulanır; --tui-mode başlangıçta bu ayarı geçersiz kılar
fullscreenExitOutput string "transcript" Tam ekran çıkış çıktısı: "transcript" son metni ve devam etme ipucunu yazdırırken, "resume-hint" önceki ekranı geri yükler ve yalnızca devam etme ipucunu yazdırır. Normal TUI modunda hiçbir etkisi yoktur
fullscreenScrollbar string "auto" Tam ekran transkript kaydırma çubuğu: "auto" kaydırma sırasında bunu geçici olarak gösterir, "always" en sağdaki sütunu ayırır ve görünür tutar ve "hidden" onu gizler. Normal TUI modunda hiçbir etkisi yoktur

VS Code için --wait ekleyin, böylece editör çıktıktan sonra pi devam eder:

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

Telemetri ve güncelleme kontrolleri

enableInstallTelemetry yalnızca https://pi.dev/api/report-install'ye olan anonim kurulum/güncelleme pingini kontrol eder. Telemetriyi devre dışı bırakmak güncelleme kontrollerini devre dışı bırakmaz; Pi en son sürümü aramak için yine de https://pi.dev/api/latest-version'yi getirebilir.

Pi sürüm güncelleme kontrolünü devre dışı bırakmak için PI_SKIP_VERSION_CHECK=1 öğesini ayarlayın. Güncelleme kontrolleri, paket güncelleme kontrolleri ve kurulum/güncelleme telemetrisi dahil olmak üzere burada açıklanan tüm başlangıç ağ işlemlerini devre dışı bırakmak için --offline veya PI_OFFLINE=1 tuşlarını kullanın.

Ayar Tip Varsayılan Tanım
httpProxy string - HTTP proxy URL'si HTTP_PROXY ve HTTPS_PROXY olarak uygulandı. Yalnızca genel ayar.
{
  "httpProxy": "http://127.0.0.1:7890"
}

Uyarılar

Ayar Tip Varsayılan Tanım
warnings.anthropicExtraUsage boolean true Anthropic abonelik kimlik doğrulaması ücretli ekstra kullanımı kullanabileceğinde bir uyarı göster
{
  "warnings": {
    "anthropicExtraUsage": false
  }
}

Sıkıştırma

Ayar Tip Varsayılan Tanım
compaction.enabled boolean true Otomatik sıkıştırmayı etkinleştir
compaction.reserveTokens number 16384 LLM yanıtı için ayrılan jetonlar
compaction.keepRecentTokens number 20000 Saklanacak en son belirteçler (özetlenmemiş)
{
  "compaction": {
    "enabled": true,
    "reserveTokens": 16384,
    "keepRecentTokens": 20000
  }
}

Dal özeti

Ayar Tip Varsayılan Tanım
branchSummary.reserveTokens number 16384 Dal özetleme için ayrılmış token'lar
branchSummary.skipPrompt boolean false "Dal özetlensin mi?" atla /tree gezinmede istem (varsayılan olarak özet yoktur)

Yeniden dene

Ayar Tip Varsayılan Tanım
retry.enabled boolean true Geçici hatalarda aracı düzeyinde otomatik yeniden denemeyi etkinleştir
retry.maxRetries number 3 Maksimum aracı düzeyinde yeniden deneme sayısı
retry.baseDelayMs number 2000 Aracı düzeyinde üstel geri çekilme için temel gecikme (2 sn, 4 sn, 8 sn)
retry.provider.timeoutMs number SDK varsayılan Sağlayıcı/SDK milisaniye cinsinden istek zaman aşımı
retry.provider.maxRetries number 0 Sağlayıcı/SDK yeniden deneme girişimleri
retry.provider.maxRetryDelayMs number 60000 Başarısız olmadan önce sunucu tarafından istenen maksimum gecikme (60s)

Bir sağlayıcı retry.provider.maxRetryDelayMs'den daha uzun bir yeniden deneme gecikmesi talep ettiğinde, istek sessizce beklemek yerine bilgilendirici bir hatayla hemen başarısız olur. Sınırı devre dışı bırakmak için 0 olarak ayarlayın.

Sağlayıcı düzeyinde yeniden denemelere açıkça ihtiyaç duyulmadığı sürece retry.provider.maxRetries'yi 0'de tutun. Bunu 0 değerinin üzerine ayarlamak, SDK/sağlayıcı yeniden denemelerinin kullanım sınırı dışı hataları Pi görmeden önce ele almasını sağlayabilir ve bu da bazı durumlarda sağlayıcı kotası sıfırlanana kadar aracıyı engelleyebilir.

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

Mesaj Gönderimi

Ayar Tip Varsayılan Tanım
steeringMode string "one-at-a-time" Yönlendirme mesajları nasıl gönderilir: "all" veya "one-at-a-time"
followUpMode string "one-at-a-time" Takip mesajları nasıl gönderilir: "all" veya "one-at-a-time"
transport string "auto" Birden fazla aktarımı destekleyen sağlayıcılar için tercih edilen aktarım: "sse", "websocket", "websocket-cached" veya "auto"
httpIdleTimeoutMs number 300000 Milisaniye cinsinden HTTP üstbilgisi/gövdesi boşta kalma zaman aşımı, açık akış boşta kalma zaman aşımlarına sahip sağlayıcılar tarafından da kullanılır. Devre dışı bırakmak için 0 olarak ayarlayın.
websocketConnectTimeoutMs number 15000 WebSocket aktarımlarını destekleyen sağlayıcılar için milisaniye cinsinden WebSocket bağlantısı/açma anlaşması zaman aşımı. Devre dışı bırakmak için 0 olarak ayarlayın.

Terminal ve Görseller

Ayar Tip Varsayılan Tanım
terminal.showImages boolean true Resimleri terminalde göster (destekleniyorsa)
terminal.imageWidthCells number 60 Terminal hücrelerinde tercih edilen satır içi görüntü genişliği
terminal.clearOnShrink boolean false İçerik küçüldüğünde boş satırları temizleyin (titremeye neden olabilir)
images.autoResize boolean true Resimleri maksimum 2000x2000 olarak yeniden boyutlandırın. Araçlar tarafından döndürülen @file ekler, read ve resimler için geçerlidir
images.blockImages boolean false Tüm görsellerin LLM'ye gönderilmesini engelle

Kabuk

Ayar Tip Varsayılan Tanım
shellPath string - Özel kabuk yolu (örneğin, Windows'ta Cygwin için); giriş dizini için baştaki ~ karakterini destekler
shellCommandPrefix string - Her bash komutu için önek (ör. "shopt -s expand_aliases")
npmCommand string[] - npm paket arama/yükleme işlemleri için kullanılan argv komutu (ör. ["mise", "exec", "node@20", "--", "npm"])
{
  "npmCommand": ["mise", "exec", "node@20", "--", "npm"]
}

npmCommand, git paketleri içindeki kurulumlar, kaldırmalar ve bağımlılık kurulumları dahil olmak üzere tüm npm paket yöneticisi işlemleri için kullanılır. Kullanıcı kapsamlı npm paketleri ~/.pi/agent/npm/ altına kurulur; proje kapsamlı npm paketleri .pi/npm/ altına kurulur. Argv tarzı girişleri tam olarak işlemin başlatılması gerektiği gibi kullanın. npmCommand yapılandırıldığında, git paketi bağımlılığı kurulumları, sarmalayıcılarda veya alternatif paket yöneticilerinde npm'ye özgü işaretlerden kaçınmak için düz install kullanır.

Oturumlar

Ayar Tip Varsayılan Tanım
sessionDir string - Oturum dosyalarının saklandığı dizin. Mutlak veya göreceli yolları ve artı ~'yi kabul eder.
{ "sessionDir": ".pi/sessions" }

Birden fazla kaynak bir oturum dizini belirttiğinde, settings.json'da öncelik --session-dir, PI_CODING_AGENT_SESSION_DIR ve ardından sessionDir olur.

Model Bisiklet

Ayar Tip Varsayılan Tanım
enabledModels string[] - Ctrl+P döngüsü için model desenleri (--models CLI bayrağıyla aynı format)
{
  "enabledModels": ["claude-*", "gpt-4o", "gemini-2*"]
}

Markdown

Ayar Tip Varsayılan Tanım
markdown.codeBlockIndent string " " Kod blokları için girinti
markdown.mermaid string "streaming" Mermaid render modu: "off", "final" veya "streaming"

Kaynaklar

Bu ayarlar uzantıların, becerilerin, istemlerin ve temaların nereden yükleneceğini tanımlar.

~/.pi/agent/settings.json içindeki yollar ~/.pi/agent'ye göre çözümlenir. .pi/settings.json içindeki yollar .pi'ye göre çözümlenir. Mutlak yollar ve ~ desteklenir.

Ayar Tip Varsayılan Tanım
packages array [] Kaynakları yüklemek için npm/git paketleri
extensions string[] [] Yerel uzantılı dosya yolları veya dizinleri
skills string[] [] Yerel beceri dosyası yolları veya dizinleri
prompts string[] [] Yerel bilgi istemi şablon yolları veya dizinleri
themes string[] [] Yerel tema dosya yolları veya dizinleri
enableSkillCommands boolean true Becerileri /skill:name komutları olarak kaydedin

Diziler glob kalıplarını ve hariç tutmaları destekler. Hariç tutmak için !pattern tuşunu kullanın. Tam bir yolu zorunlu olarak dahil etmek için +path tuşunu, tam bir yolu zorla hariç tutmak için ise -path tuşunu kullanın.

paketler

Dize formu bir paketteki tüm kaynakları yükler:

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

Nesne formu hangi kaynakların yükleneceğini filtreler:

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

Paket yönetimi ayrıntıları için packages.md'e bakın.

Örnek

{
  "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"]
}

Proje Geçersiz Kılmaları

Proje ayarları (.pi/settings.json) genel ayarları geçersiz kılar. İç içe geçmiş nesneler birleştirilir:

// ~/.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 }
}