Çalışma alanında kabuk komutları çalıştırın.Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
exec, değişiklik yapabilen bir kabuk yüzeyidir: komutlar, seçilen host veya sandbox dosya sistemi izin verdiği her yerde dosya oluşturabilir, düzenleyebilir veya silebilir. write, edit veya apply_patch gibi OpenClaw dosya sistemi araçlarını devre dışı bırakmak exec aracını salt okunur yapmaz.
process aracılığıyla ön plan + arka plan yürütmesini destekler. process izinli değilse, exec eşzamanlı çalışır ve yieldMs/background değerlerini yok sayar.
Arka plan oturumları agent başına kapsamlanır; process yalnızca aynı agent içindeki oturumları görür.
Parametreler
Çalıştırılacak kabuk komutu.
Komut için çalışma dizini.
Devralınan ortamın üzerine birleştirilen anahtar/değer ortam geçersiz kılmaları.
Bu gecikmeden sonra komutu otomatik olarak arka plana alır (ms).
yieldMs beklemek yerine komutu hemen arka plana alır.Bu çağrı için yapılandırılmış exec zaman aşımını geçersiz kılar.
timeout: 0 değerini yalnızca komut exec işlem zaman aşımı olmadan çalışmalıysa ayarlayın.Mevcut olduğunda sözde terminalde çalıştırır. Yalnızca TTY ile çalışan CLI’ler, kodlama agent’ları ve terminal kullanıcı arayüzleri için kullanın.
Nerede yürütüleceği.
auto, sandbox çalışma zamanı etkin olduğunda sandbox, aksi halde gateway olarak çözümlenir.Normal araç çağrıları için yok sayılır.
gateway / node güvenliği
tools.exec.security ve ~/.openclaw/exec-approvals.json tarafından denetlenir; yükseltilmiş mod
yalnızca operatör açıkça yükseltilmiş erişim verdiğinde security=full zorlayabilir.gateway / node yürütmesi için onay istemi davranışı.host=node olduğunda Node kimliği/adı.Yükseltilmiş mod ister — sandbox’tan yapılandırılmış host yoluna çıkar.
security=full yalnızca elevated full olarak çözümlendiğinde zorlanır.hostvarsayılan olarakautoolur: oturum için sandbox çalışma zamanı etkinse sandbox, aksi halde gateway.hostyalnızcaauto,sandbox,gatewayveyanodekabul eder. Bir hostname seçici değildir; hostname benzeri değerler komut çalışmadan önce reddedilir.autovarsayılan yönlendirme stratejisidir, joker karakter değildir.autoiçinden çağrı başınahost=nodeizinlidir; çağrı başınahost=gatewayyalnızca etkin sandbox çalışma zamanı yoksa izinlidir.- Ek yapılandırma olmadan
host=autoyine de “kendiliğinden çalışır”: sandbox yoksagatewayolarak çözümlenir; canlı sandbox varsa sandbox’ta kalır. elevated, sandbox’tan yapılandırılmış host yoluna çıkar: varsayılan olarakgateway, ya datools.exec.host=nodeolduğunda (veya oturum varsayılanıhost=nodeise)node. Yalnızca geçerli oturum/provider için yükseltilmiş erişim etkin olduğunda kullanılabilir.gateway/nodeonayları~/.openclaw/exec-approvals.jsontarafından denetlenir.node, eşlenmiş bir node gerektirir (companion app veya headless node host).- Birden fazla node varsa, birini seçmek için
exec.nodeveyatools.exec.nodeayarlayın. exec host=node, node’lar için tek kabuk yürütme yoludur; eskinodes.runsarmalayıcısı kaldırılmıştır.timeout, ön plan, arka plan,yieldMs, gateway, sandbox ve nodesystem.runyürütmesi için geçerlidir. Atlanırsa OpenClawtools.exec.timeoutSeckullanır; açıktimeout: 0, bu çağrı için exec işlem zaman aşımını devre dışı bırakır.- Windows olmayan host’larda exec, ayarlı olduğunda
SHELLkullanır;SHELLfishise fish ile uyumsuz betiklerden kaçınmak içinPATHüzerindenbash(veyash) tercih eder, ardından ikisi de yoksaSHELLdeğerine geri döner. - Windows host’larda exec, PowerShell 7 (
pwsh) keşfini tercih eder (Program Files, ProgramW6432, ardından PATH), sonra Windows PowerShell 5.1’e geri döner. - Host yürütmesi (
gateway/node), ikili dosya ele geçirmeyi veya enjekte edilmiş kodu önlemek içinenv.PATHve loader geçersiz kılmalarını (LD_*/DYLD_*) reddeder. - OpenClaw, kabuk/profil kurallarının exec aracı bağlamını algılayabilmesi için başlatılan komut ortamında (PTY ve sandbox yürütmesi dahil)
OPENCLAW_SHELL=execayarlar. openclaw channels login, etkileşimli bir kanal kimlik doğrulama akışı olduğu içinexeciçinden engellenir; bunu Gateway host üzerinde bir terminalde çalıştırın veya mevcut olduğunda sohbetten kanala özgü giriş aracını kullanın.- Önemli: sandbox varsayılan olarak kapalıdır. Sandbox kapalıysa, örtük
host=autogatewayolarak çözümlenir. Açıkhost=sandboxise sessizce gateway host üzerinde çalışmak yerine kapalı durumda başarısız olur. Sandbox’ı etkinleştirin veya onaylarlahost=gatewaykullanın. - Betik ön kontrol denetimleri (yaygın Python/Node kabuk sözdizimi hataları için) yalnızca etkili
workdirsınırı içindeki dosyaları inceler. Bir betik yoluworkdirdışında çözümlenirse, o dosya için ön kontrol atlanır. - Şimdi başlayan uzun süreli işlerde, işi bir kez başlatın ve etkin olduğunda komut çıktı ürettiğinde veya başarısız olduğunda otomatik tamamlama uyandırmasına güvenin.
Günlükler, durum, girdi veya müdahale için
processkullanın; uyku döngüleri, zaman aşımı döngüleri veya tekrarlanan yoklama ile zamanlamayı taklit etmeyin. - Daha sonra veya bir takvime göre yapılması gereken işler için
execuyku/gecikme desenleri yerine cron kullanın.
Yapılandırma
tools.exec.notifyOnExit(varsayılan: true): true olduğunda, arka plana alınmış exec oturumları çıkışta bir sistem olayı kuyruğa alır ve Heartbeat ister.tools.exec.approvalRunningNoticeMs(varsayılan: 10000): onay kapılı bir exec bundan daha uzun çalıştığında tek bir “çalışıyor” bildirimi yayımlar (0 devre dışı bırakır).tools.exec.timeoutSec(varsayılan: 1800): saniye cinsinden varsayılan komut başına exec zaman aşımı. Çağrı başınatimeoutbunu geçersiz kılar; çağrı başınatimeout: 0exec işlem zaman aşımını devre dışı bırakır.tools.exec.host(varsayılan:auto; sandbox çalışma zamanı etkin olduğundasandbox, aksi haldegatewayolarak çözümlenir)tools.exec.security(varsayılan: sandbox içindeny, ayarlanmamışsa gateway + node içinfull)tools.exec.ask(varsayılan:off)- Onaysız host exec, gateway + node için varsayılandır. Onay/allowlist davranışı istiyorsanız hem
tools.exec.*hem de host~/.openclaw/exec-approvals.jsondeğerlerini sıkılaştırın; bkz. Exec onayları. - YOLO,
host=autodeğerinden değil, host policy varsayılanlarından (security=full,ask=off) gelir. Gateway veya node yönlendirmesini zorlamak istiyorsanıztools.exec.hostayarlayın ya da/exec host=...kullanın. security=fullartıask=offmodunda host exec, yapılandırılmış policy’yi doğrudan izler; ek bir sezgisel komut gizleme ön filtresi veya betik ön kontrol reddi katmanı yoktur.tools.exec.node(varsayılan: ayarlanmamış)tools.exec.strictInlineEval(varsayılan: false): true olduğunda,python -c,node -e,ruby -e,perl -e,php -r,lua -eveosascript -egibi satır içi yorumlayıcı eval biçimleri her zaman açık onay gerektirir.allow-alwaysiyi huylu yorumlayıcı/betik çağrılarını yine kalıcı hale getirebilir, ancak satır içi eval biçimleri her seferinde yine istem gösterir.tools.exec.commandHighlighting(varsayılan: false): true olduğunda, onay istemleri komut metninde ayrıştırıcıdan türetilmiş komut aralıklarını vurgulayabilir. Exec onay policy’sini değiştirmeden komut metni vurgulamayı etkinleştirmek için genel olarak veya agent başınatrueolarak ayarlayın.tools.exec.pathPrepend: exec çalıştırmaları içinPATHbaşına eklenecek dizinlerin listesi (yalnızca gateway + sandbox).tools.exec.safeBins: açık allowlist girdileri olmadan çalışabilen, yalnızca stdin kullanan güvenli ikili dosyalar. Davranış ayrıntıları için bkz. Güvenli ikili dosyalar.tools.exec.safeBinTrustedDirs:safeBinsyol denetimleri için güvenilen ek açık dizinler.PATHgirdileri hiçbir zaman otomatik güvenilir sayılmaz. Yerleşik varsayılanlar/binve/usr/bindeğerleridir.tools.exec.safeBinProfiles: güvenli ikili dosya başına isteğe bağlı özel argv policy’si (minPositional,maxPositional,allowedValueFlags,deniedFlags).
PATH işleme
host=gateway: oturum açma kabuğunuzunPATHdeğerini exec ortamına birleştirir. Host yürütmesi içinenv.PATHgeçersiz kılmaları reddedilir. Daemon’ın kendisi yine de minimal birPATHile çalışır:- macOS:
/opt/homebrew/bin,/usr/local/bin,/usr/bin,/bin - Linux:
/usr/local/bin,/usr/bin,/bin
- macOS:
host=sandbox: container içindesh -lc(login shell) çalıştırır, bu yüzden/etc/profilePATHdeğerini sıfırlayabilir. OpenClaw, profil kaynaklandıktan sonra dahili bir env var üzerindenenv.PATHdeğerini başa ekler (kabuk enterpolasyonu yoktur);tools.exec.pathPrependburada da geçerlidir.host=node: yalnızca ilettiğiniz engellenmemiş env geçersiz kılmaları node’a gönderilir.env.PATHgeçersiz kılmaları host yürütmesi için reddedilir ve node host’ları tarafından yok sayılır. Bir node üzerinde ek PATH girdilerine ihtiyacınız varsa, node host servis ortamını (systemd/launchd) yapılandırın veya araçları standart konumlara kurun.
Oturum geçersiz kılmaları (/exec)
host, security, ask ve node için oturum başına varsayılanları ayarlamak üzere /exec kullanın.
Geçerli değerleri göstermek için /exec komutunu argümansız gönderin.
Örnek:
Yetkilendirme modeli
/exec yalnızca yetkili gönderenler için dikkate alınır (kanal allowlist’leri/eşleme artı commands.useAccessGroups).
Yalnızca oturum durumunu günceller ve config yazmaz. Exec’i kesin olarak devre dışı bırakmak için tool
policy üzerinden reddedin (tools.deny: ["exec"] veya agent başına). Açıkça security=full ve ask=off
ayarlamadıkça host onayları yine uygulanır.
Exec onayları (companion app / node host)
Sandbox içindeki agent’lar,exec gateway veya node host üzerinde çalışmadan önce istek başına onay gerektirebilir.
Policy, allowlist ve kullanıcı arayüzü akışı için bkz. Exec onayları.
Onaylar gerekli olduğunda, exec aracı hemen status: "approval-pending" ve bir onay kimliğiyle döner. Onaylandıktan (veya reddedildikten / zaman aşımına uğradıktan) sonra Gateway sistem olayları yayımlar (Exec finished / Exec denied). Komut tools.exec.approvalRunningNoticeMs sonrasında hâlâ çalışıyorsa, tek bir Exec running bildirimi yayımlanır.
Yerel onay kartları/düğmeleri olan kanallarda agent önce bu yerel kullanıcı arayüzüne güvenmeli ve yalnızca araç sonucu sohbet onaylarının kullanılamadığını veya manuel onayın tek yol olduğunu açıkça söylüyorsa manuel /approve komutu eklemelidir.
Allowlist + güvenli ikili dosyalar
Manuel allowlist uygulaması, çözümlenmiş ikili dosya yolu glob’ları ve çıplak komut adı glob’ları ile eşleşir. Çıplak adlar yalnızca PATH üzerinden çağrılan komutlarla eşleşir; bu nedenle komutrg olduğunda rg, /opt/homebrew/bin/rg ile eşleşebilir, ancak ./rg veya /tmp/rg ile eşleşmez.
security=allowlist olduğunda kabuk komutlarına yalnızca her pipeline segmenti allowlist’teyse veya güvenli bir ikili dosyaysa otomatik izin verilir. Zincirleme (;, &&, ||) ve yönlendirmeler, her üst düzey segment allowlist’i (güvenli ikili dosyalar dahil) karşılamadıkça allowlist modunda reddedilir. Yönlendirmeler desteklenmemeye devam eder.
Kalıcı allow-always güveni bu kuralı atlamaz: zincirlenmiş bir komut yine de her üst düzey segmentin eşleşmesini gerektirir.
autoAllowSkills, exec onaylarında ayrı bir kolaylık yoludur. Manuel yol allowlist girdileriyle aynı değildir. Kesin açık güven için autoAllowSkills devre dışı bırakılmış halde tutun.
İki denetimi farklı işler için kullanın:
tools.exec.safeBins: küçük, yalnızca stdin kullanan akış filtreleri.tools.exec.safeBinTrustedDirs: safe-bin yürütülebilir dosya yolları için açıkça belirtilmiş ek güvenilir dizinler.tools.exec.safeBinProfiles: özel safe bin’ler için açık argv politikası.- izin listesi: yürütülebilir dosya yolları için açık güven.
safeBins değerini genel bir izin listesi olarak ele almayın ve yorumlayıcı/runtime ikililerini eklemeyin (örneğin python3, node, ruby, bash). Bunlara ihtiyacınız varsa, açık izin listesi girdileri kullanın ve onay istemlerini etkin bırakın.
openclaw security audit, yorumlayıcı/runtime safeBins girdilerinde açık profiller eksik olduğunda uyarır ve openclaw doctor --fix eksik özel safeBinProfiles girdilerini iskeleyebilir.
openclaw security audit ve openclaw doctor, jq gibi geniş davranışlı bin’leri açıkça yeniden safeBins içine eklediğinizde de uyarır.
Yorumlayıcıları açıkça izin listesine alırsanız, satır içi kod değerlendirme biçimlerinin yine de yeni bir onay gerektirmesi için tools.exec.strictInlineEval seçeneğini etkinleştirin.
Tam politika ayrıntıları ve örnekler için Exec onayları ve Safe bins ile izin listesi karşılaştırması bölümlerine bakın.
Örnekler
Ön plan:apply_patch
apply_patch, yapılandırılmış çok dosyalı düzenlemeler için exec aracının bir alt aracıdır.
OpenAI ve OpenAI Codex modelleri için varsayılan olarak etkindir. Yapılandırmayı yalnızca
onu devre dışı bırakmak veya belirli modellerle sınırlamak istediğinizde kullanın:
- Yalnızca OpenAI/OpenAI Codex modellerinde kullanılabilir.
- Araç politikası yine uygulanır;
allow: ["write"],apply_patchkullanımına örtük olarak izin verir. deny: ["write"],apply_patchkullanımını reddetmez;apply_patchkullanımını açıkça reddedin veya yama yazmalarının da engellenmesi gerekiyorsadeny: ["group:fs"]kullanın.- Yapılandırma
tools.exec.applyPatchaltında bulunur. tools.exec.applyPatch.enabledvarsayılan olaraktruedeğerindedir; OpenAI modelleri için aracı devre dışı bırakmak üzerefalseolarak ayarlayın.tools.exec.applyPatch.workspaceOnlyvarsayılan olaraktruedeğerindedir (çalışma alanı içinde sınırlı). Bunu yalnızcaapply_patcharacının çalışma alanı dizini dışında yazmasını/silmesini bilerek istiyorsanızfalseolarak ayarlayın.
İlgili
- Exec Onayları — kabuk komutları için onay kapıları
- Sandboxing — komutları sandbox ortamlarında çalıştırma
- Arka Plan Süreci — uzun süre çalışan exec ve process aracı
- Güvenlik — araç politikası ve yükseltilmiş erişim