Ayarlar
Pi, proje ayarlarının genel ayarları geçersiz kıldığı JSON ayar dosyalarını kullanır.
| Konum | Kapsam |
|---|---|
~/.pi/agent/settings.json |
Küresel (tüm projeler) |
.pi/settings.json |
Proje (geçerli dizin) |
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 |
sicim | - | Varsayılan sağlayıcı (ör. "anthropic", "openai") |
defaultModel |
sicim | - | Varsayılan model kimliği |
defaultThinkingLevel |
sicim | - | "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 |
nesne | - | 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 |
sicim | "dark" |
Tema adı ("dark", "light" veya özel) |
externalEditor |
sicim | $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 |
sicim | "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 |
sicim | - | enableAnalytics açıldığında oluşturulan Analytics izleme tanımlayıcısı |
doubleEscapeAction |
sicim | "tree" |
Çift kaçış eylemi: "tree", "fork" veya "none" |
treeFilterMode |
sicim | "default" |
/tree için varsayılan filtre: "default", "no-tools", "user-only", "labeled-only", "all" |
editorPaddingX |
sayı | 0 |
Giriş düzenleyicisi için yatay dolgu (0-3) |
outputPad |
sayı | 1 |
Kullanıcı mesajları, asistan mesajları ve düşünme için yatay dolgu (0 veya 1) |
autocompleteMaxVisible |
sayı | 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 |
sicim | "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 |
sicim | "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 |
sicim | "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 Kodu 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.
Ağ
| Ayar | Tip | Varsayılan | Tanım |
|---|---|---|---|
httpProxy |
sicim | - | 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 |
Antropik 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 |
sayı | 16384 |
LLM yanıtı için ayrılan jetonlar |
compaction.keepRecentTokens |
sayı | 20000 |
Saklanacak en son belirteçler (özetlenmemiş) |
{
"compaction": {
"enabled": true,
"reserveTokens": 16384,
"keepRecentTokens": 20000
}
}Şube Özeti
| Ayar | Tip | Varsayılan | Tanım |
|---|---|---|---|
branchSummary.reserveTokens |
sayı | 16384 |
branch summarization için ayrılmış jetonlar |
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 |
sayı | 3 |
Maksimum aracı düzeyinde yeniden deneme sayısı |
retry.baseDelayMs |
sayı | 2000 |
Aracı düzeyinde üstel geri çekilme için temel gecikme (2 sn, 4 sn, 8 sn) |
retry.provider.timeoutMs |
sayı | SDK varsayılan | Sağlayıcı/SDK milisaniye cinsinden istek zaman aşımı |
retry.provider.maxRetries |
sayı | 0 |
Sağlayıcı/SDK yeniden deneme girişimleri |
retry.provider.maxRetryDelayMs |
sayı | 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 |
sicim | "one-at-a-time" |
Yönlendirme mesajları nasıl gönderilir: "all" veya "one-at-a-time" |
followUpMode |
sicim | "one-at-a-time" |
Takip mesajları nasıl gönderilir: "all" veya "one-at-a-time" |
transport |
sicim | "auto" |
Birden fazla aktarımı destekleyen sağlayıcılar için tercih edilen aktarım: "sse", "websocket", "websocket-cached" veya "auto" |
httpIdleTimeoutMs |
sayı | 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 |
sayı | 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 |
sayı | 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 |
sicim | - | Özel kabuk yolu (örneğin, Windows'ta Cygwin için); giriş dizini için baştaki ~ karakterini destekler |
shellCommandPrefix |
sicim | - | Her bash komutu için önek (ör. "shopt -s expand_aliases") |
npmCommand |
sicim[] | - | 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 |
sicim | - | 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 |
sicim[] | - | 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 |
sicim | " " |
Kod blokları için girinti |
markdown.mermaid |
sicim | "streaming" |
Deniz kızı oluşturma 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 |
sıralamak | [] |
Kaynakları yüklemek için npm/git paketleri |
extensions |
sicim[] | [] |
Yerel uzantılı dosya yolları veya dizinleri |
skills |
sicim[] | [] |
Yerel beceri dosyası yolları veya dizinleri |
prompts |
sicim[] | [] |
Yerel bilgi istemi şablon yolları veya dizinleri |
themes |
sicim[] | [] |
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 }
}