Plugins
بستههای Plugin
OpenClaw میتواند Pluginها را از سه زیستبوم خارجی نصب کند: Codex، Claude، و Cursor. به اینها باندل گفته میشود — بستههای محتوا و فراداده که OpenClaw آنها را به قابلیتهای بومی مانند skills، hooks، و ابزارهای MCP نگاشت میکند.
چرا باندلها وجود دارند
بسیاری از Pluginهای مفید با قالب Codex، Claude، یا Cursor منتشر میشوند. بهجای اینکه از نویسندگان بخواهد آنها را بهصورت Pluginهای بومی OpenClaw بازنویسی کنند، OpenClaw این قالبها را شناسایی میکند و محتوای پشتیبانیشده آنها را به مجموعه قابلیتهای بومی نگاشت میکند. این یعنی میتوانید یک بسته فرمان Claude یا یک باندل skill از Codex را نصب کنید و بلافاصله از آن استفاده کنید.
نصب یک باندل
نصب از یک پوشه، آرشیو، یا بازارچه
# Local directoryopenclaw plugins install ./my-bundle # Archiveopenclaw plugins install ./my-bundle.tgz # Claude marketplaceopenclaw plugins marketplace list <marketplace-name>openclaw plugins install <plugin-name>@<marketplace-name>تأیید شناسایی
openclaw plugins listopenclaw plugins inspect <id>باندلها با Format: bundle و یک زیرگونه از codex، claude، یا cursor نمایش داده میشوند.
راهاندازی دوباره و استفاده
openclaw gateway restartقابلیتهای نگاشتشده (skills، hooks، ابزارهای MCP، پیشفرضهای LSP) در نشست بعدی در دسترس هستند.
OpenClaw چه چیزهایی را از باندلها نگاشت میکند
امروز همه قابلیتهای باندل در OpenClaw اجرا نمیشوند. در ادامه آمده است چه چیزی کار میکند و چه چیزی شناسایی میشود اما هنوز متصل نشده است.
اکنون پشتیبانی میشود
| قابلیت | نحوه نگاشت | اعمال میشود به |
|---|---|---|
| محتوای Skill | ریشههای skill باندل بهعنوان skillهای عادی OpenClaw بارگذاری میشوند | همه قالبها |
| فرمانها | commands/ و .cursor/commands/ بهعنوان ریشههای skill در نظر گرفته میشوند |
Claude، Cursor |
| بستههای Hook | چیدمانهای سبک OpenClaw شامل HOOK.md + handler.ts |
Codex |
| ابزارهای MCP | پیکربندی MCP باندل در تنظیمات OpenClaw توکار ادغام میشود؛ سرورهای stdio و HTTP پشتیبانیشده بارگذاری میشوند | همه قالبها |
| سرورهای LSP | فایل .lsp.json در Claude و lspServers اعلامشده در manifest در پیشفرضهای LSP توکار OpenClaw ادغام میشوند |
Claude |
| تنظیمات | فایل settings.json در Claude بهعنوان پیشفرضهای OpenClaw توکار وارد میشود |
Claude |
محتوای Skill
- ریشههای skill باندل بهعنوان ریشههای skill عادی OpenClaw بارگذاری میشوند
- ریشههای
commandsدر Claude بهعنوان ریشههای skill اضافی در نظر گرفته میشوند - ریشههای
.cursor/commandsدر Cursor بهعنوان ریشههای skill اضافی در نظر گرفته میشوند
این یعنی فایلهای فرمان Markdown در Claude از طریق بارگذار skill عادی OpenClaw کار میکنند. Markdown فرمان Cursor نیز از همان مسیر کار میکند.
بستههای Hook
- ریشههای hook باندل فقط زمانی کار میکنند که از چیدمان عادی بسته hook
OpenClaw استفاده کنند. امروز این عمدتاً حالت سازگار با Codex است:
HOOK.mdhandler.tsیاhandler.js
MCP برای OpenClaw توکار
- باندلهای فعالشده میتوانند پیکربندی سرور MCP اضافه کنند
- OpenClaw پیکربندی MCP باندل را در تنظیمات مؤثر OpenClaw توکار بهصورت
mcpServersادغام میکند - OpenClaw ابزارهای MCP باندل پشتیبانیشده را هنگام نوبتهای عامل OpenClaw توکار از طریق راهاندازی سرورهای stdio یا اتصال به سرورهای HTTP در دسترس میگذارد
- پروفایلهای ابزار
codingوmessagingبهصورت پیشفرض ابزارهای MCP باندل را شامل میشوند؛ برای خارج شدن برای یک عامل یا gateway ازtools.deny: ["bundle-mcp"]استفاده کنید - تنظیمات عامل توکار محلی پروژه همچنان پس از پیشفرضهای باندل اعمال میشوند، بنابراین تنظیمات workspace میتوانند در صورت نیاز ورودیهای MCP باندل را بازنویسی کنند
- کاتالوگهای ابزار MCP باندل پیش از ثبت بهصورت قطعی مرتب میشوند، بنابراین
تغییرات ترتیب
listTools()در بالادست باعث بیثباتی بلوکهای ابزار prompt-cache نمیشود
ترابریها
سرورهای MCP میتوانند از ترابری stdio یا HTTP استفاده کنند:
Stdio یک فرایند فرزند را راهاندازی میکند:
{ "mcp": { "servers": { "my-server": { "command": "node", "args": ["server.js"], "env": { "PORT": "3000" } } } }}HTTP بهصورت پیشفرض از طریق sse، یا در صورت درخواست با streamable-http، به یک سرور MCP در حال اجرا متصل میشود:
{ "mcp": { "servers": { "my-server": { "url": "http://localhost:3100/mcp", "transport": "streamable-http", "headers": { "Authorization": "Bearer ${MY_SECRET_TOKEN}" }, "connectionTimeoutMs": 30000 } } }}transportمیتواند روی"streamable-http"یا"sse"تنظیم شود؛ اگر حذف شود، OpenClaw ازsseاستفاده میکندtype: "http"یک شکل پاییندستی بومی CLI است؛ در پیکربندی OpenClaw ازtransport: "streamable-http"استفاده کنید.openclaw mcp setوopenclaw doctor --fixنام مستعار رایج را نرمالسازی میکنند.- فقط schemeهای URL شامل
http:وhttps:مجاز هستند - مقادیر
headersاز درونیابی${ENV_VAR}پشتیبانی میکنند - ورودی سروری که هم
commandو همurlداشته باشد رد میشود - اعتبارنامههای URL (userinfo و پارامترهای query) از توضیحات ابزار و گزارشها حذف میشوند
connectionTimeoutMsزمان انتظار اتصال پیشفرض ۳۰ ثانیهای را برای هر دو ترابری stdio و HTTP بازنویسی میکند
نامگذاری ابزار
OpenClaw ابزارهای MCP باندل را با نامهای ایمن برای provider در قالب
serverName__toolName ثبت میکند. برای مثال، سروری با کلید "vigil-harbor" که یک
ابزار memory_search ارائه میکند، بهصورت vigil-harbor__memory_search ثبت میشود.
- نویسههای خارج از
A-Za-z0-9_-با-جایگزین میشوند - قطعههایی که با حرف شروع نمیشوند یک پیشوند حرفی میگیرند، بنابراین کلیدهای عددی
سرور مانند
12306به پیشوندهای ابزار ایمن برای provider تبدیل میشوند - پیشوندهای سرور به ۳۰ نویسه محدود میشوند
- نام کامل ابزارها به ۶۴ نویسه محدود میشود
- نامهای خالی سرور به
mcpبرمیگردند - نامهای پاکسازیشده برخوردکننده با پسوندهای عددی از هم متمایز میشوند
- ترتیب نهایی ابزارهای ارائهشده بر اساس نام ایمن قطعی است تا نوبتهای تکراری embedded-agent از نظر کش پایدار بمانند
- فیلتر پروفایل همه ابزارهای یک سرور MCP باندل را متعلق به Plugin
با کلید
bundle-mcpدر نظر میگیرد، بنابراین allowlistها و deny listهای پروفایل میتوانند هم نامهای ابزار ارائهشده منفرد و هم کلید Plugin یعنیbundle-mcpرا شامل شوند
تنظیمات OpenClaw توکار
- فایل
settings.jsonدر Claude هنگام فعال بودن باندل بهعنوان تنظیمات پیشفرض OpenClaw توکار وارد میشود - OpenClaw پیش از اعمال، کلیدهای بازنویسی shell را پاکسازی میکند
کلیدهای پاکسازیشده:
shellPathshellCommandPrefix
LSP توکار OpenClaw
- باندلهای فعالشده Claude میتوانند پیکربندی سرور LSP اضافه کنند
- OpenClaw فایل
.lsp.jsonبههمراه هر مسیرlspServersاعلامشده در manifest را بارگذاری میکند - پیکربندی LSP باندل در پیشفرضهای مؤثر LSP توکار OpenClaw ادغام میشود
- امروز فقط سرورهای LSP پشتیبانیشده مبتنی بر stdio قابل اجرا هستند؛ ترابریهای
پشتیبانینشده همچنان در
openclaw plugins inspect <id>نمایش داده میشوند
شناساییشده اما اجرا نمیشود
این موارد تشخیص داده میشوند و در عیبیابیها نمایش داده میشوند، اما OpenClaw آنها را اجرا نمیکند:
agents، اتوماسیونhooks.json، وoutputStylesدر Claude.cursor/agents،.cursor/hooks.json، و.cursor/rulesدر Cursor- فراداده درونخطی/برنامه Codex فراتر از گزارش قابلیت
قالبهای باندل
باندلهای Codex
نشانگرها: .codex-plugin/plugin.json
محتوای اختیاری: skills/، hooks/، .mcp.json، .app.json
باندلهای Codex زمانی بهترین تناسب را با OpenClaw دارند که از ریشههای skill و پوشههای
بسته hook سبک OpenClaw (HOOK.md + handler.ts) استفاده کنند.
باندلهای Claude
دو حالت شناسایی:
- مبتنی بر Manifest:
.claude-plugin/plugin.json - بدون Manifest: چیدمان پیشفرض Claude (
skills/،commands/،agents/،hooks/،.mcp.json،.lsp.json،settings.json)
رفتار اختصاصی Claude:
commands/بهعنوان محتوای skill در نظر گرفته میشودsettings.jsonبه تنظیمات OpenClaw توکار وارد میشود (کلیدهای بازنویسی shell پاکسازی میشوند).mcp.jsonابزارهای stdio پشتیبانیشده را برای OpenClaw توکار ارائه میکند- فایل
.lsp.jsonبههمراه مسیرهایlspServersاعلامشده در manifest در پیشفرضهای LSP توکار OpenClaw بارگذاری میشوند hooks/hooks.jsonشناسایی میشود اما اجرا نمیشود- مسیرهای مؤلفه سفارشی در manifest افزایشی هستند (پیشفرضها را گسترش میدهند، نه جایگزین آنها)
باندلهای Cursor
نشانگرها: .cursor-plugin/plugin.json
محتوای اختیاری: skills/، .cursor/commands/، .cursor/agents/، .cursor/rules/، .cursor/hooks.json، .mcp.json
.cursor/commands/بهعنوان محتوای skill در نظر گرفته میشود.cursor/rules/،.cursor/agents/، و.cursor/hooks.jsonفقط شناسایی میشوند
تقدم شناسایی
OpenClaw ابتدا قالب Plugin بومی را بررسی میکند:
openclaw.plugin.jsonیاpackage.jsonمعتبر باopenclaw.extensions— بهعنوان Plugin بومی در نظر گرفته میشود- نشانگرهای باندل (
.codex-plugin/،.claude-plugin/، یا چیدمان پیشفرض Claude/Cursor) — بهعنوان باندل در نظر گرفته میشود
اگر یک پوشه هر دو را داشته باشد، OpenClaw از مسیر بومی استفاده میکند. این کار مانع میشود بستههای دو قالبی بهصورت ناقص بهعنوان باندل نصب شوند.
وابستگیهای زمان اجرا و پاکسازی
- باندلهای سازگار شخص ثالث تعمیر
npm installهنگام راهاندازی دریافت نمیکنند. آنها باید از طریقopenclaw plugins installنصب شوند و هر چیزی را که نیاز دارند در پوشه Plugin نصبشده همراه داشته باشند. - Pluginهای باندلشده متعلق به OpenClaw یا بهصورت سبک در core ارسال میشوند یا از طریق نصبکننده Plugin قابل دانلود هستند. راهاندازی Gateway هرگز برای آنها package manager اجرا نمیکند.
openclaw doctor --fixپوشههای وابستگی staged قدیمی را حذف میکند و میتواند Pluginهای قابل دانلودی را که در نمایه Plugin محلی وجود ندارند اما config به آنها ارجاع میدهد بازیابی کند.
امنیت
باندلها مرز اعتماد محدودتری نسبت به Pluginهای بومی دارند:
- OpenClaw ماژولهای زمان اجرای دلخواه باندل را درونپردازهای بارگذاری نمیکند
- مسیرهای Skills و hook-pack باید داخل ریشه Plugin بمانند (با بررسی مرز)
- فایلهای تنظیمات با همان بررسیهای مرزی خوانده میشوند
- سرورهای MCP مبتنی بر stdio پشتیبانیشده ممکن است بهعنوان subprocess راهاندازی شوند
این باعث میشود باندلها بهصورت پیشفرض ایمنتر باشند، اما همچنان باید باندلهای شخص ثالث را برای قابلیتهایی که ارائه میکنند بهعنوان محتوای مورد اعتماد در نظر بگیرید.
عیبیابی
باندل شناسایی میشود اما قابلیتها اجرا نمیشوند
openclaw plugins inspect <id> را اجرا کنید. اگر قابلیتی فهرست شده اما بهعنوان
متصلنشده علامتگذاری شده است، این یک محدودیت محصول است — نه نصب خراب.
فایلهای فرمان Claude ظاهر نمیشوند
مطمئن شوید باندل فعال است و فایلهای Markdown داخل یک ریشه
commands/ یا skills/ شناساییشده قرار دارند.
تنظیمات Claude اعمال نمیشوند
فقط تنظیمات OpenClaw توکار از settings.json پشتیبانی میشوند. OpenClaw
تنظیمات باندل را بهعنوان وصلههای خام config در نظر نمیگیرد.
Hookهای Claude اجرا نمیشوند
hooks/hooks.json فقط شناسایی میشود. اگر به hookهای قابل اجرا نیاز دارید، از چیدمان
بسته hook OpenClaw استفاده کنید یا یک Plugin بومی ارائه دهید.
مرتبط
- نصب و پیکربندی Pluginها
- ساخت Pluginها — ایجاد یک Plugin بومی
- Manifest Plugin — schema مربوط به manifest بومی