Yapılandırma
Kodine'ı JSON yapılandırma dosyasıyla özelleştirin.
Kodine’ı bir JSON yapılandırma dosyası aracılığıyla ayarlayabilirsiniz.
Format
Kodine hem JSON hem de JSONC (yorum destekli JSON) biçimini kabul eder.
{ "$schema": "https://kodine.net/config.json", // Tema yapılandırması "theme": "kodine", "model": "kodine/kodine-large", "autoupdate": true,}Konumlar
Yapılandırma dosyanızı birkaç farklı yere koyabilirsiniz; her birinin önceliği farklıdır.
Yapılandırma kaynakları değiştirilmez; birleştirilir. Aşağıdaki konumlardaki ayarlar tek bir bütün halinde toplanır. Sonradan yüklenen kaynaklar, yalnızca aynı anahtar çakıştığında öncekini ezer. Çakışmayan tüm ayarlar olduğu gibi korunur.
Örneğin global yapılandırmanızda theme: "kodine" ve autoupdate: true tanımlıysa, proje yapılandırmanızda da model: "kodine/kodine-large" tanımlıysa, ortaya çıkan nihai yapılandırma bu üç ayarın hepsini içerir.
Öncelik sırası
Yapılandırma kaynakları şu sırayla yüklenir (listedeki sonraki kaynak, öncekinin üstüne yazar):
- Uzak yapılandırma (
.well-known/kodineüzerinden) — kurumsal varsayılanlar - Global yapılandırma (
~/.config/kodine/kodine.json) — kullanıcı tercihleri - Özel yapılandırma (
KODINE_CONFIGortam değişkeni) — özel geçersiz kılmalar - Proje yapılandırması (proje içindeki
kodine.json) — projeye özgü ayarlar .kodinedizinleri — agent’lar, komutlar, eklentiler- Satır içi yapılandırma (
KODINE_CONFIG_CONTENTortam değişkeni) — çalışma zamanı geçersiz kılmaları
Yani proje yapılandırması global varsayılanları ezebilir; global yapılandırma da uzak kurumsal varsayılanları ezebilir.
Uzak
Kuruluşlar, .well-known/kodine uç noktası üzerinden varsayılan yapılandırma dağıtabilir. Bunu destekleyen bir sağlayıcıyla kimlik doğruladığınızda yapılandırma kendiliğinden alınır.
Uzak yapılandırma en önce yüklenir ve taban katmanı oluşturur. Diğer tüm kaynaklar (global, proje) bu varsayılanları ezebilir.
Örneğin kuruluşunuz varsayılan olarak kapalı gelen bir MCP sunucusu tanımlıyorsa:
{ "mcp": { "jira": { "type": "remote", "url": "https://jira.example.com/mcp", "enabled": false } }}Yerel yapılandırmanızda bu sunucuyu açabilirsiniz:
{ "mcp": { "jira": { "type": "remote", "url": "https://jira.example.com/mcp", "enabled": true } }}Global
Global Kodine yapılandırmanız ~/.config/kodine/kodine.json konumunda durur. Tema, sağlayıcı ya da tuş ataması gibi kullanıcı genelindeki tercihlerinizi buraya yazın.
Global yapılandırma, uzaktan gelen kurumsal varsayılanları ezer.
Proje başına
Proje kökünüze bir kodine.json ekleyin. Proje yapılandırması, standart yapılandırma dosyaları arasında en yüksek önceliğe sahiptir; hem globali hem de uzak yapılandırmayı ezer.
Kodine açılırken geçerli dizinde bir yapılandırma dosyası arar; bulamazsa en yakın Git dizinine kadar yukarı çıkar.
Bu dosyayı Git’e göndermek de güvenlidir ve global dosyayla aynı şemayı kullanır.
Özel yol
KODINE_CONFIG ortam değişkeniyle istediğiniz bir yapılandırma dosyasını gösterebilirsiniz.
export KODINE_CONFIG=/path/to/my/custom-config.jsonkodine run "Hello world"Özel yapılandırma, öncelik sırasında global ile proje yapılandırmalarının arasına yerleşir.
Özel dizin
KODINE_CONFIG_DIR ortam değişkeniyle özel bir yapılandırma dizini tanımlayabilirsiniz. Bu dizin; agent’lar, komutlar, modlar ve eklentiler için tıpkı standart .kodine dizini gibi taranır ve aynı yapıyı izlemelidir.
export KODINE_CONFIG_DIR=/path/to/my/config-directorykodine run "Hello world"Özel dizin, global yapılandırma ile .kodine dizinlerinden sonra yüklendiği için bunların ayarlarını ezbilir.
Şema
Yapılandırma dosyası, kodine.net/config.json adresinde tanımlı bir şemaya sahiptir.
Editörünüz bu şema sayesinde doğrulama ve otomatik tamamlama sunabilir.
TUI
TUI’ye özgü ayarları tui seçeneğiyle yönetebilirsiniz.
{ "$schema": "https://kodine.net/config.json", "tui": { "scroll_speed": 3, "scroll_acceleration": { "enabled": true }, "diff_style": "auto" }}Kullanılabilir seçenekler:
scroll_acceleration.enabled- macOS tarzı kaydırma ivmelenmesini açar.scroll_speed’den önce değerlendirilir.scroll_speed- Özel kaydırma hızı çarpanı (varsayılan:3, en düşük:1).scroll_acceleration.enabledaçıksa yok sayılır.diff_style- Diff görünümünü belirler."auto"terminal genişliğine göre davranır;"stacked"her zaman tek sütun gösterir.
TUI kullanımı hakkında daha fazla bilgi.
Sunucu
kodine serve ve kodine web komutlarının sunucu ayarlarını server seçeneğiyle yapılandırabilirsiniz.
{ "$schema": "https://kodine.net/config.json", "server": { "port": 4096, "hostname": "0.0.0.0", "mdns": true, "mdnsDomain": "myproject.local", "cors": ["http://localhost:5173"] }}Kullanılabilir seçenekler:
port- Dinlenecek port.hostname- Dinlenecek host adı.mdnsaçıkken host adı verilmezse varsayılan0.0.0.0olur.mdns- mDNS hizmet keşfini açar; ağdaki başka cihazlar Kodine sunucunuzu bulabilir.mdnsDomain- mDNS hizmeti için özel alan adı. Varsayılanıkodine.localşeklindedir. Aynı ağda birden çok örnek çalıştırırken kullanışlıdır.cors- Tarayıcı tabanlı bir istemciden HTTP sunucusuna erişirken CORS’a izin verilecek ek kaynaklar. Değerler tam kaynak olmalıdır (şema + host + isteğe bağlı port), örneğinhttps://app.example.com.
Sunucu hakkında daha fazla bilgi.
Araçlar
LLM’in kullanabildiği araçları tools seçeneğiyle yönetebilirsiniz.
{ "$schema": "https://kodine.net/config.json", "tools": { "write": false, "bash": false }}Araçlar hakkında daha fazla bilgi.
Modeller
Kodine’da kullanacağınız sağlayıcıları ve modelleri provider, model ve small_model seçenekleriyle yapılandırabilirsiniz.
{ "$schema": "https://kodine.net/config.json", "provider": {}, "model": "kodine/kodine-large", "small_model": "kodine/kodine-small"}small_model seçeneği, başlık üretme gibi hafif işler için ayrı bir model atar. Bir şey belirtmezseniz Kodine, sağlayıcınızda varsa daha ekonomik bir model seçmeye çalışır; yoksa ana modelinizi kullanır.
Sağlayıcı seçenekleri arasında timeout ve setCacheKey bulunur:
{ "$schema": "https://kodine.net/config.json", "provider": { "kodine": { "options": { "timeout": 600000, "setCacheKey": true } } }}timeout- Milisaniye cinsinden istek zaman aşımı (varsayılan: 300000). Kapatmak içinfalseverin.setCacheKey- İlgili sağlayıcı için her zaman bir önbellek anahtarı atanmasını sağlar.
Ayrıca yerel modeller de tanımlayabilirsiniz. Daha fazla bilgi.
Sağlayıcıya Özel Seçenekler
Bazı sağlayıcılar, genel timeout ve apiKey ayarlarının ötesinde ek yapılandırma seçenekleri sunar.
Amazon Bedrock
Amazon Bedrock, AWS’a özgü yapılandırma alanlarını destekler:
{ "$schema": "https://kodine.net/config.json", "provider": { "amazon-bedrock": { "options": { "region": "us-east-1", "profile": "my-aws-profile", "endpoint": "https://bedrock-runtime.us-east-1.vpce-xxxxx.amazonaws.com" } } }}region- Bedrock için AWS bölgesi (varsayılanıAWS_REGIONortam değişkeni ya daus-east-1)profile-~/.aws/credentialsiçindeki AWS named profili (varsayılanıAWS_PROFILEortam değişkeni)endpoint- VPC uç noktaları için özel uç nokta URL’si. AWS terminolojisini kullanan genelbaseURLseçeneğinin takma adıdır. İkisi birlikte verilirseendpointkazanır.
Amazon Bedrock yapılandırması hakkında daha fazla bilgi.
Temalar
Kullanmak istediğiniz temayı theme seçeneğiyle belirleyebilirsiniz.
{ "$schema": "https://kodine.net/config.json", "theme": ""}Agent’lar
Özel görevlere yönelik agent’ları agent seçeneğiyle yapılandırabilirsiniz.
{ "$schema": "https://kodine.net/config.json", "agent": { "code-reviewer": { "description": "Reviews code for best practices and potential issues", "model": "kodine/kodine-code", "prompt": "You are a code reviewer. Focus on security, performance, and maintainability.", "tools": { // Yalnızca inceleme yapan agent için dosya değiştirme araçları kapalı "write": false, "edit": false, "bash": true, }, }, },}Agent’ları ~/.config/kodine/agents/ ya da .kodine/agents/ altındaki Markdown dosyalarıyla da tanımlayabilirsiniz. Daha fazla bilgi.
Varsayılan agent
default_agent seçeneği varsayılan agent’ı belirler; açıkça bir seçim yapılmadığında hangi agent’ın kullanılacağını tanımlar.
{ "$schema": "https://kodine.net/config.json", "default_agent": "plan"}Varsayılan agent bir birincil agent olmalıdır (alt agent olamaz). "build" ya da "plan" gibi yerleşik bir agent olabileceği gibi tanımladığınız bir özel agent da olabilir. Belirtilen agent bulunamazsa ya da bir alt agent ise Kodine, bir uyarı vererek "build" seçeneğine döner.
Bu ayar tüm arayüzlerde geçerlidir: TUI, CLI (kodine run), masaüstü uygulaması ve GitHub Action.
Paylaşma
Paylaşım özelliğini share seçeneğiyle yapılandırabilirsiniz.
{ "$schema": "https://kodine.net/config.json", "share": "manual"}Alabileceği değerler:
"manual"- Komutlar aracılığıyla elle paylaşıma izin verir (varsayılan)"auto"- Yeni konuşmaları otomatik paylaşır"disabled"- Paylaşımı tamamen kapatır
Varsayılan olarak paylaşım manual moddadır; yani konuşmaları /share komutuyla açıkça paylaşmanız gerekir.
Komutlar
Sık tekrarlanan işler için command seçeneğiyle özel komutlar tanımlayabilirsiniz.
{ "$schema": "https://kodine.net/config.json", "command": { "test": { "template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes.", "description": "Run tests with coverage", "agent": "build", "model": "kodine/kodine-small", }, "component": { "template": "Create a new React component named $ARGUMENTS with TypeScript support.\nInclude proper typing and basic structure.", "description": "Create a new component", }, },}Komutları ~/.config/kodine/commands/ ya da .kodine/commands/ altındaki Markdown dosyalarıyla da tanımlayabilirsiniz. Daha fazla bilgi.
Tuş atamaları
Kısayollarınızı keybinds seçeneğiyle özelleştirebilirsiniz.
{ "$schema": "https://kodine.net/config.json", "keybinds": {}}Otomatik Güncelleme
Kodine, açıldığında yeni güncellemeleri kendiliğinden indirir. Bu davranışı autoupdate seçeneğiyle kapatabilirsiniz.
{ "$schema": "https://kodine.net/config.json", "autoupdate": false}Güncellemeyi otomatik istemiyor ama yeni sürüm çıktığında haberdar olmak istiyorsanız autoupdate değerini "notify" yapın.
Bunun yalnızca Homebrew gibi bir paket yöneticisiyle kurulmadığında işe yaradığını unutmayın.
Biçimlendiriciler
Kod biçimlendiricilerini formatter seçeneğiyle yapılandırabilirsiniz.
{ "$schema": "https://kodine.net/config.json", "formatter": { "prettier": { "disabled": true }, "custom-prettier": { "command": ["npx", "prettier", "--write", "$FILE"], "environment": { "NODE_ENV": "development" }, "extensions": [".js", ".ts", ".jsx", ".tsx"] } }}Biçimlendiriciler hakkında daha fazla bilgi.
İzinler
Varsayılan olarak Kodine, açık onay istemeden tüm işlemlere izin verir. Bunu permission seçeneğiyle değiştirebilirsiniz.
Örneğin edit ve bash araçlarının sizden onay almasını istiyorsanız:
{ "$schema": "https://kodine.net/config.json", "permission": { "edit": "ask", "bash": "ask" }}İzinler hakkında daha fazla bilgi.
Sıkıştırma
Bağlam sıkıştırma davranışını compaction seçeneğiyle denetleyebilirsiniz.
{ "$schema": "https://kodine.net/config.json", "compaction": { "auto": true, "prune": false, "reserved": 10000 }}auto- Bağlam dolduğunda oturumu kendiliğinden sıkıştırır (varsayılan:true).prune- Token tasarrufu için eski araç çıktılarını temizler (varsayılan:false).reserved- Sıkıştırma için ayrılan token tamponu. Sıkıştırma sırasında taşma yaşanmaması için yeterli pencere bırakır.
İzleyici
Dosya izleyicinin yok sayacağı kalıpları watcher seçeneğiyle yapılandırabilirsiniz.
{ "$schema": "https://kodine.net/config.json", "watcher": { "ignore": ["node_modules/**", "dist/**", ".git/**"] }}Kalıplar glob sözdizimini izler. Gürültü üreten dizinleri dosya izlemenin dışında tutmak için kullanın.
MCP sunucuları
Kullanacağınız MCP sunucularını mcp seçeneğiyle yapılandırabilirsiniz.
{ "$schema": "https://kodine.net/config.json", "mcp": {}}Eklentiler
Eklentiler, Kodine’ı özel araçlar, kancalar ve entegrasyonlarla genişletmenizi sağlar.
Eklenti dosyalarını .kodine/plugins/ ya da ~/.config/kodine/plugins/ altına koyun. Dilerseniz plugin seçeneğiyle npm üzerinden eklenti de yükleyebilirsiniz.
{ "$schema": "https://kodine.net/config.json", "plugin": ["kodine-helicone-session", "@my-org/custom-plugin"]}Talimatlar
Kullandığınız modele iletilecek talimatları instructions seçeneğiyle yapılandırabilirsiniz.
{ "$schema": "https://kodine.net/config.json", "instructions": ["CONTRIBUTING.md", "docs/guidelines.md", ".cursor/rules/*.md"]}Bu seçenek, talimat dosyalarına işaret eden bir dizi yol ve glob deseni kabul eder. Kurallar hakkında daha fazla bilgi.
Devre dışı bırakılan sağlayıcılar
disabled_providers seçeneğiyle otomatik yüklenen sağlayıcıları kapatabilirsiniz. Kimlik bilgileri mevcut olsa bile belirli sağlayıcıların yüklenmesini engellemek istediğinizde kullanışlıdır.
{ "$schema": "https://kodine.net/config.json", "disabled_providers": ["openai", "gemini"]}disabled_providers bir dizi sağlayıcı kimliği kabul eder. Bir sağlayıcı kapatıldığında:
- Ortam değişkenleri tanımlı olsa bile yüklenmez.
- API anahtarları
/connectkomutuyla girilmiş olsa bile yüklenmez. - Sağlayıcının modelleri model seçim listesinde görünmez.
Etkin sağlayıcılar
enabled_providers seçeneğiyle izin verilen sağlayıcıların beyaz listesini tanımlayabilirsiniz. Ayarlandığında yalnızca listedeki sağlayıcılar etkinleşir; geri kalanlar yok sayılır.
{ "$schema": "https://kodine.net/config.json", "enabled_providers": ["kodine", "anthropic"]}Tek tek kapatmak yerine Kodine’ı yalnızca belirli sağlayıcılarla sınırlamak istediğinizde işe yarar.
Bir sağlayıcı hem enabled_providers hem de disabled_providers içinde yer alıyorsa, geriye dönük uyumluluk adına disabled_providers kazanır.
Deneysel
experimental anahtarı, hâlâ aktif geliştirme aşamasında olan seçenekleri barındırır.
{ "$schema": "https://kodine.net/config.json", "experimental": {}}Değişkenler
Yapılandırma dosyalarınızda, ortam değişkenlerine ve dosya içeriklerine başvurmak için değişken yerleştirme kullanabilirsiniz.
Ortam değişkenleri
Bir ortam değişkeninin değerini yerleştirmek için {env:VARIABLE_NAME} yazın:
{ "$schema": "https://kodine.net/config.json", "model": "{env:KODINE_MODEL}", "provider": { "anthropic": { "models": {}, "options": { "apiKey": "{env:ANTHROPIC_API_KEY}" } } }}Ortam değişkeni tanımlı değilse yerine boş bir dize konur.
Dosyalar
Bir dosyanın içeriğini yerleştirmek için {file:path/to/file} yazın:
{ "$schema": "https://kodine.net/config.json", "instructions": ["./custom-instructions.md"], "provider": { "openai": { "options": { "apiKey": "{file:~/.secrets/openai-key}" } } }}Dosya yolları şu biçimlerde olabilir:
- Yapılandırma dosyasının dizinine göre göreli
- Ya da
/veya~ile başlayan mutlak yollar
Şu durumlarda çok işe yarar:
- API anahtarı gibi hassas verileri ayrı dosyalarda saklamak
- Yapılandırmayı şişirmeden uzun talimat dosyaları eklemek
- Birden çok yapılandırma dosyası arasında ortak parçalar paylaşmak