Ana içeriğe atla
Skills yapılandırmasının büyük bölümü ~/.openclaw/openclaw.json içinde skills altında bulunur. Aracıya özgü görünürlük agents.defaults.skills ve agents.list[].skills altında bulunur.
{
  skills: {
    allowBundled: ["gemini", "peekaboo"],
    load: {
      extraDirs: ["~/Projects/agent-scripts/skills"],
      allowSymlinkTargets: ["~/Projects/manager/skills"],
      watch: true,
      watchDebounceMs: 250,
    },
    install: {
      preferBrew: true,
      nodeManager: "npm",
      allowUploadedArchives: false,
    },
    workshop: {
      autonomous: { enabled: false },
      allowSymlinkTargetWrites: false,
      approvalPolicy: "pending",
      maxPending: 50,
      maxSkillBytes: 40000,
    },
    entries: {
      "image-lab": {
        enabled: true,
        apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" },
        env: { GEMINI_API_KEY: "GEMINI_KEY_HERE" },
      },
      peekaboo: { enabled: true },
      sag: { enabled: false },
    },
  },
}
Yerleşik görüntü üretimi için skills.entries yerine agents.defaults.imageGenerationModel ile birlikte çekirdek image_generate aracını kullanın. Skill girdileri yalnızca özel veya üçüncü taraf skill iş akışları içindir.

Yükleme (skills.load)

skills.load.extraDirs
string[]
Taranacak ek skill dizinleri, en düşük öncelikte olacak şekilde (paketle gelen ve Plugin skill’lerden sonra). Yollar ~ desteğiyle genişletilir.
Sembolik bağlantılı skill klasörlerinin, sembolik bağlantı yapılandırılmış kökün dışında bulunsa bile çözümlenebileceği güvenilir gerçek hedef dizinler. Bunu <workspace>/skills/manager -> ~/Projects/manager/skills gibi kasıtlı kardeş repo yerleşimleri için kullanın. Bu listeyi dar tutun — ~ veya ~/Projects gibi geniş kökleri göstermeyin.
skills.load.watch
boolean
varsayılan:"true"
Skill klasörlerini izleyin ve SKILL.md dosyaları değiştiğinde skills anlık görüntüsünü yenileyin. Gruplandırılmış skill kökleri altındaki iç içe dosyaları kapsar.
skills.load.watchDebounceMs
number
varsayılan:"250"
Skill izleyici olayları için milisaniye cinsinden debounce penceresi.

Kurulum (skills.install)

skills.install.preferBrew
boolean
varsayılan:"true"
brew kullanılabilir olduğunda Homebrew kurucularını tercih edin.
skills.install.nodeManager
"npm" | "pnpm" | "yarn" | "bun"
varsayılan:"\"npm\""
Skill kurulumları için Node paket yöneticisi tercihi. Bu yalnızca skill kurulumlarını etkiler — Gateway çalışma zamanı yine Node kullanmalıdır (Bun, WhatsApp/Telegram için önerilmez). npm, pnpm veya bun için openclaw setup --node-manager kullanın; Yarn destekli skill kurulumları için "yarn" değerini elle ayarlayın.
skills.install.allowUploadedArchives
boolean
varsayılan:"false"
Güvenilir operator.admin Gateway istemcilerinin skills.upload.* üzerinden hazırlanmış özel zip arşivlerini kurmasına izin verin. Normal ClawHub kurulumları bu ayara ihtiyaç duymaz.

Operatör Kurulum İlkesi (security.installPolicy)

Operatörlerin skill ve Plugin kurulumlarını ana makineye özgü ilkeyle onaylamak veya engellemek için güvenilir bir yerel komuta ihtiyacı olduğunda security.installPolicy kullanın. İlke, OpenClaw kaynak materyali hazırladıktan sonra ve kurulum veya güncelleme devam etmeden önce çalışır. ClawHub skills, yüklenen skills, Git/yerel skills, skill bağımlılık kurucuları ve Plugin kurulum/güncelleme kaynakları için geçerlidir.
{
  security: {
    installPolicy: {
      enabled: true,
      // Omit targets to cover every supported target.
      targets: ["skill", "plugin"],
      exec: {
        source: "exec",
        command: "/usr/local/bin/openclaw-install-policy",
        args: ["--json"],
        timeoutMs: 10000,
        noOutputTimeoutMs: 10000,
        maxOutputBytes: 1048576,
        passEnv: ["OPENCLAW_STATE_DIR", "PATH"],
        env: { POLICY_MODE: "strict" },
        trustedDirs: ["/usr/local/bin"],
      },
    },
  },
}
security.installPolicy.enabled
boolean
varsayılan:"false"
Operatöre ait kurulum ilkesini etkinleştirir. Geçerli bir exec komutu olmadan etkinleştirildiğinde, kurulumlar kapalı başarısız olur.
security.installPolicy.targets
("skill" | "plugin")[]
İsteğe bağlı hedef filtresi. Atlandığında, ilke desteklenen her hedefe uygulanır; böylece yeni kurulumlar beklenmedik şekilde açık başarısız olmaz.
security.installPolicy.exec.command
string
Güvenilir ilke yürütülebilir dosyasına mutlak yol. OpenClaw bunu bir kabuk olmadan çalıştırır ve kullanmadan önce yolu doğrular.
security.installPolicy.exec.args
string[]
command sonrasında geçirilen statik argümanlar.
security.installPolicy.exec.timeoutMs
number
varsayılan:"10000"
Tek bir ilke kararı için azami duvar saati çalışma süresi.
security.installPolicy.exec.noOutputTimeoutMs
number
varsayılan:"timeoutMs"
İlke kapalı başarısız olmadan önce stdout veya stderr çıktısı olmadan geçebilecek azami süre.
security.installPolicy.exec.maxOutputBytes
number
varsayılan:"1048576"
İlke sürecinden kabul edilen azami birleşik stdout ve stderr bayt sayısı.
security.installPolicy.exec.env
Record<string, string>
İlke sürecine sağlanan değişmez ortam değişkenleri.
security.installPolicy.exec.passEnv
string[]
OpenClaw sürecinden ilke sürecine kopyalanan ortam değişkeni adları. Yalnızca adlandırılmış değişkenler geçirilir.
security.installPolicy.exec.trustedDirs
string[]
İlke yürütülebilir dosyasını içerebilecek dizinlerin isteğe bağlı izin listesi.
security.installPolicy.exec.allowInsecurePath
boolean
varsayılan:"false"
Komut yolu sahipliği ve izin denetimlerini atlar. Yalnızca yol başka bir mekanizma tarafından korunuyorsa kullanın.
Yapılandırılmış komut yolunun sembolik bağlantı olmasına izin verir. Çözümlenen hedef yine de diğer yol denetimlerini karşılamalıdır. Yorumlayıcı betik argümanları sembolik bağlantı değil, doğrudan normal dosyalar olmalıdır.
İlke stdin üzerinde protocolVersion: 1, openclawVersion, targetType, targetName, sourcePath, sourcePathKind, isteğe bağlı yapılandırılmış source, yapılandırılmış origin ve request içeren bir JSON nesnesi alır. stdout üzerinde tek bir JSON nesnesi yazmalıdır: { "protocolVersion": 1, "decision": "allow" } veya { "protocolVersion": 1, "decision": "block", "reason": "..." }. Sıfır olmayan çıkış, zaman aşımı, hatalı biçimlendirilmiş JSON, eksik alanlar veya desteklenmeyen protokol sürümleri kapalı başarısız olur. OpenClaw, normal Gateway başlatma sırasında kurulum ilkesini çalıştırmaz. İlke etkin ancak kullanılamaz olduğunda kurulumlar ve güncellemeler kapalı başarısız olur. openclaw doctor statik doğrulama yapar ve openclaw doctor --deep yapılandırılmış komuta karşı yapay bir kurulum sondası yürütür. Toplu güncellemeler ilkeyi hedef başına uygular: engellenen bir skill veya Plugin güncellemesi, ilkeyi devre dışı bırakmadan ya da gruptaki sonraki hedefleri atlamadan o hedef için başarısız olur. Örnek stdin:
{
  "protocolVersion": 1,
  "openclawVersion": "2026.6.1",
  "targetType": "skill",
  "targetName": "weather",
  "sourcePath": "/var/folders/.../openclaw-skill-clawhub/root",
  "sourcePathKind": "directory",
  "source": {
    "kind": "clawhub",
    "authority": "openclaw",
    "mutable": false,
    "network": true
  },
  "origin": {
    "type": "clawhub",
    "registry": "https://clawhub.openclaw.ai",
    "slug": "weather",
    "version": "1.0.0"
  },
  "request": {
    "kind": "skill-install",
    "mode": "install",
    "requestedSpecifier": "clawhub:weather@1.0.0"
  },
  "skill": {
    "installId": "clawhub"
  }
}
Asgari ilke komutu:
#!/usr/bin/env node

let input = "";
process.stdin.setEncoding("utf8");
process.stdin.on("data", (chunk) => {
  input += chunk;
});
process.stdin.on("end", () => {
  const request = JSON.parse(input);
  if (request.targetType === "plugin" && request.source?.kind === "local-path") {
    process.stdout.write(
      JSON.stringify({
        protocolVersion: 1,
        decision: "block",
        reason: "local plugin paths are not approved on this host",
      }),
    );
    return;
  }
  process.stdout.write(JSON.stringify({ protocolVersion: 1, decision: "allow" }));
});

Paketle gelen skill izin listesi

skills.allowBundled
string[]
Yalnızca paketle gelen skills için isteğe bağlı izin listesi. Ayarlandığında, yalnızca listedeki paketle gelen skills uygun olur. Yönetilen, aracı düzeyindeki ve çalışma alanı skills bundan etkilenmez.

Skill başına girdiler (skills.entries)

entries altındaki anahtarlar varsayılan olarak skill name değeriyle eşleşir. Bir skill metadata.openclaw.skillKey tanımlıyorsa onun yerine bu anahtarı kullanın. Tireli adları tırnak içine alın (JSON5 tırnaklı anahtarlara izin verir).
skills.entries.<key>.enabled
boolean
false, paketle gelmiş veya kurulmuş olsa bile skill’i devre dışı bırakır. Paketle gelen coding-agent skill’i isteğe bağlıdır — bunu true olarak ayarlayın ve claude, codex, opencode veya desteklenen başka bir CLI’ın kurulu ve kimliği doğrulanmış olduğundan emin olun.
skills.entries.<key>.apiKey
string | { source, provider, id }
metadata.openclaw.primaryEnv bildiren skills için kolaylık alanı. Düz metin dizesini veya bir SecretRef’i destekler: { source: "env", provider: "default", id: "VAR_NAME" }.
skills.entries.<key>.env
Record<string, string>
Aracı çalıştırması için enjekte edilen ortam değişkenleri. Yalnızca değişken süreçte zaten ayarlı değilse enjekte edilir.
skills.entries.<key>.config
object
Özel skill başına yapılandırma alanları için isteğe bağlı torba.

Aracı izin listeleri (agents)

Aynı makine/çalışma alanı skill köklerini ancak aracı başına farklı bir görünür skill kümesini istediğinizde aracı yapılandırmasını kullanın.
{
  agents: {
    defaults: {
      skills: ["github", "weather"], // shared baseline
    },
    list: [
      { id: "writer" }, // inherits github, weather
      { id: "docs", skills: ["docs-search"] }, // replaces defaults entirely
      { id: "locked-down", skills: [] }, // no skills
    ],
  },
}
agents.defaults.skills
string[]
agents.list[].skills değerini atlayan aracılar tarafından devralınan paylaşılan temel izin listesi. Skills’in varsayılan olarak kısıtlanmaması için tamamen atlayın.
agents.list[].skills
string[]
Bu aracı için açık nihai skill kümesi. Açık listeler devralınan varsayılanları değiştirir — birleştirmez. Bu aracıya hiçbir skill göstermemek için [] olarak ayarlayın.
Aracı skill izin listeleri, OpenClaw skill keşfi, istemler, slash komutu keşfi, sandbox eşitlemesi ve skill anlık görüntüleri için görünürlük ve yükleme filtresidir. Bunlar kabuk zamanı yetkilendirme sınırı değildir. Bir aracı ana makinede exec çalıştırabiliyorsa, o kabuk yine harici istemcileri çalıştırabilir veya yürütme kullanıcısına görünür ana makine dosyalarını, ~/.openclaw/skills/config/mcporter.json gibi MCP istemci kayıtları dahil, okuyabilir. Aracı başına MCP yalıtımı için skill izin listelerini sandbox/OS kullanıcısı yalıtımıyla birleştirin, ana makine exec kullanımını reddedin veya sıkı şekilde izin listesine alın ve MCP sunucusunda aracı başına kimlik bilgilerini tercih edin.

Workshop (skills.workshop)

skills.workshop.autonomous.enabled
boolean
varsayılan:"false"
true olduğunda, aracılar başarılı dönüşlerden sonra kalıcı konuşma sinyallerinden bekleyen öneriler oluşturabilir. Kullanıcı istemli skill oluşturma, bu ayardan bağımsız olarak her zaman Skill Workshop üzerinden geçer.
skills.workshop.approvalPolicy
"pending" | "auto"
varsayılan:"\"pending\""
pending, ajan tarafından başlatılan apply, reject veya quarantine işlemlerinden önce operatör onayı gerektirir. auto, bu işlemlere onay olmadan izin verir.
Skill Workshop apply işleminin, gerçek hedefi zaten skills.load.allowSymlinkTargets tarafından güvenilen çalışma alanı skill sembolik bağlantıları üzerinden yazmasına izin verin. Oluşturulan öneri apply işlemleri bu paylaşılan skill kökünü değiştirmemeliyse bunu devre dışı tutun.
skills.workshop.maxPending
number
varsayılan:"50"
Çalışma alanı başına saklanan en fazla bekleyen ve karantinaya alınmış öneri sayısı.
skills.workshop.maxSkillBytes
number
varsayılan:"40000"
Öneri gövdesinin bayt cinsinden en büyük boyutu. Öneri açıklamaları, keşif ve listeleme çıktısında göründükleri için 160 bayt ile kesin olarak sınırlıdır.

Sembolik bağlantılı skill kökleri

Varsayılan olarak çalışma alanı, proje ajanı, ek dizin ve paketlenmiş skill kökleri kapsama sınırlarıdır. <workspace>/skills altında kökün dışına çözümlenen sembolik bağlantılı bir skill klasörü, bir günlük iletisiyle atlanır. Bilinçli bir sembolik bağlantı düzenine izin vermek için güvenilen hedefi bildirin:
{
  skills: {
    load: {
      extraDirs: ["~/Projects/manager/skills"],
      allowSymlinkTargets: ["~/Projects/manager/skills"],
    },
  },
}
Bu yapılandırmayla, <workspace>/skills/manager -> ~/Projects/manager/skills realpath çözümlemesinden sonra kabul edilir. extraDirs kardeş depoyu doğrudan tarar; allowSymlinkTargets mevcut düzenler için sembolik bağlantılı yolu korur. Skill Workshop apply varsayılan olarak bu sembolik bağlantılar üzerinden yazmaz. Workshop apply işleminin zaten güvenilen sembolik bağlantı hedefleri altındaki skills öğelerini değiştirmesine izin vermek için ayrıca etkinleştirin:
{
  skills: {
    load: {
      allowSymlinkTargets: ["~/Projects/manager/skills"],
    },
    workshop: {
      allowSymlinkTargetWrites: true,
    },
  },
}
Yönetilen ~/.openclaw/skills ve kişisel ~/.agents/skills dizinleri zaten skill dizini sembolik bağlantılarını kabul eder (skill başına SKILL.md kapsaması yine de geçerlidir).

Korumalı alana alınmış skills ve env vars

skills.entries.<skill>.env ve apiKey yalnızca host çalıştırmaları için geçerlidir. Bir korumalı alan içinde etkileri yoktur — GEMINI_API_KEY değerine bağlı bir skill, korumalı alana değişken ayrıca verilmedikçe apiKey not configured hatasıyla başarısız olur.
Gizli değerleri bir Docker korumalı alanına şu şekilde geçirin:
{
  agents: {
    defaults: {
      sandbox: {
        docker: {
          env: { GEMINI_API_KEY: "your-key-here" },
        },
      },
    },
  },
}
Docker daemon erişimi olan kullanıcılar, Docker üst verileri üzerinden sandbox.docker.env değerlerini inceleyebilir. Bu açığa çıkma kabul edilebilir değilse bağlı bir gizli dosya, özel bir image veya başka bir teslim yolu kullanın.

Yükleme sırası hatırlatıcısı

workspace/skills      (highest)
workspace/.agents/skills
~/.agents/skills
~/.openclaw/skills
bundled skills
skills.load.extraDirs (lowest)
Skills ve yapılandırma değişiklikleri, izleyici etkinleştirildiğinde bir sonraki yeni oturumda veya izleyici bir değişiklik algıladığında bir sonraki ajan turunda etkili olur.

İlgili

Skills başvurusu

Skills nedir, yükleme sırası, geçitleme ve SKILL.md biçimi.

Skills oluşturma

Özel çalışma alanı skills öğeleri yazma.

Skill Workshop

Ajan tarafından taslak oluşturulmuş skills için öneri kuyruğu.

Slash komutları

Yerel slash komut kataloğu ve sohbet yönergeleri.