Install overview
جزئیات داخلی نصبکننده
OpenClaw با سه اسکریپت نصب عرضه میشود که از openclaw.ai ارائه میشوند.
| اسکریپت | پلتفرم | کاری که انجام میدهد |
|---|---|---|
install.sh |
macOS / Linux / WSL | در صورت نیاز Node را نصب میکند، OpenClaw را از طریق npm (پیشفرض) یا git نصب میکند و میتواند راهاندازی اولیه را اجرا کند. |
install-cli.sh |
macOS / Linux / WSL | Node و OpenClaw را از طریق npm یا git در یک پیشوند محلی (~/.openclaw) نصب میکند. به دسترسی root نیاز ندارد. |
install.ps1 |
Windows (PowerShell) | در صورت نیاز Node را نصب میکند، OpenClaw را از طریق npm (پیشفرض) یا git نصب میکند و میتواند راهاندازی اولیه را اجرا کند. |
هر سه از Node 22.22.3+، 24.15+ یا 25.9+ پشتیبانی میکنند؛ Node 24 هدف پیشفرض برای نصبهای جدید است.
فرمانهای سریع
install.sh
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bashcurl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --helpinstall-cli.sh
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh | bashcurl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh | bash -s -- --helpinstall.ps1
iwr -useb https://openclaw.ai/install.ps1 | iex& ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -Tag beta -NoOnboard -DryRuninstall.sh
روند (install.sh)
تشخیص سیستمعامل
از macOS و Linux (از جمله WSL) پشتیبانی میکند.
اطمینان از وجود Node.js 24 بهصورت پیشفرض
نسخه Node را بررسی میکند و در صورت نیاز Node 24 را نصب میکند (Homebrew در macOS و اسکریپتهای راهاندازی NodeSource در apt/dnf/yum لینوکس). در macOS، Homebrew فقط زمانی نصب میشود که نصبکننده برای Node یا Git به آن نیاز داشته باشد. Node 22.22.3+، Node 24.15+ و Node 25.9+ پشتیبانی میشوند؛ Node 23 پشتیبانی نمیشود.
در Alpine/musl Linux، نصبکننده بهجای NodeSource از بستههای apk استفاده میکند و نسخه واقعی SQLite پیوندخورده را تأیید میکند. جریانهای بسته پایدار فعلی Alpine ممکن است Node بهاندازه کافی جدیدی را همراه با SQLite سیستمی آسیبپذیر ارائه کنند؛ در این حالت، بهجای آن از یک کانتینر رسمی node:24-alpine یا میزبانی مبتنی بر glibc استفاده کنید.
اطمینان از وجود Git
اگر Git موجود نباشد، آن را با استفاده از مدیر بسته شناساییشده، از جمله Homebrew در macOS و apk در Alpine، نصب میکند.
نصب OpenClaw
- روش
npm(پیشفرض): نصب سراسری با npm - روش
git: مخزن را کلون/بهروزرسانی میکند، وابستگیها را با pnpm نصب میکند، میسازد و سپس پوشش فرمان را در~/.local/bin/openclawنصب میکند
کارهای پس از نصب
- فایل اجرایی
openclawرا که بهتازگی نصب شده است برای فرمانهای بعدی پیدا میکند - برای یک نصب پیکربندینشده، راهاندازی اولیه را پیش از بررسیهای doctor یا Gateway آغاز میکند. با
--no-onboardیا در نبود TTY، فرمان تکمیل راهاندازی در زمانی دیگر را چاپ میکند. - برای یک نصب پیکربندیشده، سرویس Gateway بارگذاریشده را بهصورت بهترین تلاش تازهسازی و راهاندازی مجدد میکند و doctor را اجرا میکند. ارتقاها در صورت امکان Pluginها را بهروزرسانی میکنند، یا در یک اجرای بدون رابط و دارای اعلان، فرمان دستی را چاپ میکنند.
- هنگام اجرای
--verify، نسخه نصبشده را بررسی میکند و تنها پس از وجود پیکربندی، سلامت Gateway را بررسی میکند.
تشخیص نسخه منبع
اگر اسکریپت درون یک نسخه منبع OpenClaw اجرا شود (package.json + pnpm-workspace.yaml)، این گزینهها را ارائه میکند:
- استفاده از نسخه منبع (
git)، یا - استفاده از نصب سراسری (
npm)
اگر TTY در دسترس نباشد و هیچ روش نصبی تعیین نشده باشد، بهصورت پیشفرض از npm استفاده میکند و هشدار میدهد.
اسکریپت برای انتخاب نامعتبر روش یا مقادیر نامعتبر --install-method با کد 2 خارج میشود.
نمونهها (install.sh)
پیشفرض
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bashرد کردن راهاندازی اولیه
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --no-onboardنصب با Git
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --install-method gitنسخه منبع main در GitHub
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --install-method git --version mainاجرای آزمایشی
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --dry-runتأیید پس از نصب
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --no-onboard --verifyمرجع پرچمها
| پرچم | توضیحات |
|---|---|
--install-method | --method npm|git |
انتخاب روش نصب (پیشفرض: npm) |
--npm |
میانبر روش npm |
--git | --github |
میانبر روش git |
--version <version|dist-tag|spec> |
نسخه npm، برچسب توزیع یا مشخصات بسته (پیشفرض: latest) |
--beta |
استفاده از برچسب توزیع beta در صورت موجود بودن؛ در غیر این صورت بازگشت به latest |
--git-dir | --dir <path> |
پوشه نسخه منبع (پیشفرض: ~/openclaw) |
--no-git-update |
رد کردن git pull برای نسخه منبع موجود |
--no-prompt |
غیرفعال کردن اعلانها |
--no-onboard |
رد کردن راهاندازی اولیه |
--onboard |
فعال کردن راهاندازی اولیه |
--verify |
اجرای یک تأیید سریع پس از نصب (--version، سلامت Gateway در صورت بارگذاری بودن) |
--dry-run |
چاپ عملیات بدون اعمال تغییرات |
--verbose |
فعال کردن خروجی اشکالزدایی (set -x، گزارشهای سطح notice در npm) |
--help | -h |
نمایش راهنما |
مرجع متغیرهای محیطی
| متغیر | توضیحات |
|---|---|
OPENCLAW_INSTALL_METHOD=git|npm |
روش نصب |
OPENCLAW_VERSION=latest|next|<semver>|<spec> |
نسخه npm، برچسب توزیع یا مشخصات بسته |
OPENCLAW_BETA=0|1 |
استفاده از beta در صورت موجود بودن |
OPENCLAW_HOME=<path> |
پوشه پایه برای وضعیت OpenClaw و مسیرهای پیشفرض git/راهاندازی اولیه |
OPENCLAW_GIT_DIR=<path> |
پوشه نسخه منبع |
OPENCLAW_GIT_UPDATE=0|1 |
تغییر وضعیت بهروزرسانیهای git |
OPENCLAW_NO_PROMPT=1 |
غیرفعال کردن اعلانها |
OPENCLAW_VERIFY_INSTALL=1 |
اجرای تأیید سریع پس از نصب |
OPENCLAW_NO_ONBOARD=1 |
رد کردن راهاندازی اولیه |
OPENCLAW_DRY_RUN=1 |
حالت اجرای آزمایشی |
OPENCLAW_VERBOSE=1 |
حالت اشکالزدایی |
OPENCLAW_NPM_LOGLEVEL=error|warn|notice |
سطح گزارش npm (پیشفرض: error، پیامهای منسوخشدن npm را پنهان میکند) |
install-cli.sh
روند (install-cli.sh)
نصب محیط اجرای محلی Node
یک فایل tar ثابتشده از نسخه پشتیبانیشده Node LTS را (نسخه در اسکریپت تعبیه شده و بهطور مستقل بهروزرسانی میشود؛ پیشفرض 24.15.0) در <prefix>/tools/node-v<version> دانلود میکند و SHA-256 را تأیید میکند.
Linux ARMv7 از Node 22.22.3 استفاده میکند، زیرا فایلهای اجرایی رسمی ARMv7 برای Node 24+ در دسترس نیستند.
در Alpine/musl Linux، که Node فایلهای tar سازگار با محیط اجرای ثابتشده منتشر نمیکند، nodejs و npm را با apk نصب میکند و سپس هم Node و هم کتابخانه واقعی SQLite پیوندخورده را تأیید میکند. جریانهای بسته پایدار فعلی Alpine ممکن است حتی با Node بهاندازه کافی جدید همچنان به SQLite آسیبپذیر پیوند شوند؛ هنگامی که بررسی ایمنی بسته را رد میکند، از یک کانتینر رسمی node:24-alpine یا میزبانی مبتنی بر glibc استفاده کنید.
اطمینان از وجود Git
اگر Git موجود نباشد، تلاش میکند آن را از طریق apt/dnf/yum/apk در Linux یا Homebrew در macOS نصب کند.
نصب OpenClaw زیر پیشوند
- روش
npm(پیشفرض): با npm زیر پیشوند نصب میکند، سپس پوشش فرمان را در<prefix>/bin/openclawمینویسد - روش
git: یک نسخه منبع را کلون/بهروزرسانی میکند (پیشفرض~/openclaw) و همچنان پوشش فرمان را در<prefix>/bin/openclawمینویسد
تازهسازی سرویس Gateway بارگذاریشده
اگر یک سرویس Gateway از همان پیشوند از قبل بارگذاری شده باشد، اسکریپت
openclaw gateway install --force را اجرا میکند که سرویس جایگزین را فعال میکند،
و سپس سلامت Gateway را بهصورت بهترین تلاش بررسی میکند.
نمونهها (install-cli.sh)
پیشفرض
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh | bashپیشوند سفارشی + نسخه
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh | bash -s -- --prefix /opt/openclaw --version latestنصب با Git
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh | bash -s -- --install-method git --git-dir ~/openclawخروجی JSON برای خودکارسازی
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh | bash -s -- --json --prefix /opt/openclawاجرای راهاندازی اولیه
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh | bash -s -- --onboardمرجع پرچمها
| پرچم | توضیحات |
|---|---|
--prefix <path> |
پیشوند نصب (پیشفرض: ~/.openclaw) |
--install-method | --method npm|git |
انتخاب روش نصب (پیشفرض: npm) |
--npm |
میانبر روش npm |
--git | --github |
میانبر روش git |
--git-dir | --dir <path> |
پوشه checkout گیت (پیشفرض: ~/openclaw) |
--version <ver> |
نسخه یا dist-tag مربوط به OpenClaw (پیشفرض: latest) |
--node-version <ver> |
نسخه Node (پیشفرض: 24.15.0؛ 22.22.3 در Linux ARMv7) |
--json |
انتشار رویدادهای NDJSON |
--onboard |
اجرای openclaw onboard پس از نصب |
--no-onboard |
رد کردن راهاندازی اولیه (پیشفرض) |
--set-npm-prefix |
در Linux، اگر پیشوند فعلی نوشتنی نیست، پیشوند npm بهاجبار روی ~/.npm-global تنظیم شود |
--help | -h |
نمایش نحوه استفاده |
مرجع متغیرهای محیطی
| متغیر | توضیحات |
|---|---|
OPENCLAW_PREFIX=<path> |
پیشوند نصب |
OPENCLAW_INSTALL_METHOD=git|npm |
روش نصب |
OPENCLAW_VERSION=<ver> |
نسخه یا dist-tag مربوط به OpenClaw |
OPENCLAW_NODE_VERSION=<ver> |
نسخه Node |
OPENCLAW_HOME=<path> |
پوشه پایه برای وضعیت OpenClaw و مسیرهای پیشفرض git/راهاندازی اولیه |
OPENCLAW_GIT_DIR=<path> |
پوشه checkout گیت برای نصبهای git |
OPENCLAW_GIT_UPDATE=0|1 |
فعال یا غیرفعالسازی بهروزرسانیهای git برای checkoutهای موجود |
OPENCLAW_NO_ONBOARD=1 |
رد کردن راهاندازی اولیه |
OPENCLAW_NPM_LOGLEVEL=error|warn|notice |
سطح گزارش npm (پیشفرض: error) |
install.ps1
روند (install.ps1)
اطمینان از وجود محیط PowerShell و Windows
به PowerShell 5+ نیاز دارد.
اطمینان از وجود Node.js 24 بهصورت پیشفرض
در صورت نبودن، نصب ابتدا از طریق winget، سپس Chocolatey و بعد Scoop امتحان میشود. اگر هیچ مدیر بستهای در دسترس نباشد، اسکریپت فایل zip رسمی Node.js 24 برای Windows را در %LOCALAPPDATA%\OpenClaw\deps\portable-node بارگیری میکند و آن را به PATH فرایند فعلی و کاربر میافزاید. Node 22.22.3+، Node 24.15+ و Node 25.9+ پشتیبانی میشوند؛ Node 23 پشتیبانی نمیشود.
نصب OpenClaw
- روش
npm(پیشفرض): نصب سراسری npm با استفاده از-Tagانتخابشده که از یک پوشه موقت نوشتنی نصبکننده اجرا میشود تا پوستههایی که در پوشههای محافظتشدهای مانندC:\باز شدهاند نیز همچنان کار کنند - روش
git: مخزن را clone/بهروزرسانی میکند، با pnpm نصب/build میکند و wrapper را در%USERPROFILE%\.local\bin\openclaw.cmdنصب میکند. اگر Git موجود نباشد، اسکریپت MinGit محلی کاربر را در%LOCALAPPDATA%\OpenClaw\deps\portable-gitراهاندازی میکند و آن را به PATH فرایند فعلی و کاربر میافزاید.
کارهای پس از نصب
- در صورت امکان، پوشه bin موردنیاز را به PATH کاربر میافزاید
- سرویس Gateway بارگذاریشده را بهشکل best-effort تازهسازی میکند (
openclaw gateway install --forceو سپس راهاندازی مجدد) - در ارتقاها و نصبهای git،
openclaw doctor --non-interactiveرا اجرا میکند (best effort)
مدیریت خطاها
نصبهای iwr ... | iex و scriptblock بدون بستن نشست فعلی PowerShell، خطای پایاندهنده گزارش میکنند. نصبهای مستقیم powershell -File / pwsh -File همچنان برای خودکارسازی با کد خروج غیرصفر خاتمه مییابند.
نمونهها (install.ps1)
پیشفرض
iwr -useb https://openclaw.ai/install.ps1 | iexنصب با Git
& ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -InstallMethod gitcheckout شاخه main در GitHub
& ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -InstallMethod git -Tag mainپوشه سفارشی git
& ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -InstallMethod git -GitDir "C:\openclaw"اجرای آزمایشی
& ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -DryRunمرجع پرچمها
| پرچم | توضیحات |
|---|---|
-InstallMethod npm|git |
روش نصب (پیشفرض: npm) |
-Tag <tag|version|spec> |
dist-tag، نسخه یا مشخصه بسته npm (پیشفرض: latest) |
-GitDir <path> |
پوشه checkout (پیشفرض: %USERPROFILE%\openclaw) |
-NoOnboard |
رد کردن راهاندازی اولیه |
-NoGitUpdate |
رد کردن git pull |
-DryRun |
فقط چاپ عملیات |
مرجع متغیرهای محیطی
| متغیر | توضیحات |
|---|---|
OPENCLAW_INSTALL_METHOD=git|npm |
روش نصب |
OPENCLAW_GIT_DIR=<path> |
پوشه checkout |
OPENCLAW_NO_ONBOARD=1 |
رد کردن راهاندازی اولیه |
OPENCLAW_GIT_UPDATE=0 |
غیرفعالسازی git pull |
OPENCLAW_DRY_RUN=1 |
حالت اجرای آزمایشی |
CI و خودکارسازی
برای اجراهای قابلپیشبینی، از پرچمها/متغیرهای محیطی غیرتعاملی استفاده کنید.
install.sh (npm غیرتعاملی)
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --no-prompt --no-onboardinstall.sh (git غیرتعاملی)
OPENCLAW_INSTALL_METHOD=git OPENCLAW_NO_PROMPT=1 \ curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bashinstall-cli.sh (JSON)
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh | bash -s -- --json --prefix /opt/openclawinstall.ps1 (رد کردن راهاندازی اولیه)
& ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -NoOnboardعیبیابی
چرا Git لازم است؟
Git برای روش نصب git لازم است. در نصبهای npm نیز Git همچنان بررسی/نصب میشود تا هنگام استفاده وابستگیها از URLهای git، از خطاهای spawn git ENOENT جلوگیری شود.
چرا npm در Linux با EACCES مواجه میشود؟
برخی پیکربندیهای Linux، پیشوند سراسری npm را به مسیرهای متعلق به root اشاره میدهند. install.sh میتواند پیشوند را به ~/.npm-global تغییر دهد و exportهای PATH را به فایلهای rc پوسته اضافه کند (اگر این فایلها وجود داشته باشند).
Windows: "npm error spawn git / ENOENT"
نصبکننده را دوباره اجرا کنید تا بتواند MinGit محلی کاربر را راهاندازی کند، یا Git for Windows را نصب کرده و PowerShell را دوباره باز کنید.
Windows: "openclaw is not recognized"
npm config get prefix را اجرا کنید و آن پوشه را به PATH کاربر خود بیفزایید (در Windows به پسوند \bin نیازی نیست)، سپس PowerShell را دوباره باز کنید.
Windows: روش دریافت خروجی مشروح نصبکننده
install.ps1 گزینه -Verbose را ارائه نمیکند.
برای عیبیابی در سطح اسکریپت، از ردیابی PowerShell استفاده کنید:
Set-PSDebug -Trace 1& ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -NoOnboardSet-PSDebug -Trace 0openclaw پس از نصب پیدا نمیشود
معمولاً مشکل از PATH است. به عیبیابی Node.js مراجعه کنید.