İçeriğe geç
New Kodine v2 is now available

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.

kodine.jsonc
{
"$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):

  1. Uzak yapılandırma (.well-known/kodine üzerinden) — kurumsal varsayılanlar
  2. Global yapılandırma (~/.config/kodine/kodine.json) — kullanıcı tercihleri
  3. Özel yapılandırma (KODINE_CONFIG ortam değişkeni) — özel geçersiz kılmalar
  4. Proje yapılandırması (proje içindeki kodine.json) — projeye özgü ayarlar
  5. .kodine dizinleri — agent’lar, komutlar, eklentiler
  6. Satır içi yapılandırma (KODINE_CONFIG_CONTENT ortam 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:

Remote config from .well-known/kodine
{
"mcp": {
"jira": {
"type": "remote",
"url": "https://jira.example.com/mcp",
"enabled": false
}
}
}

Yerel yapılandırmanızda bu sunucuyu açabilirsiniz:

kodine.json
{
"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.

Terminal window
export KODINE_CONFIG=/path/to/my/custom-config.json
kodine 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.

Terminal window
export KODINE_CONFIG_DIR=/path/to/my/config-directory
kodine 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.

kodine.json
{
"$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.enabled açı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.

kodine.json
{
"$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ı. mdns açıkken host adı verilmezse varsayılan 0.0.0.0 olur.
  • 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ğin https://app.example.com.

Sunucu hakkında daha fazla bilgi.


Araçlar

LLM’in kullanabildiği araçları tools seçeneğiyle yönetebilirsiniz.

kodine.json
{
"$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.

kodine.json
{
"$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:

kodine.json
{
"$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çin false verin.
  • 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:

kodine.json
{
"$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_REGION ortam değişkeni ya da us-east-1)
  • profile - ~/.aws/credentials içindeki AWS named profili (varsayılanı AWS_PROFILE ortam değişkeni)
  • endpoint - VPC uç noktaları için özel uç nokta URL’si. AWS terminolojisini kullanan genel baseURL seçeneğinin takma adıdır. İkisi birlikte verilirse endpoint kazanır.

Amazon Bedrock yapılandırması hakkında daha fazla bilgi.


Temalar

Kullanmak istediğiniz temayı theme seçeneğiyle belirleyebilirsiniz.

kodine.json
{
"$schema": "https://kodine.net/config.json",
"theme": ""
}

Daha fazla bilgi.


Agent’lar

Özel görevlere yönelik agent’ları agent seçeneğiyle yapılandırabilirsiniz.

kodine.jsonc
{
"$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.

kodine.json
{
"$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.

kodine.json
{
"$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.

kodine.jsonc
{
"$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.

kodine.json
{
"$schema": "https://kodine.net/config.json",
"keybinds": {}
}

Daha fazla bilgi.


Otomatik Güncelleme

Kodine, açıldığında yeni güncellemeleri kendiliğinden indirir. Bu davranışı autoupdate seçeneğiyle kapatabilirsiniz.

kodine.json
{
"$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.

kodine.json
{
"$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:

kodine.json
{
"$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.

kodine.json
{
"$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.

kodine.json
{
"$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.

kodine.json
{
"$schema": "https://kodine.net/config.json",
"mcp": {}
}

Daha fazla bilgi.


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.

kodine.json
{
"$schema": "https://kodine.net/config.json",
"plugin": ["kodine-helicone-session", "@my-org/custom-plugin"]
}

Daha fazla bilgi.


Talimatlar

Kullandığınız modele iletilecek talimatları instructions seçeneğiyle yapılandırabilirsiniz.

kodine.json
{
"$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.

kodine.json
{
"$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ı /connect komutuyla 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.

kodine.json
{
"$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.

kodine.json
{
"$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:

kodine.json
{
"$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:

kodine.json
{
"$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