AhiCodeVS Code içinde çalışan, Ahilik zanaat disipliniyle güçlendirilmiş otonom yazılım geliştirme ajanı.
Cline veya OpenCode gibi jeneratif araçlardan temel farkı; Türkçe zanaat arayüzü, zorunlu onaylı şartname/plan kapıları, hash zincirli kriptografik denetim günlüğü ( Geliştirici: Yusuf BEKAR · E-posta: ybekar@msn.com
İçindekiler
Öne çıkanlar
KurulumGereksinimler
Marketplace üzerinden kurulumAhiCode henüz VS Code Marketplace'te yayımlanmadı. Yayın tamamlandığında:
Yayın sonrasında terminalden kurmak için:
Marketplace kaydı henüz mevcut olmadığından, bu arama ve komut yayın yapılana kadar çalışmayacaktır. VSIX oluşturma ve kurulumKaynak depoda dağıtım amaçlı VSIX dosyası tutulmaz. Kendi VSIX paketinizi güncel sürümle oluşturmak için:
Bu komut paketi
Bu komut uzantıyı derler, paketler ve VS Code CLI (
Sürüm yükseldiğinde komuttaki dosya adını güncel sürüme göre değiştirin. Alternatif olarak VS Code içinde Extensions → ... → Install from VSIX yolunu izleyebilirsiniz. Kaldırma ve güncellemeUzantıyı VS Code CLI ile kaldırmak için:
VS Code arayüzünden de Extensions bölümünde AhiCode → Uninstall seçilebilir. Şu anda AhiCode Marketplace'te yayımlanmış değil ve GitHub Releases bölümünde yayımlanmış bir sürüm bulunmuyor. Bu nedenle Marketplace üzerinden kurulum ve otomatik güncelleme henüz kullanılamaz. VSIX dosyasından kurulan uzantılarda otomatik güncelleme varsayılan olarak kapalıdır. Yerel VSIX kurulumunu güncellemek için Marketplace için publisher hesabı, eşleşen Kaynaktan kurulum
Geliştirme modunda çalıştırma
Bu komut uzantıyı derler ve yeni bir Extension Host penceresi açar. Gizlilik ve veri akışı
Hızlı başlangıç
Yönlendirilmiş geliştirme akışıAhiCode, prompt'tan doğrudan kod üretmez. Aşamalar kapılıdır ve her kapı kullanıcı onayı
gerektirir; Aşama listesi moda göre değişir; planlama modunda kod yazılmadığı için uygulama ve doğrulama aşamaları hiç görünmez.
Kurallar:
Giriş altı durum satırıSohbet girişinin hemen altında tek satırlık dürüst durum gösterilir:
Yeniden gönder, son kullanıcı istemini yeniden yürütür: başarısız asistan turu ve yarım araç çağrıları silinir, istem çoğaltılmaz. Kayıtlı mesaja eklenmiş editör bağlamı temizlenir; böylece yeniden deneme güncel dosya durumunu kullanır. Bilgi tabanıAjan her görevde projeyi baştan taramaz;
Arayüzde Ajanlar & Beceriler → Bilgi tabanı kartından durumu görüp yeniden indeksleyebilir, sıfırlayabilir ve kalıcı not ekleyebilirsiniz. Çağrı haritasıBilgi tabanı ne var sorusunu yanıtlar; çağrı haritası kim kimi çağırıyor sorusunu.
Harita, fonksiyon ve metotların çağrı ilişkilerini dil sunucusundan (LSP) çıkarır ve
Haritayı kullanan salt-okunur araçlar plan modunda da açıktır: Kodlama ve Planlama modlarıHeader üzerindeki mod seçici ile geçiş yapılır. Mod değişikliği ajan çalışırken kilitlidir. Planlama modu (
|
| Seviye | Spec/plan onayı | Tur sonu | Yazma/komut izni |
|---|---|---|---|
manual |
Kullanıcıya sorulur | Durdurur | Kullanıcıya sorulur |
guided |
Otomatik geçilir | Durdurur | Kullanıcıya sorulur |
auto |
Otomatik geçilir | Görev bitene kadar sürer | Kullanıcıya sorulur |
- Otonomi yalnızca akış duraklamalarını kaldırır. Dosya yazma, komut çalıştırma,
riskli komut engeli, hassas dosya korumaları ve
.ahi/permissions.jsonkuralları her seviyede aynıdır. guidedveautomodda ek olarak şunlar akışı durdurmaz:- Görev devri (
invoke_subagent,run_parallel_tasks): alt ajanın kendi yazma/komut işlemleri yine onaya tabidir. - Netleştirme sorusu (
ask_followup_question): soru görünür, ajan en makul varsayımla ilerler ve varsayımı spec'inassumptionsalanına yazmakla yükümlüdür. - Görev sonu bilgi kaydı turu atlanır (bilgi dosyası yazımı
alwaysonay ister).
- Görev devri (
automodda otomatik devam sayısı sınırlıdır (MAX_AUTO_CONTINUATIONS = 12). Sınıra ulaşıldığında ajan durur ve bunu dürüstçe bildirir; sonsuz döngü olmaz.- Kullanıcı görevi iptal ederse bekleyen otomatik devam turu çalışmaz.
guidedveautomodda spec/plan yine üretilir ve görünür; yalnızca onay kartı beklemez.- Sistem prompt'u seviyeye göre değişir:
manual"onay bekle" der, otonom modlar "onay otomatik verildi, durma" der. İkisi asla çelişmez.
Ajan orkestrasyonu: kim neyi yapacak
İki karar katmanı vardır ve ikisi de deterministiktir:
- Rol ataması (
src/shared/agents/routing.ts): plan adımının dosyalarına, sonra görev metnine, en son varsayılana bakılarak rol seçilir. ModelownerRoleverdiyse o korunur. Aynı girdi her zaman aynı rolü üretir. - Delegasyon (
invoke_subagent,run_parallel_tasks): yalnızcamanagerrolü delege edebilir. Diğer rollerin araç listesinde bu araçlar yoktur; çağrılırsa "not allowed to use tool" hatası döner.
Adım → rol örnekleri:
| Dosya / metin | Rol |
|---|---|
webview-ui/src/**/*.tsx, .css |
frontend |
db/migrations/**, *.sql |
database |
Dockerfile, .github/workflows/** |
devops |
test/**, *.spec.ts, lint ayarları |
quality |
src/security/**, "kimlik doğrulama" |
security |
*.rs, *.go, *.c |
native |
Plan onaylandığında roller plana yazılır; arayüz ve sistem prompt'u
Owner: @rol olarak gösterir. Rol atamasının kaynağı (model / yönlendirme)
ownerRoleSource alanında saklanır.
Delegasyonun yetki sınırı:
- Ana ajanın
invoke_subagentçağrısı için verdiği onay yalnızca delege etme iznidir; alt ajanın yazma/komut izni değildir. Alt ajan yazmaya çalışırsa aynı onay kuralı yine uygulanır. - Alt ajanlar kullanıcıya soramaz. Onay gereken işi yapamazlar; sonucu ana ajana "Approval Required" olarak bildirirler.
- İç içe delege en fazla 2 seviyedir: yönetici kendi alt ajanını çağırabilir
ama sonsuz zincir kuramaz. Sınır aşılırsa çağrı
maxDepthhatasıyla döner.
Araç listeleri tek kaynaktır:
src/shared/agents/registry/*.tsiçindekitoolsalanıToolNamebirleşimine göre derlenir veSubagentManagerdoğrudan bunu kullanır. Bilinmeyen bir araç adıarchitecture.test.tstarafından yakalanır.
Sohbet arayüzü
- Markdown yanıtlar: başlıklar, listeler, alıntılar, kalın/italik, satır içi kod ve kod blokları güvenli biçimde render edilir.
- Kod blokları: dil etiketi ve tek tıkla kopyalama.
- Mesaj kartları: kullanıcı mesajının altında zaman damgası ve Kopyala / Düzenle / Geri al eylemleri; "Geri al" o mesajdan sonra yapılan değişiklikleri ilgili checkpoint'e döndürür.
- Araç zaman çizelgesi: her araç çağrısı için ikon, kısa açıklama, durum, çıktı, hata ve parametreler.
- Onay kartı: yazma/komut işlemleri için diff ve açıklama ile Onayla/Reddet.
- Soru kartı: ajan
ask_followup_questionkullandığında girilen cevap aynı görevde devam eder. - Checkpoint menüsü: önceki turlara dönme ve son dosya değişikliğini geri alma.
- Canlı durum: adım sayısı, token kullanımı, değiştirilen dosya sayısı.
- Erişilebilirlik: metin seçimi, klavye ile gönderme (
Enter), yeni satır (Shift+Enter) ve odak halkaları.
Ekranlar
| Ekran | İçerik |
|---|---|
| Sohbet | Mesajlar, araç adımları, onaylar, sorular, checkpoint'ler |
| Değişiklikler | Çalışma ağacı Git durumu, dosya farkları, anlık görüntü geri alımları |
| Geçmiş | Kayıtlı oturumlar, arama, durum bilgisi, silme |
| Ajanlar | AGENTS.md, proje hafızası, beceriler, özel ve yerleşik alt ajanlar |
| MCP | Sunucu durumları, keşfedilen araçlar, yapılandırma |
| Ayarlar | Sağlayıcı/model, API anahtarı, otomatik izinler |
| Hakkında | Sürüm, ortam, özellikler, kısayollar, lisans ve bağlantılar |
Tasarım sistemi
Arayüzün tamamı tek bir token kaynağından beslenir; bileşenler ham renk veya piksel yazmaz. Böylece VS Code teması, kullanıcının editör yazı tipi boyutu ve yüksek karşıtlık modu ayrı ayrı ele alınmak zorunda kalmaz.
Tipografi
| Token | Varsayılan | Kullanım |
|---|---|---|
--ahi-text-2xs |
0.75rem |
Rozet, zaman damgası, yardımcı metin |
--ahi-text-xs |
0.85rem |
Gövde metni, buton, liste satırları |
--ahi-text-sm |
0.92rem |
Bölüm başlıkları |
--ahi-text-md |
1rem |
Sayfa başlıkları |
- Boyutlar
remcinsindendir: webview kök yazı tipi kullanıcının VS Code ayarıdır, bu yüzden arayüz editörle aynı oranda büyür (0.75em × 0.92emçarpım kayması olmaz). - Tek bir adlandırma şeması vardır: Tailwind
text-2xs…text-baseyardımcı sınıfları doğrudan token'lara bağlanır. Okunabilirliği korumak için2xs'ten (10 px) küçük boyut kullanılmaz. - Renkler
--ahi-brand-*(çini mavisi, Selçuklu turkuazı, zanaat altını/bakırı) ve--vscode-*değişkenlerinden gelir; hata durumu marka renginden daha parlak bir kırmızı kullanır.
Paylaşılan sabitler
src/shared/constants.ts tek kaynaktır. İki veya daha fazla modülün kullandığı bir
değer oraya taşınır; hiçbir dosya kendi kopyasını tutmaz.
| Sabit | Kapsam |
|---|---|
AHI_DIR, AHI_SUBDIRS, AHI_FILES |
.ahi/ yol ve dosya adları |
MAX_TOOL_OUTPUT_CHARS |
Araç çıktısı üst sınırı (15.000 karakter) |
COMMAND_TIMEOUT_MS |
Komut yürütme zaman aşımı (120 sn) |
HTTP_TIMEOUT_MS |
Ağ istekleri (web, modelList) |
DEFAULT_PROVIDER_URLS |
OpenRouter / Ollama / LM Studio varsayılan adresleri |
CLIENT_NAME, USER_AGENT, REPO_URL |
Tanıtım başlıkları ve istemci adı |
USER_AGENT sürümü version.ts üzerinden okur; sabit bir sürüm dizesi yazılmaz.
Marka varlıkları
| Dosya | Amaç |
|---|---|
resources/logo.png |
Ana logo, açık tema (kırpılmış, saydam) |
resources/logo-dark.png |
Ana logo, koyu tema (yazı açık renge çevrilmiş, saydam) |
resources/logo.svg |
Ana logonun vektör sarmalayıcısı (baskı/tasarım için) |
resources/icon.png |
Marketplace simgesi (128×128, kare, saydam) |
resources/icon-color.svg |
Renkli A markasının vektör kaynağı |
resources/icon.svg |
Aktivite çubuğu için monokrom sürüm (tema rengini alır) |
webview-ui/src/components/Logo.tsx |
Arayüz içi logo bileşeni; aynı marka geometrisini kullanır |
README başlığı, <picture> ile tema duyarlı seçim yapar: koyu temada logo-dark.png,
açık temada logo.png gösterilir. Böylece logodaki koyu lacivert yazı hiçbir temada
kaybolmaz. Logolardaki saydam kenar boşlukları kırpılmıştır; görsel oranı korunur.
Araçlar
| Araç | Açıklama |
|---|---|
read_file |
Satır aralığı destekli dosya okuma; ikili dosya ve boyut kontrolü. |
write_file |
Yeni dosya oluşturma veya tamamen güncelleme. |
update_acceptance_criteria |
Spec kabul kriterlerini işaretler; tümü işaretlenmeden görev "Bitti" olamaz. |
edit_file |
Benzersiz hedef metin değiştirme; çoklu eşleşme koruması ve allowMultiple. |
list_directory |
Dizin listeleme; node_modules, .git, dist gibi gürültülü klasörleri atlar. |
search_files |
Metin arama; grep yoksa Node tabanlı yedek arama (cross-platform). |
execute_command |
Terminal komutu çalıştırma; risk politikası, iptal edilebilir süreç ve çıktı sınırı. |
run_tests |
npm/pnpm/yarn/pytest test komutunu otomatik algılar. |
run_linter |
package.json lint betiğini veya tsc kontrolünü çalıştırır. |
git_status |
Git çalışma ağacı durumu. |
git_diff |
Değişiklik farkı. |
get_diagnostics |
LSP hata ve uyarıları. |
get_definition |
Sembol tanımına gitme. |
get_hover |
Sembol tipi/dokümantasyonu. |
read_skill |
.agents/skills/ altındaki beceri talimatları. |
invoke_subagent |
Uzman alt ajana görev devri. isolate: true ile ayrı Git worktree üzerinde çalışır. |
ask_followup_question |
Kullanıcıdan cevap bekleyerek görevi duraklatma. |
update_plan |
Bağımlılıklı ve tamamlanma koşullu görev planı oluşturma/güncelleme. |
run_verification |
Test, lint ve tip kontrolünü birlikte çalıştırıp sonucu raporlama. |
index_workspace / find_symbol / analyze_impact |
Proje bilgi tabanını kurar; sembol arama ve etki analizi bu indeks üzerinden çalışır. |
get_project_knowledge |
Bilgi tabanı: dosya/sembol sayısı, proje gerçekleri, kurallar, kararlar, modül özetleri, notlar. |
add_knowledge_note |
Bilgi tabanına kalıcı not ekler (.ahi/knowledge/notes.md). Onay ister. |
write_knowledge_file |
project.md, conventions.md veya decisions.md içeriğini önerir; onaydan sonra her isteme girer. |
write_spec |
Görev spec'i oluşturur (hedef, kapsam, kapsam dışı, varsayımlar, kabul kriterleri, risk). Onay bekler. |
get_references / get_workspace_symbols |
LSP referansları ve workspace sembol araması. |
git_create_branch / git_commit / prepare_pr |
Dal, commit ve PR açıklaması hazırlama. |
web_fetch / web_search |
Güvenli web içeriği ve DuckDuckGo araması. |
search_memory |
Proje hafızası ve bilgi tabanında birlikte arama. |
read_notebook |
Jupyter notebook hücrelerini okuma. |
run_parallel_tasks / merge_worktree |
Worktree’lerde paralel ajan ve birleştirme. |
undo_change |
Son dosya değişikliğini geri alma. |
get_callers |
Bir sembolü çağıran fonksiyonları derinliğe göre listeler. Salt-okunur. |
get_callees |
Bir sembolün çağırdıklarını listeler; proje dışı çağrı sayısını ayrıca verir. Salt-okunur. |
call_graph_impact |
Sembol kümesi için etkilenen fonksiyon, dosya ve testleri bulur. Salt-okunur. |
find_related_code |
Anahtar kelimeyle ilgili başlangıç düğümlerini ve bir seviye çevresini bulur. Salt-okunur. |
call_graph_status |
Harita durumu: son güncelleme, düğüm/ilişki sayısı, eksik dosyalar. Salt-okunur. |
mcp_* |
MCP sunucularından gelen dinamik araçlar. |
Otomatik doğrulama
ahiCode.autoVerify açıkken (varsayılan) ajan her dosya değişikliğinden sonra run_verification
ile test/lint/tip kontrolünü çalıştırır. Otomatik doğrulama yalnızca güvenilir çalışma alanında,
deny kurallarına takılmayan ve autoApprove.executeCommands anahtarı açıkken (varsa
allow.commands filtresine uyan) komutlarla çalışır; aksi halde komut atlanır ve bilgi bildirimi
gösterilir. Başarısız olursa çıktı
modele geri bildirilir ve ahiCode.maxRepairAttempts kadar düzeltme denenir.
ahiCode.captureBaseline ile görev başlangıcındaki hatalar .ahi/verification-baseline.json
dosyasına kaydedilir; yalnızca yeni regresyonlar düzeltilmeye çalışılır.
Checkpoint ve snapshot'lar .ahi/checkpoints/ ile .ahi/snapshots/ altında kalıcıdır;
eklenti yeniden yüklense bile geri alma çalışır. Oturum değiştirmek bu kayıtları silmez.
Tamamlanan dosya değişikliklerinde araç kartındaki Diff düğmesi önce/sonra görünümünü açar.
Alt ajanlar, kullanıcı onayı gerektiren yazma/komut işlemlerini doğrudan yapamaz; ana ajanın onay akışına yönlendirilir.
Docker sandbox
ahiCode.sandboxMode = "docker" ile test/lint/terminal komutları Docker konteynerinde çalışır.
Varsayılan olarak ağ kapalıdır (ahiCode.sandboxNetwork = false). İmaj ahiCode.sandboxImage
ile belirlenir. Docker kurulu değilse komut açık bir hata ile durur; sessizce host'a düşmez.
Headless CLI
npm run cli -- --prompt "Login hatasını düzelt" --workspace . --yes
npm run cli -- --prompt "Projeyi incele" --read-only
Varsayılan olarak yazma/komut işlemleri için onay ister. --yes ile otomatik onay,
--read-only ile yalnızca salt-okunur araçlar kullanılır. CLI'de Workspace Trust arayüzü olmadığı için
depodaki .ahi/permissions.json dosyasının allow/autoApprove kuralları yalnızca --yes verildiğinde
dikkate alınır; aksi halde global ayarlar ve onay soruları geçerlidir. API anahtarı --api-key veya
OPENROUTER_API_KEY ya da OpenAI uyumlu uç nokta için
OPENAI_COMPATIBLE_API_KEY ortam değişkeniyle verilir. --api-key shell geçmişinde ve süreç listesinde
görünebildiği için ortam değişkeni tercih edilmelidir. OpenAI uyumlu uç nokta
OPENAI_COMPATIBLE_BASE_URL ile yapılandırılır.
| Bayrak | Açıklama |
|---|---|
--prompt <metin> |
Çalıştırılacak görev (zorunlu). |
--workspace <yol> |
Çalışma alanı kökü (varsayılan: geçerli dizin). |
--yes |
Yazma/komut onaylarını otomatik kabul et. |
--read-only |
Yalnızca salt-okunur araçları kullan. |
--provider <ad> |
evren, openrouter, ollama veya openai-compatible. |
--model <kimlik> |
Kullanılacak model kimliği. |
--max-steps <n> |
En fazla ajan adımı. |
--api-key <anahtar> |
Sağlayıcı API anahtarı (ortam değişkeni tercih edilir). |
--help |
Kullanım bilgisini yazdırır. |
Proje hafızası 2.0
Görev kayıtları .ahi/memory.md yanında .ahi/memory.jsonl olarak da saklanır.
Kayıtlar commit, dosya, özet ve zaman bilgisi içerir; search_memory ile aranabilir.
Çoklu kök (multi-root)
Bir oturumda farklı workspace kökleri arasında geçiş yapıldığında her kökün snapshot/checkpoint kayıtları bellekte ayrı tutulur ve aktif köke göre yüklenir. Eski kökün diskteki kayıtları silinmez.
Tüm araç çağrıları zorunlu parametre doğrulamasından geçer. Hatalar modele yapılandırılmış biçimde döndürülür.
Token ekonomisi
Uzun görevlerde maliyetin çoğu, her adımda tüm geçmişin yeniden gönderilmesinden gelir. Bu proje dört kaldıraç uygular:
| Kaldıraç | Ne yapar | Ölçülen etki (25 adımlık görev) |
|---|---|---|
| Araç başına çıktı sınırı | search_files 3K, execute_command 4K, read_file 12K karakter |
~%55 daha az token |
| Akıllı kesme | Başı, sonu ve ortadaki hata satırlarını korur; ham log yerine sinyal gönderir | Kesme kalitesi artar, adım sayısı düşer |
| Erken geçmiş özetleme | 8 adımdan sonra tüketilmiş araç çıktılarını işaretle sıkıştırır | Ek ~%22 |
| Prompt önbelleği | Sabit ön eki cache_control ile işaretler |
Faturalanan token'da ~%30 |
Ölçüm: 25 adımlık örnek bir mimari/refactoring görevinde ölçülen referans değer: 1.14M token → ~210K token (~%82 azalma). Gerçek tasarruf oranı görevin niteliğine, dosya boyutlarına ve model sağlayıcısına göre değişebilir.
Döngü ve bütçe güvenliği: Görevler somut, ayarlardan yapılandırılabilir sınırlarla korunur:
- Tek bir turda en fazla
ahiCode.maxStepsPerTask(varsayılan: 25 adım) araç çağrısı çalıştırılabilir.- Görev başına toplam token bütçesi
ahiCode.maxTokensPerTaskile sınırlanabilir (varsayılan: 0 = sınırsız). Kontrol bir sonraki model çağrısından önce yapılır; duraklatılan turda yarım işlenmiş araç çağrısı kalmaz. Bütçe yalnızca sağlayıcı kullanım (usage) bilgisi döndürüyorsa uygulanır; sürdürmek için sınırı yükseltin.- Otonom modda (
autonomy: auto) kontrolsüz döngüleri önlemek için en fazlaahiCode.maxContinuations(varsayılan: 12) otomatik devam turu sınırı vardır.- Bulut sağlayıcı (OpenRouter vb.) kullanırken maliyeti kontrol altında tutmak için
maxTokensPerTaskvemaxStepsPerTaskdeğerlerini küçültebilir veya otonomi seviyesiniguidedtutarak onayları kontrol edebilirsiniz.- Arayüzde kullanılan token miktarı şeffafça gösterilir.
Araç şemalarını budamak yalnızca ~%4 kazandırır: asıl yük çıktılarda ve geçmişte. Kendi MCP sunucusu token azaltmaz (her araç şeması prompt'a eklenir, ~110 token/araç) ve IPC gecikmesi ekler; MCP yalnızca dış sistem entegrasyonu için kullanılmalıdır.
Model sağlayıcıları
Varsayılan sağlayıcı Ollama'dır; hiçbir sağlayıcı seçilmeden yerel çalışır ve API anahtarı istemez.
EVREN LLM
- İsteğe bağlı sağlayıcı (varsayılan değil).
- Uç nokta:
https://evren-llmapi.ssyz.org.tr/v1(Platform:https://evren.ssyz.org.tr/) - API anahtarı
X-API-KeyveAuthorizationbaşlıklarıyla gönderilir. automodeli sunucunun en uygun modeli seçmesini sağlar.- Kullanım şartları oturum başına bir kez kontrol edilir (
ahiCode.autoAcceptTerms).
OpenRouter
- Uç nokta:
https://openrouter.ai/api/v1 HTTP-RefererveX-Titlebaşlıkları otomatik eklenir.- Model listesi OpenRouter API'sinden dinamik alınır.
Ollama (yerel, varsayılan)
- Varsayılan sağlayıcı. İnternet ve API anahtarı gerektirmez.
- Varsayılan URL:
http://localhost:11434. Adres/v1ile de girilebilir; iki kez eklenmez. - Varsayılan model:
llama3.1. Yerel ve kendi barındırdığınız uç noktalardaautokullanılmaz; somut model kimliği zorunludur ve eksikse açıklayıcı bir hata gösterilir. - Modeller
/api/tagsüzerinden listelenir. - OpenAI uyumlu
/v1uç noktası üzerinden çağrılır. cache_controlgönderilmez: yerel sunucular içerik bloğu biçimini reddedebilir. Prompt önbelleği yalnızca OpenRouter ve Anthropic tarzı uçlarda kullanılır.
OpenAI API uyumlu uç noktalar
- LM Studio, vLLM ve OpenAI Chat Completions biçimini uygulayan sunucularla kullanılabilir.
- Temel adres
/v1ile bitmelidir; modeller/models, yanıtlar/chat/completionsüzerinden alınır. - VS Code ayarlarında API anahtarı isteğe bağlıdır ve varsa
SecretStorageiçinde saklanır. - Bu seçenek her sağlayıcının tüm özel özelliklerini desteklediği anlamına gelmez; uyumluluk sunucunun araç çağrısı biçimini desteklemesine bağlıdır.
API anahtarları hiçbir zaman düz metin dosyasına veya ayar dosyasına yazılmaz. VS Code
SecretStoragekullanılır.
Ayarlar
VS Code ayarları
| Ayar | Varsayılan | Açıklama |
|---|---|---|
ahiCode.selectedProvider |
ollama |
ollama, evren, openrouter veya openai-compatible. |
ahiCode.selectedModel |
llama3.1 |
Kullanılacak model kimliği. |
ahiCode.maxStepsPerTask |
25 |
Bölüm başına ajan adımı; sınıra ulaşınca görev otomatik olarak yeni bölümle devam eder. |
ahiCode.maxTokensPerTask |
0 |
Görev başına toplam token bütçesi (0 = sınırsız). Sınıra ulaşınca görev duraklatılır. |
ahiCode.maxContinuations |
12 |
Otonom modda en fazla otomatik devam turu sayısı. |
ahiCode.useIntegratedTerminal |
true |
Ajan komutlarını VS Code tümleşik terminalinde çalıştırır; çıktı ajana iletilir. |
ahiCode.showDiffBeforeWrite |
true |
Ajan dosya yazmadan/düzenlemeden önce değişikliği editörde diff olarak açar. |
ahiCode.promptCaching |
true |
Sistem prompt'u ve araç şemalarını sağlayıcı önbelleğine alır. |
ahiCode.autoVerify |
true |
Kod değişikliğinden sonra test/lint/tip doğrulaması çalıştırır. |
ahiCode.autonomy |
manual |
manual / guided / auto; yalnızca akış duraklamalarını kaldırır. |
ahiCode.captureBaseline |
false |
Görev başındaki test durumunu kaydeder; yalnızca yeni hatalar onarılır. |
ahiCode.maxRepairAttempts |
2 |
Otomatik doğrulama başarısız olduğunda en fazla onarım denemesi. |
ahiCode.modelRoutingEnabled |
false |
Göreve göre hızlı/derin/inceleme modelini otomatik seçer. |
ahiCode.fastModel |
boş | Basit görevler için model kimliği (yönlendirme açıkken). |
ahiCode.deepModel |
boş | Karmaşık görevler için akıl yürütme modeli kimliği. |
ahiCode.reviewModel |
boş | Kod inceleme görevleri için bağımsız model kimliği. |
ahiCode.autoAcceptTerms |
false |
EVREN kullanım koşullarını kullanıcı adına otomatik kabul eder. |
ahiCode.sandboxMode |
none |
none (ana makine) veya docker (yalıtılmış komut). |
ahiCode.sandboxImage |
node:20-bookworm |
Docker yalıtımında kullanılacak imaj. |
ahiCode.sandboxNetwork |
false |
Docker kapsayıcısına ağ erişimi verir. |
ahiCode.knowledgeEmbeddings |
false |
Bilgi tabanı aramasında yerel anlamsal eşleştirme (Ollama) kullanır. |
ahiCode.embeddingModel |
nomic-embed-text |
Anlamsal arama için Ollama embedding modeli. |
ahiCode.callGraphEnabled |
true |
Fonksiyon çağrı haritasını üretir. Kapalıyken araçlar "kapalı" cevabı verir. |
Bu değerler arayüzdeki Ayarlar ekranıyla senkronize edilir.
Bütçe ve adım kontrolü: Harcama kontrolü adım sınırı (
maxStepsPerTask) ve otonomi devam limiti (MAX_AUTO_CONTINUATIONS) ile sağlanır. Arayüzde kullanılan token miktarı gösterilir. Tasarruf için Token ekonomisi bölümüne bakın.
Otomatik izinler
| Ayar | Varsayılan | Etki |
|---|---|---|
| Dosya okuma/arama | Açık | Okuma araçları onay istemez. |
| Dosya yazma/düzenleme | Kapalı | Diff gösterilir ve onay beklenir. |
| Terminal komutları, testler ve lint | Kapalı | Komut çalıştırılmadan önce onay istenir. |
Bu seçenekler AhiCode Ayarları ekranından değiştirilebilir ve Kaydet ile uygulanır. Projedeki .ahi/permissions.json dosyası bu varsayılanları yalnızca daraltabilir: kullanıcının kapalı tuttuğu otomatik onayı açamaz (ayrıntı: İzinler ve denetim). Zincirli komutlar ve riskli komut örüntüleri otomatik onay ayarından bağımsız olarak ayrıca onaylanır veya engellenir.
Projeye özel yapılandırma
AGENTS.md
Kök dizinde AGENTS.md, agent.md veya .agents.md varsa içeriği her göreve sistem prompt'u olarak eklenir.
Büyük dosyalar bağlam bütçesi için otomatik kısaltılır.
Beceriler (.agents/skills/)
Beceriler ayrı klasörlerde değil, doğrudan .agents/skills/ altında .md dosyaları olarak tutulur:
.agents/skills/code-quality.md
.agents/skills/api-tasarimi.md
Beceri Markdown frontmatter örneği:
---
name: code-quality
description: Temiz kod ve refactoring standartları
---
# Kod Kalitesi
1. Açıklayıcı isimlendirme kullan.
2. Tek sorumluluk ilkesine uy.
Ajan read_skill aracıyla tam talimatı okur.
Proje hafızası (.ahi/memory.md)
AhiCode, tamamlanan her görevi otomatik olarak .ahi/memory.md dosyasına kaydeder:
## 2026-10-21T01:23:45.678Z · Kodlama · completed
<!-- task:session_123:msg_456 -->
- **Görev:** Login hatasını düzelt
- **Değişen dosyalar:** `src/auth.ts`
- **Sonuç:** Hata yönetimi güncellendi ve testler geçti.
- Dosya insan tarafından okunabilir ve elle düzenlenebilir.
- Ajan her yeni görevde son kayıtları sistem prompt'una alır; aynı işi tekrar yapmaz ve önceki kararlarla çelişmez.
- En fazla 80 kayıt / 64 KB tutulur; eski kayıtlar otomatik budanır.
- Ajanlar ekranındaki Proje Hafızası kartından açılabilir veya temizlenebilir.
- Varsayılan olarak
.gitignoreiçindedir; proje ekibiyle paylaşmak isterseniz kaldırabilirsiniz.
Özel alt ajanlar (.agents/agents/)
Özel ve özelleştirilmiş alt ajanlar ayrı klasörlerde değil, doğrudan .agents/agents/ altında .md dosyaları olarak tutulur:
.agents/agents/devops-engineer.md
.agents/agents/architect.md
---
name: devops-engineer
role: devops
description: Docker ve CI/CD uzmanı
tools: read_file, list_directory, search_files, read_skill, write_file, edit_file, execute_command
---
Sen bu projenin DevOps uzmanısın...
toolsbelirtilmezse özel ajan varsayılan olarak salt-okunur araçlarla çalışır.- Özel ajanlar da
.ahi/permissions.jsondeny kurallarına tabidir. - Tüm alt ajan araç çağrıları audit günlüğüne yazılır.
Yerleşik ajanlar:
| Ajan | Görev |
|---|---|
architect |
Mimari analiz ve uygulama planı |
coder |
Kod üretimi ve refactoring |
tester |
Test çalıştırma ve hata çözme |
reviewer |
Kod kalitesi ve güvenlik denetimi |
MCP sunucuları
Desteklenen yapılandırma dosyaları (öncelik sırasıyla):
.ahi/mcp_config.jsonmcp_config.json.mcp.json
stdio sunucu örneği
{
"mcpServers": {
"sqlite": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-sqlite", "./data.db"]
}
}
}
HTTP / SSE sunucu örneği
{
"mcpServers": {
"uzak-sunucu": {
"type": "http",
"url": "https://example.com/mcp"
}
}
}
Özellikler:
- Sunucular paralel başlatılır ve oturum boyunca önbelleklenir.
- stdio sunucuları workspace kökünde (
cwd) çalışır. - Ortam değişkenleri: stdio sunucularına miras kalan ortam sırları (API anahtarı, token, şifre görünümlü değişkenler) geçirilmez; yalnızca
PATH,HOME,NODE_*gibi güvenli değerler korunur. Bir sunucuya anahtar gerekiyorsa yapılandırmadakienvalanıyla açıkça verin:"env": { "API_KEY": "..." }. Mcp-Session-Idve SSE yanıtları desteklenir.tools/listsayfalaması (nextCursor) işlenir.- Bağlantı koparsa üstel geri çekilmeyle yeniden bağlanılır.
- Workspace güvenilir değilse MCP sunucuları başlatılmaz.
MCP sunucuları repo tarafından tanımlanan komutları çalıştırabilir. Yalnızca güvendiğiniz workspace'lerde kullanın.
İzinler ve denetim
.ahi/permissions.json
{
"allow": {
"readFiles": ["**/*"],
"writeFiles": ["src/**/*", "tests/**/*"],
"commands": ["npm test*", "npm run build*", "git status*", "git diff*"]
},
"deny": {
"readFiles": ["secret/**/*"],
"writeFiles": [".env*", "**/*.pem", "**/*.key", "package-lock.json"],
"commands": ["git push*", "rm -rf /*", "mkfs*"]
},
"autoApprove": {
"readFiles": true,
"writeFiles": false,
"executeCommands": false
}
}
Öncelik: deny > global auto-approve anahtarı (proje dosyası yalnızca kapatabilir) > allow filtresi.
- Yollar workspace'e göre normalize edilir;
./secret/xve mutlak workspace yolları aynı kurala yakalanır. autoApproveglobal ayarı ana anahtardır: kapalıysa proje dosyasındakiallowlisteleri onay istemeyi kaldıramaz. Açıksaallowlisteleri hangi yolların/komutların otomatik onaylanacağını daraltır; listede olmayan hedef yeniden onay ister.allow.commandsyalnızca zincirlenmemiş ve risk politikasındasafesayılan komutlarda etkilidir..env,*.pem,*.key,*.p12,*.pfx,id_rsa,.git/**,.ahi/hooks.json,.ahi/mcp_config.json,.ahi/permissions.json,AGENTS.mdve.agents/**varsayılan olarak yazmaya kapalıdır.- Bozuk izin dosyası yazma/komut işlemlerini otomatik onaya kapatır.
[!WARNING] Proje izin dosyası global
autoApprovebayraklarını genişletemez. Deponun içinden gelen.ahi/permissions.jsondosyası, kullanıcı terminal komutlarını elle onaylıyorsaexecuteCommands: trueyazarak bu onayı atlayamaz. Ayrıca:
*,**ve**/*gibi joker desenler yazma/komut otomatik onayında yok sayılır.- Güvenilmeyen (untrusted) workspace'te proje dosyasındaki
allowveautoApproveyok sayılır; yalnızca sizin global ayarlarınız iledeny/ hassas dosya koruması geçerli olur.- Güvenilir workspace'te
allowlisteleri yalnızca filtredir: global anahtar açıkken listelenen yolları otomatik bırakır, liste dışını yine onaya gönderir. Anahtar kapalıyken hiçbir şeyi otomatikleştirmez..ahi/hooks.jsoniçindeki komutlar, MCP yapılandırması gibi parmak izi (fingerprint) tabanlı kullanıcı onayı ister; dosya her değiştiğinde yeniden sorulur.- Güven sınırı dosya ve komut araçları içindir.
web_fetch, MCP çıktıları ve depo dosyaları modele "güvenilmez veri" olarak girer; bu içeriklerdeki talimatlar kullanıcı talimatı sayılmamalıdır. Model bu içerikten etkilenip yazma/komut önerirse yine onay akışı devreye girer.
Denetim günlüğü
.ahi/audit.log dosyasına her araç kararı JSONL olarak, hash zinciriyle yazılır:
{
"timestamp": "2026-10-24T12:34:56.789Z",
"decision": "completed",
"tool": "edit_file",
"args": "{\"path\":\"src/app.ts\"}",
"prevHash": "…",
"hash": "…"
}
- API anahtarları, dosya içerikleri ve replacement metinleri redakte edilir.
- Ana ajan ve alt ajan araç çağrıları kaydedilir.
- Her kayıt bir öncekinin
hashdeğeriniprevHasholarak taşır. Bir kaydı değiştirmek veya aradan silmek zinciri kırar.
Zinciri doğrulamak için:
npm run audit:verify -- --workspace .
- Değiştirilmiş kayıt varsa
Hash mismatch, silinmiş/sıralanmış kayıt varsaChain breakhatası verir ve bozuk satırın numarasını yazar.--workspaceverilmezse geçerli dizin kullanılır. - Eski (hash'siz, sekmeyle ayrılmış) kayıtlar atlanır ve kaç tanesinin atlandığı bildirilir.
- Bu zincir bir imza değildir: makineyi tamamen ele geçiren biri zinciri baştan hesaplayabilir.
Koruması, günlüğün kopyalanması veya önceden kaydedilmiş bir
head hashile karşılaştırılması durumunda belirginleşir.
Hook'lar
.ahi/hooks.json:
{
"hooks": [
{
"lifecycle": "PreToolUse",
"toolMatcher": "write_file|edit_file",
"command": "npm run lint"
},
{
"lifecycle": "Stop",
"command": "echo 'Görev tamamlandı'"
}
]
}
Desteklenen yaşam döngüleri: PreToolUse, PostToolUse, Stop.
- Hook komutları workspace güvenilir değilse çalıştırılmaz.
- Komutlar workspace kökünde ve 15 saniye zaman aşımıyla çalışır.
- Hatalı
toolMatcherdesenleri ajan döngüsünü kilitlemez.
Güvenlik modeli
| Katman | Koruma |
|---|---|
| Path jail | Workspace dışına dosya erişimi engellenir; symlink kaçışı kontrol edilir. |
| Hassas dosyalar | .env, anahtarlar, sertifikalar ve .git içeriği varsayılan korumalı. |
| Komut güvenliği | Merkezî risk politikası: engellenen, riskli ve güvenli komutlar; riskli komutlar otomatik onaydan bağımsız olarak her zaman açık onay ister. |
| Gerçek iptal | Model istekleri AbortController; terminal komutları SIGTERM/SIGKILL. |
| Plan modu kilidi | Yazma/komut araçları hem modele sunulmaz hem yürütmede reddedilir. |
| Subagent izolasyonu | Rol bazlı araç allowlist'i, salt-okunur varsayılan ve deny kuralları. |
| SecretStorage | API anahtarları şifreli saklanır, UI'ya maskeli gönderilir. |
| CSP | Webview yalnızca eklenti kaynaklarına izin verir. |
| Workspace Trust | Güvenilmeyen workspace'te MCP ve hook komutları çalışmaz. |
| Audit | Kritik araç kararları redakte edilerek günlüğe yazılır. |
| Proje izin sınırı | .ahi/permissions.json yalnızca kısıtlar; global otomatik onayı genişletemez, joker desenler yok sayılır. |
| Güven sınırı | Web/MCP/depo içeriği güvenilmez veridir; yazma ve komut yine onay ister. |
Yine de otonom bir ajanın dosya ve komut çalıştırma yetkisi olduğunu unutmayın. Kritik depolarda önce yedek alın,
autoApprove seçeneklerini kapalı tutun ve izin dosyasını kullanın.
Komut risk politikası
Komutlar tek bir merkezî politikayla (src/shared/commandPolicy.ts) üç sınıfa ayrılır:
| Sınıf | Örnekler | Davranış |
|---|---|---|
| Engellenen | rm -rf /, sudo, mkfs, dd of=/dev/..., git push --force, git clean (dry-run hariç), curl ... \ | sh, DROP TABLE, fork bomb |
Hiçbir onayla çalıştırılmaz. |
| Riskli | rm, git reset --hard, git checkout --, sed -i, find -delete, npm install, node -e, yönlendirme (>), zincirleme (&&, ;, \ | ) |
Otomatik onay açık olsa ve proje allowlist'inde yer alsa bile her zaman açık onay ister. |
| Güvenli | npm test, npm run lint, npm run build, git status, git diff |
Normal izin kurallarına tabidir. |
Allowlist mantığı ve sezgisel yaklaşım: Politika allowlist tabanlı bir regex sezgiselidir: Yalnızca bilinen güvenli kalıplar otomatikleşebilir; listede yer almayan yeni araçlar, bilinmeyen komutlar veya kabuk metakarakteri içeren her çağrı varsayılan olarak riskli sınıfına düşer ve kullanıcı onayı ister. Bu katman karmaşık kabuk syntax hilelerine karşı tam bir kabuk ayrıştırıcısı (AST/tokenizer) değildir; güvenilmeyen projelerde tam yalıtım için Docker sandbox kullanılmalıdır.
[!TIP] Dev Containers Alternatifi: Eklenti içi Docker sandbox kullanmak istemiyorsanız, projeyi VS Code'un resmi Dev Containers uzantısıyla doğrudan bir konteyner içinde açabilirsiniz. Böylece ajanın çalıştırdığı tüm komutlar ve araçlar ana makinenizden tamamen yalıtılmış olur.
[!IMPORTANT] Geri alma (undo) kapsamı
Ne değişti Geri alma yöntemi write_file/edit_fileDosya snapshot'ı ve tur checkpoint'i (her zaman) execute_command/run_testsGit kontrol noktası: komut öncesi HEADkaydedilirKomut geri alma yalnızca çalışma ağacı temiz ve klasör bir Git deposu olduğunda kaydedilir. Kirli ağaçta bilinçli olarak devre dışıdır: kullanıcının commit edilmemiş işini silmek, geri alma sağlamaktan daha kötüdür. Bu durumda araç kartında geri alma düğmesi çıkmaz.
Kapsam dışı: Git deposu olmayan klasörlerde çalıştırılan komutlar, Docker sandbox dışına yazan işlemler ve ağ üzerinden yapılan değişiklikler (ör. uzak veritabanı migrasyonu).
Mimari ve Geliştirici Kılavuzu
AhiCode'un iç modül hiyerarşisi, ReAct veri akışı, teknoloji yığını, UI tasarım sistemi ve 550+ testlik kalite kapıları hakkında kapsamlı teknik bilgi için docs/ARCHITECTURE.md belgesini inceleyebilirsiniz.
VS Code entegrasyonu
- Komut Paleti (
Ctrl+Shift+P/Cmd+Shift+P):AhiCode: Sohbeti Aç(ahi-code.openSidebar): İkincil kenar çubuğundaki AhiCode asistanını açar ve odaklar.AhiCode: Yeni Görev Başlat(ahi-code.newTask): Arayüzü açar ve temiz bir görev oturumu başlatır.
- Terminal: ajan komutları
AhiCodeadlı tümleşik terminalde görünür şekilde çalışır (ahiCode.useIntegratedTerminal, varsayılan açık). Çıktı ve çıkış kodu shell integration ile yakalanır ve modele iletilir; shell integration yoksa komut yine terminalde başlar ve durum bildirilir. Docker sandbox etkinken izolasyon önceliklidir. - Diff inceleme: "Değiştirilen dosyalar" ekranındaki Fark düğmesi, dosyanın en eski anlık görüntüsü ile güncel içeriğini VS Code diff görünümünde açar (git benzeri before/after). Araç adım kartlarındaki diff de aynı görünümü kullanır.
Sorun giderme
“API anahtarı girilmedi” hatası
Ayarlar ekranında doğru sağlayıcıyı seçtiğinizden ve anahtarın kaydedildiğinden emin olun. Anahtar maskeli görünüyorsa kayıtlıdır; tekrar yazmanız gerekmez.
Model listesi gelmiyor
- OpenRouter için internet bağlantısını kontrol edin.
- Ollama için
ollama serveçalıştığından emin olun. .ahiveya ağ proxy ayarlarınızı kontrol edin.
Onay kartı görünmüyor
- İşlem
autoApproveile otomatik onaylanmış olabilir. waiting_approvaldurumunda araç kartı otomatik açılır.- Onay mesajlarının bağlı olduğundan emin olmak için arayüzü yenileyin.
MCP sunucusu bağlanmıyor
- Workspace'in güvenilir olduğundan emin olun (Workspace Trust).
command,argsve göreli yolların workspace köküne göre olduğunu kontrol edin.- Sunucunun stderr çıktısını VS Code Developer Tools konsolunda inceleyin.
- Değişiklikten sonra MCP ekranındaki yenile düğmesine basın.
Ajan plan modunda dosya değiştirmiyor
Bu beklenen davranıştır. Planlama modu salt-okunur çalışır. Kodlama moduna geçin.
Komut iptal edilmiyor
Güncel sürümde terminal komutları iptal sinyaliyle sonlandırılır. Uzun süren alt süreçler için Durdur düğmesini kullanın; MCP araç çağrıları kendi zaman aşımına sahiptir.
Destek ve geri bildirim
- Hata bildirmek veya özellik istemek için GitHub Issues sayfasını kullanın.
- Bildirime VS Code ve AhiCode sürümünü, işletim sistemini, seçili sağlayıcıyı ve hatayı yeniden üretme adımlarını ekleyin.
- API anahtarlarını, erişim belirteçlerini, özel kaynak kodunu veya kişisel verileri issue içeriğine ve ekran görüntülerine eklemeyin.
- Marketplace yayını tamamlandığında kurulum ve sürüm bilgileri bu README'de güncellenecektir.
Bilinen sınırlar
Güvenlik sertleştirme
- Docker sandbox varsayılan olarak kapalı. "Strict" mod eklenmedi: riskli komutlar yalnızca sandbox içinde çalışsın seçeneği planlanıyor.
- Denetim günlüğü hash zinciriyle kurcalamaya karşı kanıt üretir, ama makineyi ele geçiren biri zinciri baştan hesaplayabilir. Baş hash'in workspace dışında saklanması planlanıyor.
- Komut risk desenleri sezgiseldir; sert sınır yalnızca sandbox'tır.
Editör deneyimi
- Satır içi düzenleme (Cmd/Ctrl+K), seçim komutları (açıkla/düzelt/test) ve Problems paneli entegrasyonu yok.
- Görsel girdi (ekran görüntüsü, PDF) yok.
- Kod Görünümü ekranı yok; diff, "neden" açıklaması ve kabul kriteri eşlemesi sohbet kartlarında gösteriliyor.
Bağlam ve oturumlar
- Bağlam için model tabanlı konuşma özetlemesi yok (kırpma/compaction kullanılır); ancak bilgi tabanındaki dosya özetleri modelle üretilir (tur başına en fazla 3).
- Kabul kriterleri doğrulama sonuçlarından otomatik işaretlenmiyor.
- Oturum yeniden adlandırma ve dallandırma yok; oturumlar
workspaceStateiçinde tutuluyor. - Anlamsal arama isteğe bağlıdır ve Ollama'da bir embedding modeli gerektirir
(
ahiCode.knowledgeEmbeddings); kapalıyken alt dize aramasına düşer.
Çağrı haritası
- Çağrılar referans tabanlı çıkarılır; dinamik çağrılar, geri çağrılar, bağımlılık enjeksiyonu, ada göre çağırma ve yansıma haritada görünmez.
- Çağrı hiyerarşisini desteklemeyen dil sunucularında o dil için harita üretilmez
(
skippedolarak raporlanır). - Yalıtılmış worktree'de çalışan alt ajan ana haritayı salt-okunur görür; worktree'deki değişiklikler o haritaya yansımaz.
- Etki alanı 50 düğümü geçerse sonuç özetlenir.
Platform ve dağıtım
- Paralel alt ajan çalıştırma vardır (en fazla 4); buna karşılık tek bir turdaki araç çağrıları sırayla yürütülür.
- MCP
resources/*veprompts/*desteği yok; sunucu başına araç allowlist'i yok. - Uzun ömürlü SSE transportu yok.
- Komutların dosya etkileri, temiz Git ağacında alınan kontrol noktasından geri alınabilir; depo dışı veya kirli ağaçta bu garanti yoktur.
- Alt ajanlar onay gerektiren işlemi kendileri yapamaz; ana ajanın onay akışına devretmek zorundadır.
- Çoklu kök workspace için tam kök seçici arayüzü yok.
- Yerel Anthropic/Gemini/Azure adaptörleri yok (OpenRouter ve OpenAI uyumlu uç nokta kısmen kapsar).
- Arayüz yalnızca Türkçe; İngilizce yerelleştirme yok.
- Windows'a özel komut yürütme testleri yok.
- Yayımlanmış Marketplace listesi ve ekran görüntüleri/GIF yok.
- Genel amaçlı plugin SDK'sı, yerel HTTP sunucusu veya istemci SDK'sı yok.
Bilinen davranışlar:
- Snapshot ve checkpoint'ler
.ahi/snapshots/ve.ahi/checkpoints/altında kalıcıdır. - Proje hafızası
.ahi/memory.mdve.ahi/memory.jsonldosyalarında kalıcıdır. - Oturum geçmişi
workspaceStateiçinde saklanır;globalStatekullanılmaz. - Oturumlar JSON arşivi olarak dışa aktarılıp yeniden içe aktarılabilir. Markdown çıktısı yalnızca
okuma/paylaşma amaçlıdır. İçe aktarılan oturum her zaman
idlebaşlar, bekleyen araç çağrıları iptal edilmiş sayılır ve mevcut bir oturumun üzerine yazılmaz. @dosyabahsetme, aktif dosya ve seçili kod bağlamı sistem prompt'una eklenir.- Çoklu kökte her kökün snapshot/checkpoint yöneticisi ayrı tutulur.
- Headless kullanım için
npm run clivedist/cli.jsmevcuttur. - Ağ istekleri varsayılan 20 saniye zaman aşımına sahiptir (model istekleri 120 saniye).
Katkı
- Depoyu fork'layın.
- Yeni bir dal açın:
git checkout -b ozellik/yeni-ozellik - Değişikliklerinizi yapın.
npm run typecheck && npm run lint && npm test && npm run buildçalıştırın.- Anlamlı bir commit mesajıyla PR açın.
Ayrıntılı geliştirme kuralları için CONTRIBUTING.tr.md (İngilizce: CONTRIBUTING.md), güvenlik açığı bildirimi için SECURITY.tr.md (İngilizce: SECURITY.md) dosyalarına bakın. Güvenlik açıklarını genel issue olarak açmayın.
İletişim: Yusuf BEKAR — ybekar@msn.com
Katkı sağlarken:
- TypeScript strict moduna uyun.
- Yeni araçlar için path safety ve izin kontrollerini unutmayın.
- Kullanıcıya görünen metinleri Türkçe tutun.
- Güvenlik davranışını değiştiren PR'larda test ekleyin.
Lisans
MIT © 2026 Yusuf BEKAR · ybekar@msn.com
AhiCode — Yusuf BEKAR tarafından geliştirilen bağımsız, açık kaynak yazılım geliştirme ajanı.