clawhub: önekini kullanın.
Gereksinimler
- Node 22.19+, Node 23.11+ veya Node 24+ ve
npmya dapnpmgibi bir paket yöneticisi kullanın. - TypeScript ESM modüllerine aşina olun.
- Depo içi paketlenmiş Plugin çalışması için depoyu klonlayın ve
pnpm installçalıştırın. Kaynak checkout Plugin geliştirmesi yalnızca pnpm kullanır, çünkü OpenClaw paketlenmiş Plugin’leriextensions/*workspace paketlerinden yükler.
Plugin biçimini seçin
Channel plugin
OpenClaw’ı bir mesajlaşma platformuna bağlayın.
Provider plugin
Bir model, medya, arama, getirme, konuşma veya gerçek zamanlı sağlayıcı ekleyin.
CLI backend plugin
OpenClaw model fallback’i üzerinden yerel bir AI CLI çalıştırın.
Tool plugin
Agent araçlarını kaydedin.
Hızlı başlangıç
Gerekli tek bir agent aracı kaydederek en küçük araç Plugin’ini oluşturun. Bu, en kısa kullanışlı Plugin biçimidir ve paketi, manifesti, giriş noktasını ve yerel kanıtı gösterir.Create package metadata
contracts.tools içinde görünmelidir; böylece OpenClaw, her Plugin
runtime’ını hevesle yüklemeden sahipliği keşfedebilir. activation.onStartup
değerini bilinçli ayarlayın. Bu örnek Gateway başlangıcında başlar.Host tarafından güvenilen Plugin yüzeyleri de manifest kapılıdır ve kurulu
Plugin’ler için açık etkinleştirme gerektirir. Kurulu bir Plugin
api.registerAgentToolResultMiddleware(...) kaydediyorsa, her hedef runtime’ı
contracts.agentToolResultMiddleware içinde bildirin. api.registerTrustedToolPolicy(...)
kaydediyorsa, her policy kimliğini contracts.trustedToolPolicies içinde
bildirin. Bu bildirimler, kurulum zamanı incelemesini runtime kaydıyla hizalı tutar.Her manifest alanı için Plugin manifesti bölümüne bakın.Register the tool
index.ts
definePluginEntry kullanın. Kanal Plugin’leri
defineChannelPluginEntry kullanır.Test the runtime
Kurulu veya harici bir Plugin için yüklenen runtime’ı inceleyin:Plugin bir CLI komutu kaydediyorsa, o komutu da çalıştırın. Örneğin,
bir demo komutunun
openclaw demo-plugin ping gibi bir yürütme kanıtı
olmalıdır.Bu depodaki paketlenmiş bir Plugin için OpenClaw, kaynak checkout
Plugin paketlerini extensions/* workspace’inden keşfeder. En yakın hedefli
testi çalıştırın:Test the package install
Paketlemeye hazır bir Plugin yayımlamadan önce, kullanıcıların alacağı aynı
kurulum biçimini test edin. Önce bir derleme adımı ekleyin,
openclaw.extensions
gibi runtime girişlerini ./dist/index.js benzeri derlenmiş JavaScript’e
yönlendirin ve npm pack çıktısının bu dist/ çıktısını içerdiğinden emin olun.
TypeScript kaynak girişleri yalnızca kaynak checkout’ları ve yerel geliştirme
yolları içindir.Ardından Plugin’i paketleyin ve tarball’ı npm-pack: ile kurun:npm-pack:, OpenClaw’ın yönetilen Plugin başına npm projesini kullanır; bu nedenle
kaynak checkout testinin gizleyebileceği runtime bağımlılığı hatalarını yakalar.
Katalog bağlantılı resmi güveni değil, paket ve bağımlılık biçimini kanıtlar.
Runtime import’ları dependencies veya optionalDependencies içinde olmalıdır;
yalnızca devDependencies içinde bırakılan bağımlılıklar yönetilen runtime
projesi için kurulmaz.Resmi veya ayrıcalıklı Plugin davranışı için son kanıt olarak ham arşiv/yol
kurulumu kullanmayın. Ham kaynaklar yerel hata ayıklama için yararlıdır, ancak
npm veya ClawHub kurulumlarıyla aynı bağımlılık yolunu kanıtlamaz. Plugin’iniz
güvenilir resmi Plugin durumuna dayanıyorsa, katalog destekli resmi kurulum
veya resmi güveni kaydeden yayımlanmış paket yolu üzerinden ikinci bir kanıt
ekleyin. Kurulum kökü ve bağımlılık sahipliği ayrıntıları için
Plugin bağımlılık çözümlemesi bölümüne bakın.Publish
Yayımlamadan önce paketi doğrulayın:Kanonik ClawHub snippet’leri
docs/snippets/plugin-publish/ içinde yer alır.Araçları kaydetme
Araçlar gerekli veya isteğe bağlı olabilir. Gerekli araçlar, Plugin etkinken her zaman kullanılabilir. İsteğe bağlı araçlar kullanıcı opt-in’i gerektirir.api.registerTool(...) ile kaydedilen her araç, Plugin manifestinde de
bildirilmelidir:
tools.allow ile opt-in yapar:
parameters
içermeyen araç tanımlayıcıları dahil hatalı biçimlendirilmiş kayıtlar da aynı şekilde
atlanır ve raporlanır. Kayıtlı araçlar, policy ve izin listesi kontrolleri geçtikten
sonra modelin çağırabileceği tipli fonksiyonlardır.
Araç factory’leri runtime tarafından sağlanan bir context nesnesi alır. Bir aracın
geçerli turdaki etkin modeli günlüğe yazması, göstermesi veya ona uyum sağlaması
gerektiğinde ctx.activeModel kullanın. Nesne provider, modelId ve modelRef
içerebilir. Bunu yerel operatöre, kurulu Plugin koduna veya değiştirilmiş OpenClaw
runtime’ına karşı bir güvenlik sınırı olarak değil, bilgilendirici runtime metadata’sı
olarak ele alın. Hassas yerel araçlar hâlâ açık bir Plugin veya operatör opt-in’i
gerektirmeli ve etkin model metadata’sı eksik ya da uygunsuz olduğunda kapalı
başarısız olmalıdır.
Manifest sahipliği ve keşfi bildirir; yürütme yine canlı kayıtlı araç
uygulamasını çağırır. toolMetadata.<tool>.optional: true değerini
api.registerTool(..., { optional: true }) ile hizalı tutun; böylece OpenClaw,
araç açıkça izin listesine alınana kadar o Plugin runtime’ını yüklemekten kaçınabilir.
Import kuralları
Odaklı SDK alt yollarından import edin:api.ts ve runtime-api.ts gibi
yerel barrel dosyaları kullanın. Kendi Plugin’inizi bir SDK yolu üzerinden import
etmeyin. Sağlayıcıya özgü yardımcılar, arayüz gerçekten genel olmadıkça sağlayıcı
paketinde kalmalıdır.
Özel Gateway RPC yöntemleri ileri düzey bir giriş noktasıdır. Bunları
Plugin’e özgü bir önekte tutun; config.*, exec.approvals.*, operator.admin.*,
wizard.* ve update.* gibi çekirdek yönetici namespace’leri ayrılmış kalır ve
operator.admin olarak çözümlenir. openclaw/plugin-sdk/gateway-method-runtime
köprüsü, contracts.gatewayMethodDispatch: ["authenticated-request"] bildiren
Plugin HTTP rotaları için ayrılmıştır.
Tam import haritası için Plugin SDK genel bakışı bölümüne bakın.
Gönderim öncesi kontrol listesi
package.json doğru
openclaw metadata’sına sahipopenclaw.plugin.json manifesti mevcut ve geçerli
Giriş noktası
defineChannelPluginEntry veya definePluginEntry kullanıyorTüm import’lar odaklı
plugin-sdk/<subpath> yollarını kullanıyorDahili import’lar SDK self-import’ları değil, yerel modülleri kullanıyor
Testler geçiyor (
pnpm test -- <bundled-plugin-root>/my-plugin/)pnpm check geçiyor (depo içi Plugin’ler)Beta sürümlere karşı test edin
- openclaw/openclaw üzerindeki GitHub sürüm etiketlerini izleyin ve
Watch>Releasesyoluyla abone olun. Beta etiketleriv2026.3.N-beta.1gibi görünür. Sürüm duyuruları için resmi OpenClaw X hesabı @openclaw bildirimlerini de açabilirsiniz. - Beta etiketi görünür görünmez Plugin’inizi bu etikete karşı test edin. Kararlı sürümden önceki pencere genellikle yalnızca birkaç saattir.
- Testten sonra Plugin’inizin
plugin-forumDiscord kanalındaki başlığındaall goodya da neyin bozulduğunu paylaşın. Henüz bir başlığınız yoksa bir tane oluşturun. - Bir şey bozulursa
Beta blocker: <plugin-name> - <summary>başlıklı bir issue açın veya mevcut issue’yu güncelleyin vebeta-blockeretiketini uygulayın. Issue bağlantısını başlığınıza koyun. mainiçinfix(<plugin-id>): beta blocker - <summary>başlıklı bir PR açın ve issue’yu hem PR’da hem de Discord başlığınızda bağlayın. Katkıda bulunanlar PR’ları etiketleyemez, bu yüzden başlık bakımcılar ve otomasyon için PR tarafındaki sinyaldir. PR’ı olan engelleyiciler birleştirilir; PR’ı olmayan engelleyiciler buna rağmen yayımlanabilir. Bakımcılar beta testi sırasında bu başlıkları izler.- Sessizlik yeşil demektir. Pencereyi kaçırırsanız düzeltmeniz büyük olasılıkla sonraki döngüde yer alır.
Sonraki adımlar
Channel Plugins
Bir mesajlaşma kanalı Plugin’i oluşturun
Provider Plugins
Bir model sağlayıcı Plugin’i oluşturun
CLI Backend Plugins
Yerel bir AI CLI arka ucu kaydedin
SDK Overview
İçeri aktarma haritası ve kayıt API başvurusu
Runtime Helpers
api.runtime üzerinden TTS, arama, alt ajan
Testing
Test yardımcı programları ve desenleri
Plugin Manifest
Tam manifest şeması başvurusu