Cogu kisi Claude Code’u bir yardimci olarak kullaniyor — siz yaziyorsunuz, o yanit veriyor, ileri geri iletisim kuruyorsunuz. Ancak Claude ayni zamanda projenize gomulu bir ajan da olabilir. Gece saat 2’de her PR’i inceleyen bir script. Haftalik bagimliliklari denetleyen bir cron job. Kod gonderilmeden once guvenlik sorunlarini yakalayan bir CI adimi. Dongude insan yok, acik terminal yok.
claude -p bayragi (kisaltmasi --print) bunu mumkun kilar. Claude’u etkilesimli olmayan modda calistirir — terminal arayuzu yok, sadece girdi olarak bir istem ve cikti olarak yapilandirilmis veri. Scriptleriniz onu cagirir, JSON’u ayristirir ve sonuclara gore hareket eder. Bu, Claude’u konustugu bir aractan sizin icin calisan bir ajana donusturmenin temelidir.
Hook, plugin, MCP sunuculari ve CLAUDE.md otomatik kesfini atlamak icin —bare ekleyin. Bu, scriptlerinizi daha hizli, daha tasinabilir ve yerel yapilandirmaya daha az bagimli kilar. Anthropic, tum scriptli cagrilar icin —bare oneriyor — gelecek bir surumde -p icin varsayilan olacak.
Metin Cikti Modu
Claude’u terminalden cagirmanin en basit yolu:
$ claude -p "What is the capital of France?"Paris is the capital of France.Meta veri yok, JSON yok — sadece result alani duz metin olarak. Bu, -p kullandiginizda varsayilan cikti formatidir ve hizli sorular veya bir yaniti dogrudan baska bir komuta yonlendirmek icin idealdir.
Ancak otomasyon icin yanittan daha fazlasina ihtiyaciniz var. session_id, token sayilari, maliyet ve durma nedeni gerekiyor. Yapilandirilmis cikti burada devreye girer.
JSON Cikti Modu
Tam yanit zarfini almak icin --output-format json ekleyin:
$ claude -p "Say exactly: Hello CLI Test" --output-format jsonHer JSON yaniti, asil cevabi tipli bir zarfin icine sarar — hem sonucu hem de meta veriyi iceren yapilandirilmis bir JSON nesnesi. result alani, metin modunda gorecegi ayni metni icerir, ancak simdi ayristirabilecegi, kaydedebileceginiz ve islem yapabileceginiz meta verilerle birlikte gelir. Bu, herhangi bir otomasyon calismasi icin onerdigimiz baslangic noktasidir.
JSON Zarfi
Ust Duzey Alanlar
| Alan | Tip | Aciklama |
|---|---|---|
type | string | Tamamlanmis bir yanit icin her zaman “result” |
subtype | string | ”success” veya maliyet limiti asildiginda “error_max_budget_usd” |
is_error | boolean | Basarili olursa false — her yanit isleyicisinde bunu ilk kontrol edin |
duration_ms | number | Arac yurutmesi dahil toplam gecen sure |
result | string | Metin yaniti, metin modunun dondurdugu ile ayni |
stop_reason | string | Claude dogal olarak bitirdiginde “end_turn”, kesildiginde “max_tokens” |
session_id | string | Bu konusma icin UUID — daha sonra devam etmek icin —resume’a iletin |
total_cost_usd | number | Bu tek cagri icin USD cinsinden maliyet |
usage | object | Token dokumu: input_tokens, cache_creation_input_tokens, cache_read_input_tokens, output_tokens |
permission_denials | array | Izin sistemi tarafindan engellenen araclar — hicbir sey reddedilmediyse bos |
total_cost_usd alani bu tek cagri icin maliyettir, kumulatif bir toplam degildir. Devam ettirilen bir oturumda her yanit yalnizca kendi maliyetini raporlar. Tum konusma boyunca harcamayi takip etmeniz gerekiyorsa, zincirdeki her cagridaki total_cost_usd degerlerini toplayin.
Komut satirinda hizli ayristirma icin JSON ciktisini jq’ya yonlendirin:
claude -p ”…” —output-format json | jq ‘.result’
jq’yu brew install jq (macOS), apt install jq (Ubuntu) ile yukleyin veya diger platformlar icin jqlang.org’u ziyaret edin.
Ilk JSON cagrinizi yapin ve maliyeti cikartin:
claude -p “What is 2+2?” —output-format json | jq ‘{answer: .result, cost: .total_cost_usd, session: .session_id}‘
Bu session_id’yi kaydedin — Oturumlar bolumunde bu konusmayi devam ettirmek icin kullanacaksiniz.
Bir seyler ters giderse? jq: command not found gorurseniz, once jq’yu yukleyin. CLI takilirsa, claude config view ile API anahtarinizi kontrol edin. 401 hatasi alirseniz, yeniden kimlik dogrulamasi icin claude login calistirin.
Stream-JSON Onizlemesi
Gercek zamanli ciktiya ihtiyac duydugunuzda — bir daktilo arayuzu, bir ilerleme gostergesi veya uzun sureli bir ajan hatti icin — ucuncu bir format vardir: stream-json.
$ claude -p "Say exactly: Hello CLI Test" --output-format stream-json --verboseBu, gercek zamanli olarak NDJSON (satir bazinda ayrilmis JSON) olaylari yayar, her satirda bir JSON nesnesi. Her satirda olayin turunu belirten bir type alani bulunur: baslangic meta verileri icin system, metin yanitlari icin assistant, API durumu icin rate_limit_event ve son zarf icin result.
Akis protokolu, daktilo efektleri icin kismi mesajlarin nasil ayristirilacagi ve akis icinde arac kullanimi olaylarinin nasil ele alinacagi dahil olmak uzere Akis Protokolu bolumunde ayrintili olarak ele alinmaktadir.
Bu bayraklari etkilesimli olarak kesfetmek ister misiniz? Asagidaki kesif araci, cikti formatlari arasinda gecis yapmanizi ve her bayragin ne yaptigini gormenizi saglar:
claude -p “Hello” —output-format json | jq ‘{cost: .total_cost_usd, session: .session_id}’ komutunu calistirin. Artik her cagri icin maliyet ve session_id biliyorsunuz. Farkli bir soru yonlendirmeyi deneyin ve maliyetleri karsilastirin — onemsiz istemler bile sistem istemi onbelleginden bir minimum maliyete sahiptir.