MISE(1) General Commands Manual MISE(1)

mise - ابزارهای توسعه، متغیرهای محیطی و وظایف در یک رابط خط فرمان (CLI)

mise [OPTIONS] [<TASK>] [<TASK_ARGS>] ... [<TASK_ARGS_LAST>] ... [COMMAND]

دستور mise محیط توسعهٔ شما را پیش از اجرای هر دستور آماده می‌کند. https://github.com/jdx/mise

ادامه دادن به اجرای وظایف حتی در صورت شکست خوردن یکی از آن‌ها
تغییر دایرکتوری پیش از اجرای دستور
تنظیم محیط برای بارگذاری `mise.<ENV>.toml`
اجبار در انجام عملیات
تعداد کارهای هم‌روند جهت اجرا؛ مقادیر کمتر از ۱ برابر ۱ در نظر گرفته می‌شوند [پیش‌فرض: 8]
محیط: MISE_JOBS
اجرای آزمایشی، در عمل هیچ کاری انجام نمی‌دهد
تنظیم نمایه (محیط)
پنهان‌سازی پیام‌های غیرخطا
محیط: MISE_QUIET
ابزار(ها) جهت اجرا علاوه بر موارد موجود در فایل‌های mise.toml، مانند: node@20 python@3.10
نمایش خروجی بیشتر (برای جزئیات بیشتر از -vv استفاده کنید)
پاسخ مثبت (yes) به تمام اعلان‌های تأیید
تنظیم سطح گزارش‌گیری روی debug
هیچ فایل پیکربندی‌ای بارگذاری نشود

همچنین می‌توان از `MISE_NO_CONFIG=1` استفاده کرد

متغیرهای محیطی از فایل‌های پیکربندی بارگذاری نشوند

همچنین می‌توان از `MISE_NO_ENV=1` استفاده کرد

قلاب‌ها (hooks) از فایل‌های پیکربندی اجرا نشوند

همچنین می‌توان از `MISE_NO_HOOKS=1` استفاده کرد

پنهان‌سازی زمان سپری‌شده پس از اتمام هر وظیفه

پیش‌فرضِ همیشه پنهان با `MISE_TASK_TIMINGS=0`

خواندن/نوشتن مستقیم روی stdin/stdout/stderr به جای خط به خط
الزام به وجود نشانی‌های وب (URLs) فایل قفل هنگام نصب

در صورتی که ابزارها آدرس‌های از پیش تفکیک‌شده در فایل قفل برای پلتفرم فعلی نداشته باشند، با شکست مواجه می‌شود. این کار مانع از فراخوانی API به GitHub، رجیستری aqua و غیره می‌شود. همچنین می‌تواند از طریق MISE_LOCKED=1 یا settings.locked=true فعال شود

پنهان‌سازی تمام خروجی‌های وظایف و پیام‌های غیرخطای mise
نمایش زمان سپری‌شده پس از اتمام هر وظیفه

پیش‌فرضِ همیشه نمایان با `MISE_TASK_TIMINGS=1`

تنظیم سطح گزارش‌گیری روی trace
چاپ راهنما.SH "آرگومان‌ها (ARGUMENTS)"
<TASK>
تسک (وظیفه) برای اجرا.

کوتاه‌نوشتی برای `mise tasks run <TASK>`.

<TASK_ARGS>
آرگومان‌های تسک

مقداردهی اولیه mise در نشست فعلی شل
مدیریت نام‌های مستعار (alias) نسخه ابزار.
نام‌های مستعار: alias, aliases
نمایش یک نام مستعار برای یک ابزار
فهرست کردن نام‌های مستعار نسخه‌های ابزار
نام‌های مستعار: list
افزودن یا به‌روزرسانی یک نام مستعار برای یک ابزار/backend
نام‌های مستعار: add, create
پاک کردن یک نام مستعار برای یک ابزار/backend
نام‌های مستعار: rm, remove, delete, del
مدیریت backendها
نام‌های مستعار: b, backend, backend-list
فهرست کردن backendهای توکار
نام‌های مستعار: list
فهرست کردن تمام مسیرهای اجرایی (bin) فعال محیط زمان اجرا
راه‌اندازی سیستم برای پیکربندی فعلی تنها با یک دستور
نام‌های مستعار: bs
مدیریت کاربران و گروه‌های لینوکس از `[bootstrap.users]` و `[bootstrap.groups]`
اعمال کاربران و گروه‌های پیکربندی‌شده لینوکس
نمایش وضعیت کاربران و گروه‌های پیکربندی‌شده لینوکس
مدیریت پروژه‌های Docker Compose از `[bootstrap.compose]`
اعمال وضعیت پیکربندی‌شده پروژه‌های Docker Compose
نمایش وضعیت پیکربندی‌شده پروژه‌های Docker Compose
مدیریت دات‌فایل‌ها (dotfiles) از `[dotfiles]`
افزودن یا به‌روزرسانی دات‌فایل‌ها در `[dotfiles]`
اعمال دات‌فایل‌ها از `[dotfiles]`
نمایش تغییرات مورد نیاز برای اعمال دات‌فایل‌ها از `[dotfiles]`
ویرایش منبع دات‌فایل مدیریت‌شده
نمایش وضعیت دات‌فایل‌ها از `[dotfiles]`
نام‌های مستعار: ls
حذف دات‌فایل‌های اعمال‌شده از `[dotfiles]`
مدیریت فایل‌ها و دایرکتوری‌های دارای دسترسی ویژه از `[bootstrap.files]` و `[bootstrap.directories]`
اعمال فایل‌ها و دایرکتوری‌های دارای دسترسی ویژه پیکربندی‌شده
نمایش وضعیت فایل‌ها و دایرکتوری‌های دارای دسترسی ویژه پیکربندی‌شده
مدیریت فایروال میزبان لینوکس از `[bootstrap.linux.firewall]`
اعمال فایروال پیکربندی‌شده میزبان لینوکس
نمایش وضعیت فایروال پیکربندی‌شده میزبان لینوکس
مدیریت پیکربندی راه‌اندازی لینوکس از `[bootstrap.linux]`
مدیریت سرویس‌های کاربری systemd از `[bootstrap.linux.systemd.units]`
نام‌های مستعار: systemd
مدیریت پیکربندی راه‌اندازی macOS از `[bootstrap.macos]`
مدیریت defaults در macOS از `[bootstrap.macos.defaults]`
مدیریت LaunchAgents در macOS از `[bootstrap.macos.launchd.agents]`
نام‌های مستعار: launchd
مدیریت فعال‌سازی شل mise از `[bootstrap.mise_shell_activate]`
نام‌های مستعار: shell
مدیریت بسته‌های سیستم راه‌اندازی از `[bootstrap.packages]`
اعمال بسته‌های سیستمی از `[bootstrap.packages]`
نام‌های مستعار: i, install
مدیریت مخازن tap در Homebrew استفاده‌شده توسط بسته‌های راه‌اندازی
افزودن نشانی اینترنتی Homebrew tap به [bootstrap.brew.taps]
حذف نشانی‌های اینترنتی Homebrew tap از [bootstrap.brew.taps]
نام‌های مستعار: remove, rm bootstrap packages import وارد کردن بسته‌های سیستمی نصب‌شده به `[bootstrap.packages]`
پاکسازی بسته‌های سیستمی نصب‌شده که دیگر در `[bootstrap.packages]` تعریف نشده‌اند
نمایش وضعیت بسته‌های سیستمی از `[bootstrap.packages]`
نام‌های مستعار: ls
ارتقای بسته‌های bootstrap نصب‌شده از `[bootstrap.packages]`
نام‌های مستعار: up
افزودن بسته‌های bootstrap به [bootstrap.packages] و نصب آن‌ها
نام‌های مستعار: u
نمایش تغییراتی که منابع تعریفی bootstrap اعمال خواهند کرد
مدیریت افزونه‌های مدیر بستهٔ تعریف‌شده در `[bootstrap.plugins]`
راه‌اندازی اولیه (bootstrap) یک یا چند ماشین از طریق OpenSSH
مدیریت دریافت مخازن git از `[bootstrap.repos]`
بررسی ورودی‌های محرمانهٔ bootstrap بدون فاش کردن مقادیر آن‌ها
نمایش در دسترس بودن ورودی‌های محرمانهٔ تعریف‌شده برای bootstrap
مدیریت سرویس‌های سیستمی لینوکس از `[bootstrap.services]`
اعمال وضعیت پیکربندی‌شدهٔ سرویس‌های سیستمی لینوکس
نمایش وضعیت پیکربندی‌شدهٔ سرویس‌های سیستمی لینوکس
نمایش وضعیت تجمیعی bootstrap
نام‌های مستعار: ls
مدیریت تنظیمات bootstrap کاربر فعلی از `[bootstrap.user]`
مدیریت حافظهٔ پنهان mise
حذف تمام فایل‌های حافظهٔ پنهان در mise
نام‌های مستعار: c, clean
نمایش مسیر دایرکتوری حافظهٔ پنهان
نام‌های مستعار: dir
حذف فایل‌های کهنهٔ حافظهٔ پنهان mise
نام‌های مستعار: p
بررسی مدخل‌های حافظهٔ پنهان خروجی برای یک تسک
تولید تکمیل خودکار پوسته
نام‌های مستعار: complete, completions
مدیریت فایل‌های پیکربندی
نام‌های مستعار: cfg, toml
نمایش مقدار یک تنظیم در فایل mise.toml
فهرست کردن فایل‌های پیکربندی در حال استفاده
نام‌های مستعار: list
تنظیم مقدار یک مشخصه در فایل mise.toml
غیرفعال‌سازی mise برای نشست فعلی پوسته
بررسی نصب mise برای یافتن مشکلات احتمالی
نام‌های مستعار: dr
چاپ مدخل‌های فعلی PATH که توسط mise ارائه شده‌اند
نام‌های مستعار: paths
راه‌اندازی یک پوسته جدید با محیط mise ایجادشده از روی پیکربندی فعلی
برون‌ریزی متغیرهای محیطی برای یک بار فعال‌سازی mise
نام‌های مستعار: e
اجرای یک دستور با ابزار(های) تعیین‌شده
نام‌های مستعار: x
قالب‌بندی فایل mise.toml
تولید فایل‌ها برای ابزارها و سرویس‌های گوناگون
نام‌های مستعار: gen, g
تولید یک فایل mise.toml
تولید یک devcontainer برای اجرای mise
تولید یک قلاب (hook) برای git pre-commit
نام‌های مستعار: pre-commit
تولید یک فایل گردش کار (workflow) برای GitHub Action
تولید یک اسکریپت برای بارگیری و اجرای mise.TP generate task-docs تولید مستندات برای وظایف در یک پروژه
ایجاد shims برای اجرای وظایف mise
تولید یک tool stub برای ابزارهای مبتنی بر HTTP
حذف CLI ابزار mise و تمامی داده‌های مرتبط
ویرایش تعاملی mise.toml
نصب نسخه یک ابزار
نام‌های مستعار: i
نصب نسخه یک ابزار در یک مسیر مشخص
دریافت آخرین نسخه موجود برای یک افزونه
ایجاد پیوند نمادین (symlink) از نسخه یک ابزار در mise
نام‌های مستعار: ln
به‌روزرسانی چک‌سام‌ها و URLهای lockfile برای تمام پلتفرم‌های مشخص‌شده
فهرست کردن نسخه‌های نصب‌شده و فعال ابزارها
نام‌های مستعار: list
فهرست کردن نسخه‌های runtime موجود برای نصب.
نام‌های مستعار: list-all, list-remote
اجرای سرور Model Context Protocol (MCP)
[آزمایشی] ساخت ایمیج‌های کانتینر OCI از یک mise.toml
[آزمایشی] ساخت یک ایمیج OCI از mise.toml فعلی
[آزمایشی] ساخت یک ایمیج OCI و ارسال (push) آن به یک رجیستری
[آزمایشی] ساخت یک ایمیج OCI از mise.toml فعلی و اجرای یک دستور در آن
نمایش نسخه‌های قدیمی ابزارها
نمایش افرادی که به عنوان حامیان سطح Patron از mise پشتیبانی می‌کنند
مدیریت افزونه‌ها
نام‌های مستعار: p, plugin, plugin-list
نصب یک افزونه
نام‌های مستعار: i, a, add
ایجاد پیوند نمادین (symlink) از یک افزونه در mise
نام‌های مستعار: ln
فهرست کردن افزونه‌های نصب‌شده
نام‌های مستعار: list
نام‌های مستعار: list-remote, list-all
حذف یک افزونه
نام‌های مستعار: remove, rm
به‌روزرسانی یک افزونه به آخرین نسخه
نام‌های مستعار: up, upgrade
[آزمایشی] مدیریت وابستگی‌های پروژه
نام‌های مستعار: dep, prepare
افزودن یک وابستگی
نصب تمامی وابستگی‌های پروژه
حذف یک وابستگی
حذف نسخه‌های استفاده‌نشده ابزارها
فهرست کردن ابزارهای در دسترس برای نصب
ایجاد shims جدید بر اساس مسیرهای bin از ابزارهای نصب‌شده فعلی.
اجرای وظیفه(ها)
نام‌های مستعار: r
جستجو برای ابزارها در رجیستری
به‌روزرسانی خود mise.
تنظیم متغیرهای محیطی در mise.toml
نام‌های مستعار: ev, env-vars
مدیریت تنظیمات
افزودن یک تنظیم به فایل پیکربندی
نمایش یک تنظیم فعلی
نمایش تنظیمات فعلی
نام‌های مستعار: list
افزودن/به‌روزرسانی یک تنظیم
نام‌های مستعار: create
پاک کردن یک تنظیم
نام‌های مستعار: rm, remove, delete, del shell تنظیم نسخه یک ابزار برای نشست جاری.
نام‌های مستعار: sh
مدیریت نام‌های مستعار پوسته.
نمایش دستور مربوط به یک نام مستعار پوسته
فهرست کردن نام‌های مستعار پوسته
نام‌های مستعار: list
افزودن یا به‌روزرسانی یک نام مستعار پوسته
نام‌های مستعار: add, create
حذف یک نام مستعار پوسته
نام‌های مستعار: rm, remove, delete, del
نمایش شرکت‌های حامی مالی mise و ابزارهای متن‌باز jdx.dev
همگام‌سازی ابزارها از سایر مدیرهای نسخه با mise
ایجاد پیوند نمادین از تمام نسخه‌های ابزار بیرونی به mise
ایجاد پیوند نمادین از تمام نسخه‌های ابزار بیرونی به mise
ایجاد پیوند نمادین از تمام نسخه‌های ابزار ruby بیرونی به mise
مدیریت وظایف
نام‌های مستعار: t, task
ایجاد یک وظیفه جدید
نمایش ساختار درختی گراف وابستگی‌ها
ویرایش یک وظیفه با $EDITOR
[آزمایشی] بررسی گراف پروژه فضای کاری
دریافت اطلاعات درباره یک وظیفه
فهرست کردن وظایف موجود برای اجرا
اجرای وظیفه(ها)
نام‌های مستعار: r
اعتبارسنجی وظایف برای بررسی خطاها و مشکلات رایج
آزمایش نصب و اجرای یک ابزار
نمایش توکن‌های ارائه‌دهنده گیت که mise استفاده خواهد کرد
نمایش توکن Forgejo که mise برای میزبان مشخص‌شده استفاده خواهد کرد
نمایش توکن GitHub که mise برای میزبان مشخص‌شده استفاده خواهد کرد
نمایش توکن GitLab که mise برای میزبان مشخص‌شده استفاده خواهد کرد
دریافت اطلاعات درباره یک ابزار
اجرای یک جانشین موقت (stub) ابزار
علامت‌گذاری یک فایل پیکربندی به‌عنوان قابل‌اعتماد
حذف نسخه‌های نصب‌شده ابزار
حذف متغیر(های) محیطی از فایل پیکربندی.
حذف اعتماد صریح به یک پیکربندی
حذف نسخه‌های نصب‌شده ابزار از mise.toml
نام‌های مستعار: rm, remove
ارتقای ابزارهای قدیمی
نام‌های مستعار: up
نصب یک ابزار و افزودن نسخه آن به mise.toml.
نام‌های مستعار: u
نمایش نسخه mise
نام‌های مستعار: v
اجرای وظیفه(ها) و نظارت بر تغییرات جهت اجرای مجدد آن
نام‌های مستعار: w
نمایش مسیر نصب یک ابزار
نمایش مسیری که فایل اجرایی (bin) یک ابزار به آن اشاره دارد..SH "MISE ACTIVATE" مقداردهی اولیه mise در نشست جاری پوسته

این دستور باید در فایل rc یا پوستهٔ ورود (login shell) شما قرار گیرد. در غیر این صورت، تنها در نشست جاری اعمال خواهد شد. (برای مثال: ~/.zshrc، ~/.zprofile، ~/.zshenv، ~/.bashrc، ~/.bash_profile، ~/.profile، ~/.config/fish/config.fish یا $PROFILE برای powershell)

به‌طور معمول، این مورد را می‌توان با دستوری شبیه به زیر افزود:


echo 'eval "$(mise activate zsh)"' >> ~/.zshrc

با این حال، این کار نیازمند آن است که "mise" در PATH شما قرار داشته باشد. اگر چنین نیست، باید مسیر کامل را به‌این صورت مشخص کنید:


echo 'eval "$(/path/to/mise activate zsh)"' >> ~/.zshrc

سفارشی‌سازی خروجی وضعیت با تنظیمات `status` امکان‌پذیر است.

نحوه استفاده: mise activate [OPTIONS] [<SHELL_TYPE>]

گزینه‌ها:

عدم نمایش پیام‌های غیرخطا
نوع پوسته برای تولید اسکریپت
عدم فراخوانی خودکار hook-env

این گزینه می‌تواند برای اشکال‌زدایی mise مفید باشد. اگر دستور `eval "$(mise activate --no-hook-env)"` را اجرا کنید، می‌توانید `mise hook-env` را به‌صورت دستی فراخوانی کنید که متغیرهای محیطی را بدون تغییر واقعی در محیط، در stdout چاپ می‌کند. به‌این ترتیب می‌توانید کارهایی مانند `mise hook-env --trace` را برای دریافت اطلاعات بیشتر انجام دهید یا صرفاً مقادیری را که hook-env در خروجی تولید می‌کند ببینید.

استفاده از shimها به‌جای تغییر PATH در عمل معادل است با:


PATH="$HOME/.local/share/mise/shims:$PATH"

دستور `mise activate --shims` از تمام ویژگی‌های `mise activate` پشتیبانی نمی‌کند. برای اطلاعات بیشتر به https://mise.jdx.dev/dev-tools/shims.html#shims-vs-path مراجعه کنید

نمایش پیام "mise: <TOOL>@<VERSION>" هنگام تغییر دایرکتوری‌ها
نمایش راهنما آرگومان‌ها:
<SHELL_TYPE>
نوع پوسته برای تولید اسکریپت

مدیریت نام‌های مستعار نگارش‌های ابزار.

نحوه استفاده: mise tool-alias [OPTIONS] [COMMAND]

گزینه‌ها:

فیلتر کردن نام‌های مستعار بر اساس ابزار
عدم نمایش سربرگ جدول
نمایش راهنما

نمایش یک نام مستعار برای یک ابزار

این دستور محتوای یک مدخل tool_alias.<TOOL> در ~/.config/mise/config.toml است

نحوه استفاده: mise tool-alias get [OPTIONS] <TOOL> <ALIAS>

گزینه‌ها:

نمایش راهنما آرگومان‌ها:
<TOOL>
ابزاری که نام مستعار آن نمایش داده می‌شود
<ALIAS>
نام مستعاری که باید نمایش داده شود.SH "MISE TOOL-ALIAS LS" فهرست کردن نام‌های مستعار نسخه‌های ابزار نام‌های مستعاری که می‌توان تعیین کرد را نشان می‌دهد. این موارد می‌توانند از پیکربندی کاربر یا از افزونه‌ها در `bin/list-aliases` بیایند.

برای پیکربندی کاربر، نام‌های مستعار مانند زیر در `~/.config/mise/config.toml` تعریف می‌شوند:


[tool_alias.node.versions]
lts = "22.0.0"

نحوه استفاده: mise tool-alias ls [OPTIONS] [<TOOL>]

گزینه‌ها:

عدم نمایش سربرگ جدول
نمایش راهنما آرگومان‌ها:
<TOOL>
نمایش نام‌های مستعار برای <TOOL>

افزودن یا به‌روزرسانی یک نام مستعار برای یک ابزار/backend

این دستور محتوای ~/.config/mise/config.toml را تغییر می‌دهد

نحوه استفاده: mise tool-alias set [OPTIONS] <TOOL> <ALIAS> [<VALUE>]

گزینه‌ها:

نمایش راهنما آرگومان‌ها:
<TOOL>
ابزار/backend مورد نظر برای تنظیم نام مستعار
<ALIAS>
نام مستعار جهت تنظیم
<VALUE>
مقداری که باید برای نام مستعار تنظیم شود

پاک کردن یک نام مستعار برای یک ابزار/backend

این دستور محتوای ~/.config/mise/config.toml را تغییر می‌دهد

نحوه استفاده: mise tool-alias unset [OPTIONS] <TOOL> [<ALIAS>]

گزینه‌ها:

نمایش راهنما آرگومان‌ها:
<TOOL>
ابزار/backend مورد نظر برای حذف نام مستعار
<ALIAS>
نام مستعار جهت حذف

مدیریت backendها

نحوه استفاده: mise backends [OPTIONS] [COMMAND]

گزینه‌ها:

نمایش راهنما

فهرست کردن backendهای توکار (built-in)

نحوه استفاده: mise backends ls [OPTIONS]

گزینه‌ها:

نمایش راهنما.SH "MISE BIN-PATHS" فهرست کردن تمام مسیرهای bin فعال زمان اجرا

کاربرد: mise bin-paths [OPTIONS] [<TOOL@VERSION>] ...

گزینه‌ها:

نمایش نام‌های فایل‌های اجرایی به جای دایرکتوری‌های bin
نمایش ورودی‌های اجرایی در قالب JSON (شامل --bin-names نیز می‌شود)
نمایش راهنما آرگومان‌ها:
<TOOL@VERSION>
ابزار(ها) جهت جستجو برای نمونه: ruby@3

راه‌اندازی و آماده‌سازی سیستم بر اساس پیکربندی فعلی با یک دستور

مراحل راه‌اندازی (bootstrap) را به ترتیب برای پیکربندی فعلی اجرا می‌کند:

0. `mise bootstrap accounts apply` — همگام‌سازی `[bootstrap.users]` و
`[bootstrap.groups]` (لینوکس) 1. `mise bootstrap plugins apply` — نصب `[bootstrap.plugins]`
1.7. `[bootstrap.hooks.pre-packages]` — قلاب راه‌اندازی اختیاری 2. نصب ورودی‌های built-in-manager از `[bootstrap.packages]` 3. `mise bootstrap files apply` — همگام‌سازی `[bootstrap.files]` و
`[bootstrap.directories]` 4. `mise bootstrap services apply` — همگام‌سازی سرویس‌های سیستمی systemd در
`[bootstrap.services]` (لینوکس) 5. `mise bootstrap firewall apply` — همگام‌سازی سیاست‌ها و قوانین فایروال میزبان در
`[bootstrap.linux.firewall]` (لینوکس) 6. `mise bootstrap compose apply` — همگام‌سازی پروژه‌های Docker Compose در
`[bootstrap.compose]` 7. `mise bootstrap repos apply` — کلون/همگام‌سازی `[bootstrap.repos]`
محصور شده با قلاب‌های `pre-repos`/`post-repos` 8. `mise bootstrap dotfiles apply` — اعمال dotfiles از `[dotfiles]`
محصور شده با قلاب‌های `pre-dotfiles`/`post-dotfiles` 9. `mise bootstrap mise-shell-activate apply` — پیکربندی فعال‌سازی پوسته
از `[bootstrap.mise_shell_activate]` 10. `mise bootstrap macos defaults apply` — نوشتن ورودی‌های
`[bootstrap.macos.defaults]` (سیستم‌عامل macOS)
محصور شده با قلاب‌های `pre-defaults`/`post-defaults` 11. `mise bootstrap macos launchd-agents apply` — نصب/بارگذاری
`[bootstrap.macos.launchd.agents]` 12. `mise bootstrap linux systemd-units apply` — نصب/راه‌اندازی
`[bootstrap.linux.systemd.units]` 13. `mise bootstrap user apply` — تنظیم `[bootstrap.user].login_shell`
(یونیکس)
محصور شده با قلاب‌های `pre-user`/`post-user` 14. `mise install` — نصب ابزارهای ناموجود از `[tools]`
محصور شده با قلاب‌های `pre-tools`/`post-tools`؛ ورودی‌های package-plugin
از `[bootstrap.packages]` پس از آن نصب می‌شوند، و به دنبال آن
`[bootstrap.hooks.post-packages]` اجرا می‌گردد 15. `mise run bootstrap` — در صورت تعریف بودن وظیفه‌ای با نام `bootstrap` 16. `[bootstrap.hooks.final]` — قلاب نهایی اختیاری

مراحل توصیفی (declarative) همگام‌سازی می‌شوند — هر موردی که از قبل در وضعیت مطلوب خود باشد نادیده گرفته می‌شود، بنابراین اجرای مجدد آن امن است. وظیفهٔ `bootstrap` با هر بار فراخوانی اجرا می‌شود؛ آن را خودتوان (idempotent) نگه دارید. از آن برای هرگونه راه‌اندازی مختص پروژه که در بخش‌های توصیفی نمی‌گنجد (مقداردهی اولیه پایگاه‌داده، جریان‌های احراز هویت و غیره) استفاده کنید — این دستور همراه با ابزارهای نصب‌شده روی PATH اجرا می‌شود.

برای نادیده گرفتن بخش‌های مشخص‌شده از `--skip <part>` یا برای اجرای صرفاً همان بخش‌ها از `--only <part>` استفاده کنید. هر دو پرچم می‌توانند تکرار شوند یا با کاما از هم جدا گردند، اما نمی‌توان آن‌ها را هم‌زمان با یکدیگر به کار برد.

کاربرد: mise bootstrap [OPTIONS] [COMMAND]

گزینه‌ها:

کلون کردن یک مخزن git و راه‌اندازی (bootstrap) بر اساس پیکربندی آن
دایرکتوری مورد استفاده برای مخزن کلون‌شده با --from
نمایش رویدادها بدون نصب هیچ موردی
نادیده گرفتن پیام‌های تایید
نادیده گرفتن مخازن پیکربندی‌شده دارای تغییرات محلی به جای ناموفق شدن عملیات
بازنویسی روی فایل‌های موجود که با ورودی‌های تمام‌فایلیِ dotfile تداخل دارند
اجرای تنها یک یا چند بخش راه‌اندازی (bootstrap)

می‌تواند چندین بار ارسال شده یا به عنوان فهرستی جداشده با کاما باشد. نمی‌توان آن را همراه با `--skip` به کار برد.

درخواست امن ورودی‌های محرمانهٔ ناموجود برای راه‌اندازی
نادیده گرفتن یک یا چند بخش راه‌اندازی (bootstrap)

می‌تواند چندین بار ارسال شده یا به عنوان فهرستی جداشده با کاما باشد.

تازه‌سازی فراداده‌های مدیر بسته و به‌روزرسانی مخازن پیکربندی‌شده
نمایش راهنما.SH "MISE BOOTSTRAP ACCOUNTS" مدیریت کاربران و گروه‌های لینوکس از `[bootstrap.users]` و `[bootstrap.groups]`

نحوه استفاده: mise bootstrap accounts [OPTIONS] <COMMAND>

گزینه‌ها:

نمایش راهنما

اعمال کاربران و گروه‌های پیکربندی‌شده لینوکس

نحوه استفاده: mise bootstrap accounts apply [OPTIONS]

گزینه‌ها:

نمایش تغییرات بدون اعمال هیچ تغییری
رد کردن پیام درخواست تأیید
نمایش راهنما

نمایش وضعیت کاربران و گروه‌های پیکربندی‌شده لینوکس

نحوه استفاده: mise bootstrap accounts status [OPTIONS]

گزینه‌ها:

خروجی در قالب JSON
خروج با کد ۱ در صورت عدم همگرایی هر یک از حساب‌ها
نمایش راهنما

مدیریت پروژه‌های Docker Compose از `[bootstrap.compose]`

نحوه استفاده: mise bootstrap compose [OPTIONS] <COMMAND>

گزینه‌ها:

نمایش راهنما

اعمال وضعیت پیکربندی‌شده پروژه‌های Docker Compose

نحوه استفاده: mise bootstrap compose apply [OPTIONS]

گزینه‌ها:

نمایش تغییرات بدون اعمال هیچ تغییری
رد کردن پیام درخواست تأیید
نمایش راهنما

نمایش وضعیت پیکربندی‌شده پروژه‌های Docker Compose

نحوه استفاده: mise bootstrap compose status [OPTIONS]

گزینه‌ها:

خروجی در قالب JSON
خروج با کد ۱ در صورت عدم همگرایی هر یک از پروژه‌های Compose
نمایش راهنما.SH "MISE BOOTSTRAP DOTFILES" مدیریت dotfileها از `[dotfiles]`

نحوه استفاده: mise bootstrap dotfiles [OPTIONS] <COMMAND>

گزینه‌ها:

نمایش راهنما

افزودن یا به‌روزرسانی dotfileها در `[dotfiles]`

اگر هدف از قبل مدیریت شده باشد، این دستور منبع آن را از هدف زنده به‌روزرسانی می‌کند. در غیر این صورت، یک مدخل `[dotfiles]` ایجاد کرده و منبع را در `dotfiles.root` قرار می‌دهد، مگر اینکه `--source` مشخص شده باشد.

نحوه استفاده: mise bootstrap dotfiles add [OPTIONS] [<TARGET>] ...

گزینه‌ها:

به‌روزرسانی منابع تمام فایل‌های تغییریافته که در حالت copy مدیریت می‌شوند
بازنویسی منابع موجود بدون درخواست تأیید
نوشتن در پیکربندی سراسری (global)
نوشتن در پیکربندی محلی (local) به جای پیکربندی سراسری
حالت dotfile برای نوشتن
چاپ به‌روزرسانی‌های پیکربندی/منبع بدون نوشتن هیچ تغییری
افزودن مدخل بدون اعمال آن
نوشتن در این فایل پیکربندی یا دایرکتوری
مسیر منبع برای استفاده جهت یک هدف تکی
صرف‌نظر از اعلان تأیید
نمایش راهنما آرگومان‌ها:
<TARGET>
هدف‌ها برای افزودن یا به‌روزرسانی

اعمال dotfileها از `[dotfiles]`

مدخل‌های پیکربندی‌شده به‌صورت کل فایل (whole-file) و ویرایش‌هایی را که در وضعیت مطلوب خود نیستند، اعمال می‌کند. مدخل‌های کل فایل ممکن است پیوند نمادین (symlink)، کپی، یا قالب‌ها را رندر (render) کنند. مدخل‌های ویرایش، یک بلوک محدودشده با نشانگر یا یک خط منفرد را در فایلی مدیریت می‌کنند که mise در حالت عادی مالکیتی بر آن ندارد.

نحوه استفاده: mise bootstrap dotfiles apply [OPTIONS] [<TARGET>] ...

گزینه‌ها:

بازنویسی فایل‌های موجود که با مدخل‌های dotfile از نوع کل فایل تداخل دارند
چاپ اقداماتی که اجرا خواهند شد بدون نوشتن هیچ تغییری
صرف‌نظر از اعلان تأیید
نمایش راهنما آرگومان‌ها:
<TARGET>
تنها اعمال این هدف‌ها.SH "MISE BOOTSTRAP DOTFILES DIFF" نمایش تغییرات لازم جهت اعمال دات‌فایل‌ها از `[dotfiles]`

کاربرد: mise bootstrap dotfiles diff [OPTIONS] [<TARGET>] ...

گزینه‌ها:

نمایش راهنما آرگومان‌ها:
<TARGET>
تنها نمایش این هدف‌ها

ویرایش منبع یک دات‌فایل مدیریت‌شده

کاربرد: mise bootstrap dotfiles edit [OPTIONS] <TARGET>

گزینه‌ها:

اعمال این هدف پس از خروج از ویرایشگر
حالت دات‌فایل مورد استفاده در صورتی که هدف هنوز مدیریت نشده باشد
مسیر منبع مورد استفاده در صورتی که هدف هنوز مدیریت نشده باشد
صرف‌نظر کردن از اعلان تأیید هنگام افزودن یک هدف مدیریت‌نشده
نمایش راهنما آرگومان‌ها:
<TARGET>
هدف جهت ویرایش

نمایش وضعیت دات‌فایل‌ها از `[dotfiles]`

کاربرد: mise bootstrap dotfiles status [OPTIONS] [<TARGET>] ...

گزینه‌ها:

خروجی در قالب JSON
خروج با کد ۱ در صورتی که هر یک از دات‌فایل‌های پیکربندی‌شده در وضعیت مطلوب خود نباشند (ناموجود، منبع ناموجود، دارای تفاوت)
نمایش راهنما آرگومان‌ها:
<TARGET>
تنها نمایش این هدف‌ها

حذف دات‌فایل‌های اعمال‌شده از `[dotfiles]`

مدخل‌های فایل کامل و ویرایش‌های پیکربندی‌شده را حذف می‌کند، در حالی که فایل‌هایی را که mise نمی‌تواند به‌عنوان مدیریت‌شده شناسایی کند حفظ می‌نماید. رونوشت‌های تغییریافته، قالب‌ها و ویرایش‌های خطوط ساده نیازمند `--force` هستند.

کاربرد: mise bootstrap dotfiles unapply [OPTIONS] [<TARGET>] ...

گزینه‌ها:

حذف فایل‌ها و خطوط مدیریت‌شدهٔ تغییریافته یا به‌نوعی مبهم
چاپ اقداماتی که بدون نوشتن هیچ داده‌ای اجرا خواهند شد
صرف‌نظر کردن از اعلان تأیید
نمایش راهنما آرگومان‌ها:
<TARGET>
تنها لغو اعمال این هدف‌ها.SH "MISE BOOTSTRAP FILES" مدیریت فایل‌ها و دایرکتوری‌های دارای دسترسی ویژه از `[bootstrap.files]` و `[bootstrap.directories]`

کاربرد: mise bootstrap files [OPTIONS] <COMMAND>

گزینه‌ها:

نمایش راهنما

اعمال فایل‌ها و دایرکتوری‌های دارای دسترسی ویژهٔ پیکربندی‌شده

کاربرد: mise bootstrap files apply [OPTIONS]

گزینه‌ها:

نمایش تغییرات احتمالی بدون اعمال هیچ تغییری
صرف‌نظر کردن از اعلان تأیید
درخواست امن برای ورودی‌های محرمانهٔ (secret) ناموجود bootstrap
نمایش راهنما

نمایش وضعیت فایل‌ها و دایرکتوری‌های دارای دسترسی ویژهٔ پیکربندی‌شده

کاربرد: mise bootstrap files status [OPTIONS]

گزینه‌ها:

خروجی در قالب JSON
خروج با کد 1 هنگامی که هر یک از منابع همگرا نشده باشند
درخواست امن برای ورودی‌های محرمانهٔ (secret) ناموجود bootstrap
نمایش راهنما

مدیریت فایروال میزبان لینوکس از `[bootstrap.linux.firewall]`

کاربرد: mise bootstrap firewall [OPTIONS] <COMMAND>

گزینه‌ها:

نمایش راهنما

اعمال فایروال پیکربندی‌شدهٔ میزبان لینوکس

کاربرد: mise bootstrap firewall apply [OPTIONS]

گزینه‌ها:

نمایش تغییرات احتمالی بدون اعمال هیچ تغییری
صرف‌نظر کردن از اعلان تأیید
نمایش راهنما

نمایش وضعیت فایروال پیکربندی‌شدهٔ میزبان لینوکس

کاربرد: mise bootstrap firewall status [OPTIONS]

گزینه‌ها:

خروجی در قالب JSON
خروج با کد 1 هنگامی که فایروال همگرا نشده باشد
نمایش راهنما.SH "MISE BOOTSTRAP LINUX" مدیریت پیکربندی راه‌اندازی لینوکس از `[bootstrap.linux]`

کاربرد: mise bootstrap linux [OPTIONS] <COMMAND>

گزینه‌ها:

نمایش راهنما

مدیریت سرویس‌های کاربری systemd از `[bootstrap.linux.systemd.units]`

کاربرد: mise bootstrap linux systemd-units [OPTIONS] <COMMAND>

گزینه‌ها:

نمایش راهنما

کاربرد: mise bootstrap linux systemd-units apply [OPTIONS]

گزینه‌ها:

نمایش دستوراتی که اجرا خواهند شد، بدون اجرای واقعی آن‌ها
رد کردن اعلان تأیید
نمایش راهنما

کاربرد: mise bootstrap linux systemd-units status [OPTIONS]

گزینه‌ها:

خروجی در قالب JSON
خروج با کد وضعیت ۱ در صورتی که هر یک از سرویس‌های کاربری پیکربندی‌شدهٔ systemd در وضعیت مطلوب خود نباشد
نمایش راهنما

مدیریت پیکربندی راه‌اندازی macOS از `[bootstrap.macos]`

کاربرد: mise bootstrap macos [OPTIONS] <COMMAND>

گزینه‌ها:

نمایش راهنما

مدیریت پیش‌فرض‌های macOS از `[bootstrap.macos.defaults]`

کاربرد: mise bootstrap macos defaults [OPTIONS] <COMMAND>

گزینه‌ها:

نمایش راهنما

کاربرد: mise bootstrap macos defaults apply [OPTIONS]

گزینه‌ها:

نمایش دستوراتی که اجرا خواهند شد، بدون اجرای واقعی آن‌ها
رد کردن اعلان تأیید
نمایش راهنما.SH "MISE BOOTSTRAP MACOS DEFAULTS STATUS" کاربرد: mise bootstrap macos defaults status [OPTIONS]

گزینه‌ها:

خروجی در قالب JSON
خروج با کد ۱ در صورتی که هر یک از تنظیمات پیش‌فرض (defaults) پیکربندی‌شده در وضعیت مطلوب خود نباشند
نمایش راهنما

مدیریت LaunchAgentهای macOS از طریق `[bootstrap.macos.launchd.agents]`

کاربرد: mise bootstrap macos launchd-agents [OPTIONS] <COMMAND>

گزینه‌ها:

نمایش راهنما

کاربرد: mise bootstrap macos launchd-agents apply [OPTIONS]

گزینه‌ها:

نمایش دستوراتی که بدون اجرای واقعی، اجرا خواهند شد
صرف‌نظر کردن از اعلان تأیید
نمایش راهنما

کاربرد: mise bootstrap macos launchd-agents status [OPTIONS]

گزینه‌ها:

خروجی در قالب JSON
خروج با کد ۱ در صورتی که هر یک از LaunchAgentهای پیکربندی‌شده در وضعیت مطلوب خود نباشند
نمایش راهنما

مدیریت فعال‌سازی پوسته mise از طریق `[bootstrap.mise_shell_activate]`

کاربرد: mise bootstrap mise-shell-activate [OPTIONS] <COMMAND>

گزینه‌ها:

نمایش راهنما

کاربرد: mise bootstrap mise-shell-activate apply [OPTIONS]

گزینه‌ها:

نمایش اقداماتی که بدون اعمال و نوشتن هیچ تغییری انجام خواهند شد
صرف‌نظر کردن از اعلان تأیید
نمایش راهنما

کاربرد: mise bootstrap mise-shell-activate status [OPTIONS]

گزینه‌ها:

خروجی در قالب JSON
خروج با کد ۱ در صورتی که هر یک از فعال‌سازی‌های پیکربندی‌شده پوسته در وضعیت مطلوب خود نباشند
نمایش راهنما.SH "MISE BOOTSTRAP PACKAGES" مدیریت بسته‌های سیستمی راه‌اندازی (bootstrap) از `[bootstrap.packages]`

طرز استفاده: mise bootstrap packages [OPTIONS] <COMMAND>

گزینه‌ها:

نمایش راهنما

اعمال بسته‌های سیستمی از `[bootstrap.packages]`

بررسی می‌کند که کدام بسته‌های پیکربندی‌شده موجود نیستند و آن‌ها را با مدیر بسته‌ی سیستم نصب می‌کند. مدیرهای بسته سیستمی توکار ممکن است در صورت اجرا نشدن توسط کاربر ریشه (root)، دسترسی را با sudo ارتقا دهند (به `system_packages.sudo` مراجعه کنید)؛ پلاگین‌های بسته هرگز این کار را انجام نمی‌دهند.

بسته‌ها همچنین می‌توانند صراحتاً در قالب `manager:package` مشخص شوند (مانند `apk:zlib-dev`، `apt:curl`، `brew:jq`)؛ این بسته‌ها صرف‌نظر از این‌که در پیکربندی باشند یا خیر، نصب می‌شوند. بسته‌های صریح و `--manager` دامنه‌ی اجرا را تنها به همان بسته‌ها محدود می‌کنند. دستور `install` به عنوان یک نام مستعار برای این دستور پذیرفته می‌شود.

طرز استفاده: mise bootstrap packages apply [OPTIONS] [<PACKAGE>] ...

گزینه‌ها:

فقط بسته‌ها برای این مدیر بسته توکار یا پلاگین نصب شوند
چاپ دستوراتی که اجرا خواهند شد بدون اجرای واقعی آن‌ها
رد کردن پیام تأیید
تازه‌سازی فراداده‌های مدیر بسته پیش از شروع (در apk: `--update-cache`، در apt: `apt-get update`)
نمایش راهنما آرگومان‌ها:
<PACKAGE>
بسته‌ها در قالب `manager:package`؛ مقدار پیش‌فرض تمام موارد پیکربندی‌شده در [bootstrap.packages] است

مدیریت مخازن (taps) ابزار Homebrew مورد استفاده بسته‌های راه‌اندازی

این دستورها `[bootstrap.brew.taps]` را ویرایش می‌کنند تا فرمول‌ها و caskهای tapشده بتوانند مستقیماً توسط mise بدون نیاز به نصب بودن Homebrew دریافت شوند.

طرز استفاده: mise bootstrap packages brew [OPTIONS] <COMMAND>

گزینه‌ها:

نمایش راهنما

افزودن نشانی اینترنتی (URL) یک مخزن Homebrew به [bootstrap.brew.taps]

طرز استفاده: mise bootstrap packages brew tap [OPTIONS] <TAP> [<URL>]

گزینه‌ها:

نوشتن در پیکربندی محلی به‌جای پیکربندی سراسری
چاپ تغییرات پیکربندی بدون ذخیره کردن آن‌ها
نوشتن در این فایل یا دایرکتوری پیکربندی
نمایش راهنما آرگومان‌ها:
<TAP>
نام tap، مانند `owner/repo`
<URL>
نشانی اینترنتی گیت‌هاب برای tap. مقدار پیش‌فرض: https://github.com/<owner>/homebrew-<repo>.git.SH "MISE BOOTSTRAP PACKAGES BREW UNTAP" حذف آدرس‌های tap مربوط به Homebrew از [bootstrap.brew.taps]

نحوه استفاده: mise bootstrap packages brew untap [OPTIONS] <TAPS> ...

گزینه‌ها:

نوشتن در پیکربندی محلی به جای پیکربندی سراسری
چاپ تغییرات پیکربندی بدون نوشتن آن
نوشتن در این فایل یا دایرکتوری پیکربندی
نمایش راهنما آرگومان‌ها:
<TAPS>
نام tap(ها)، مانند `owner/repo`

وارد کردن بسته‌های نصب‌شده سیستمی به `[bootstrap.packages]`

در حال حاضر تنها از فرمول‌های (formulae) Homebrew پشتیبانی می‌کند. به‌طور پیش‌فرض، فرمول‌های پیوندخورده‌ای که رسید فعال keg آن‌ها نشان می‌دهد بنا به درخواست کاربر نصب شده‌اند، وارد می‌شوند. برای وارد کردن تمامی فرمول‌های پیوندخورده از جمله وابستگی‌ها، `--all` را ارسال کنید.

نحوه استفاده: mise bootstrap packages import [OPTIONS]

گزینه‌ها:

نوشتن در فایل پیکربندی مربوط به این محیط (mise.<ENV>.toml)
نوشتن در پیکربندی سراسری (~/.config/mise/config.toml)
تنها وارد کردن بسته‌های مربوط به این مدیر بسته. در حال حاضر فقط `brew` پشتیبانی می‌شود.
پیش‌فرض: brew
وارد کردن تمام فرمول‌های پیوندخورده، از جمله وابستگی‌ها
چاپ تغییرات پیکربندی بدون نوشتن فایل پیکربندی
نوشتن در این فایل یا دایرکتوری پیکربندی
نمایش راهنما

پاکسازی بسته‌های نصب‌شده سیستمی که دیگر در `[bootstrap.packages]` تعریف نشده‌اند

از فرمول‌های Homebrew، caskهای متعلق به mise که با احتیاط قابل حذف هستند، و بسته‌های نصب‌شده توسط افزونه‌های بسته‌ای که `PackageUninstall` را پیاده‌سازی می‌کنند پشتیبانی می‌کند. پاکسازی، بسته‌های مورد نیاز پیکربندی فعلی یا پیکربندی‌های ردیابی‌شده، قابل بارگیری و معتبر را حفظ می‌کند. بسته‌های افزونه که پیش از اعمال اولیه آن‌ها توسط mise نصب شده بودند، هرگز تحت مالکیت قرار نگرفته و حذف نمی‌شوند.

نحوه استفاده: mise bootstrap packages prune [OPTIONS]

گزینه‌ها:

تنها پاکسازی بسته‌های مربوط به این مدیر بسته
پیش‌فرض: brew
چاپ مواردی که حذف خواهند شد بدون پاک کردن هیچ چیز
رد کردن اعلان تأیید
نمایش راهنما.SH "MISE BOOTSTRAP PACKAGES STATUS" نمایش وضعیت بسته‌های سیستم از `[bootstrap.packages]`

نحوه استفاده: mise bootstrap packages status [OPTIONS]

گزینه‌ها:

خروجی در قالب JSON
خروج با کد ۱ در صورتی که هر یک از بسته‌های پیکربندی‌شده در وضعیت مطلوب خود نباشند
نمایش راهنما

ارتقای بسته‌های bootstrap نصب‌شده از `[bootstrap.packages]`

متادیتای مدیر بسته را تازه‌سازی کرده و بسته‌های پیکربندی‌شده‌ای را که پیش‌تر نصب شده‌اند ارتقا می‌دهد: apk/apt/dnf/pacman به جدیدترین نسخه موجود ارتقا می‌یابند (apk، apt و dnf از نسخه پین‌شده در پیکربندی پیروی می‌کنند)، brew نسخه bottle فعلی فرمول را می‌ریزد (pour) و keg قدیمی را جایگزین می‌کند، brew-cask آرتفکت جاری cask را نصب می‌کند، flatpak و flatpak-user برنامه‌ها و زمان‌های اجرا (runtimes) را به‌روزرسانی می‌کنند، و mas برنامه‌های App Store را ارتقا می‌دهد. بسته‌هایی که هنوز نصب نشده‌اند نادیده گرفته می‌شوند — برای آن‌ها از `mise bootstrap packages apply` استفاده کنید.

بسته‌ها را می‌توان به‌طور صریح در قالب `manager:package` نیز مشخص کرد.

نحوه استفاده: mise bootstrap packages upgrade [OPTIONS] [<PACKAGE>] ...

گزینه‌ها:

تنها ارتقای بسته‌ها برای این مدیر بسته توکار یا افزونه
چاپ دستوراتی که بدون اجرا شدن، قرار بود اجرا شوند
رد کردن پیام تایید
نمایش راهنما آرگومان‌ها:
<PACKAGE>
بسته‌ها در قالب `manager:package`؛ به‌طور پیش‌فرض شامل تمام موارد پیکربندی‌شده در [bootstrap.packages] است

افزودن بسته‌های bootstrap به [bootstrap.packages] و نصب آن‌ها

مشابه `mise use` برای ابزارها: ورودی‌های `"manager:package" = "version"` را در mise.toml می‌نویسد (به‌طور پیش‌فرض در پیکربندی محلی، و با `-g` در پیکربندی سراسری) و سپس هر آنچه را که موجود نیست نصب می‌کند.

نسخه‌ها با استفاده از `@` پین (ثابت) می‌شوند: `mise bootstrap packages use apt:curl@8.5.0-2`. بدون `@` (یا با `@latest`) هیچ پینی ثبت نمی‌شود. فرمول‌ها و caskهای brew در عوض از طریق نام‌هایشان نسخه‌بندی می‌شوند (برای مثال `brew:postgresql@17`، `brew-cask:temurin@17`)، که در آن‌ها `@` بخشی از نام Homebrew است نه انتخاب‌گر نسخه mise. مدیر بسته mas از شناسه‌های عددی ADAM استفاده می‌کند و از پین کردن نسخه پشتیبانی نمی‌کند.

نحوه استفاده: mise bootstrap packages use [OPTIONS] <PACKAGE> ...

گزینه‌ها:

نوشتن در فایل پیکربندی مربوط به این محیط (mise.<ENV>.toml)
نوشتن در پیکربندی سراسری (~/.config/mise/config.toml) به جای پیکربندی محلی
چاپ دستوراتی که بدون نوشتن پیکربندی یا نصب، قرار بود اجرا شوند
نوشتن در این فایل یا دایرکتوری پیکربندی
رد کردن پیام تایید
نمایش راهنما آرگومان‌ها:
<PACKAGE>
بسته‌ها در قالب `manager:package[@version]`.SH "MISE BOOTSTRAP PLAN" نمایش تغییراتی که منابع راه‌اندازی (bootstrap) توصیفی اعمال خواهند کرد

کاربرد: mise bootstrap plan [OPTIONS]

گزینه‌ها:

خروجی دادن یک برنامهٔ پایدار و ماشین‌خوان در قالب JSON
خروج با کد ۲ هنگام وجود تغییرات در برنامه، ۰ هنگام عدم تغییر، و ۱ در صورت بروز خطا
درخواست امن برای ورودی‌های محرمانهٔ (secret) ناموجود راه‌اندازی
نمایش راهنما

مدیریت افزونه‌های مدیر بستهٔ تعریف‌شده در `[bootstrap.plugins]`

کاربرد: mise bootstrap plugins [OPTIONS] <COMMAND>

گزینه‌ها:

نمایش راهنما

کاربرد: mise bootstrap plugins apply [OPTIONS]

گزینه‌ها:

چاپ آنچه رخ خواهد داد بدون نصب افزونه‌ها
نمایش راهنما

کاربرد: mise bootstrap plugins status [OPTIONS]

گزینه‌ها:

خروج با کد ۱ در صورت مفقود بودن یک افزونهٔ تعریف‌شده
نمایش راهنما

راه‌اندازی یک یا چند ماشین از طریق OpenSSH

کاربرد: mise bootstrap remote [OPTIONS] [<TARGET>] ...

گزینه‌ها:

انتخاب تمام میزبان‌های پیکربندی‌شده در inventory
دستور شل راه دور صریح که mise را نصب کرده و آن را در PATH قرار می‌دهد
مهلت زمانی اتصال SSH به ثانیه
پیش‌فرض: 10
دنبال کردن پیوند نمادین وابسته به مبدأ (dereference)؛ برای چند پیوند تکرار شود
دنبال کردن و رونوشت مستقیم تمام پیوندهای نمادین در آرشیو مبدأ (dereference)
الگوی آرشیو اضافی برای مستثنی کردن؛ برای چندین الگو تکرار شود
توقف بلافاصله پس از نخستین هدف ناموفق
اجازه به جایگزینی تداخل‌های فایل‌های dotfile در مقصد راه دور
مقصد SSH موردی (`[user@]host`)؛ برای چندین میزبان تکرار شود
نادیده‌گرفتن و جایگزینی فایل هویت (identity file) در SSH
چاپ تغییرات راه‌اندازی راه دور بدون اعمال آن‌ها
نصب mise آماده‌شده روی هر میزبان به جای نگه‌داشتن صرف آن در مرحلهٔ آماده‌سازی (staging)

پیش‌فرض `~/.local/bin/mise` است؛ برای مسیری دیگر `--install-mise=<PATH>` را ارسال کنید.

نگه‌داشتن دایرکتوری آماده‌سازی (staging) راه دور برای اشکال‌زدایی
باینری محلی mise برای بارگذاری (راهکار فرار برای معماری‌های سفارشی)
عدم نصب mise روی میزبان، حتی زمانی که میزبان‌های انتخاب‌شده آن را پیکربندی کرده باشند
اجرای تنها یک یا چند بخش از راه‌اندازی راه دور
جایگزینی پورت سفارشی SSH
درخواست امن برای ورودی‌های محرمانهٔ ناموجود در میزبان راه دور
محیط‌های پیکربندی برای بارگذاری روی میزبان راه دور؛ تکرار کنید یا با کاما جدا کنید (برای نمونه ci,dotfiles)
نام یا مسیر فایل اجرایی mise موجود؛ مسیرهای نسبی از پروژهٔ آماده‌شده (staged) استفاده می‌کنند
رد کردن یک یا چند بخش از راه‌اندازی راه دور
دایرکتوری محلی که آرشیو شده و به هر هدف ارسال می‌شود
گزینهٔ `-o` در OpenSSH؛ برای گزینه‌های متعدد تکرار شود
انتخاب میزبان‌های پیکربندی‌شده با این برچسب؛ برای تطبیق با هر برچسبی تکرار شود
تازه‌سازی فراداده‌های مدیر بسته و به‌روزرسانی مخازن پیکربندی‌شده از راه دور
رد کردن اعلان‌های تأیید راه دور
نمایش راهنما آرگومان‌ها:
<TARGET>
نام‌های میزبان inventory از `[bootstrap.remote.hosts]`.SH "MISE BOOTSTRAP REPOS" مدیریت مخازن گیت دریافت‌شده از `[bootstrap.repos]`

کاربرد: mise bootstrap repos [OPTIONS] <COMMAND>

گزینه‌ها:

نمایش راهنما

کاربرد: mise bootstrap repos apply [OPTIONS]

گزینه‌ها:

نمایش دستوراتی که قرار است اجرا شوند، بدون اجرای واقعی آن‌ها
رد کردن اعلان تأیید
نادیده گرفتن مخازن دارای تغییرات محلی به‌جای متوقف شدن با خطا
نمایش راهنما

کاربرد: mise bootstrap repos exec [OPTIONS] [<PATH>] ... <COMMAND> ...

گزینه‌ها:

ادامه اجرا در سایر مخازن پس از بروز خطا در یک دستور
نمایش دستوراتی که قرار است اجرا شوند، بدون اجرای واقعی آن‌ها
نمایش راهنما آرگومان‌ها:
<PATH>
اجرا تنها در مسیرهای منطبق با مسیرهای پیکربندی‌شده یا گسترش‌یافته
<COMMAND>
دستور و آرگومان‌ها برای اجرا در هر مخزن

کاربرد: mise bootstrap repos status [OPTIONS]

گزینه‌ها:

خروجی با قالب JSON
خروج با کد ۱ در صورتی که هر یک از مخازن پیکربندی‌شده در وضعیت مطلوب خود نباشد
نمایش راهنما

کاربرد: mise bootstrap repos update [OPTIONS] [<PATH>] ...

گزینه‌ها:

نمایش دستوراتی که قرار است اجرا شوند، بدون اجرای واقعی آن‌ها
رد کردن اعلان تأیید
نادیده گرفتن مخازن دارای تغییرات محلی به‌جای متوقف شدن با خطا
نمایش راهنما آرگومان‌ها:
<PATH>
به‌روزرسانی تنها در مسیرهای منطبق با مسیرهای پیکربندی‌شده یا گسترش‌یافته.SH "MISE BOOTSTRAP SECRETS" بررسی ورودی‌های محرمانه bootstrap بدون فاش کردن مقادیر آن‌ها

نحوه استفاده: mise bootstrap secrets [OPTIONS] <COMMAND>

گزینه‌ها:

نمایش راهنما

نمایش وضعیت در دسترس بودن ورودی‌های محرمانه تعریف‌شده bootstrap

نحوه استفاده: mise bootstrap secrets status [OPTIONS]

گزینه‌ها:

خروجی در قالب JSON
خروج با کد ۱ در صورت در دسترس نبودن هر یک از ورودی‌های محرمانه تعریف‌شده
نمایش راهنما

مدیریت سرویس‌های سیستم لینوکس از `[bootstrap.services]`

نحوه استفاده: mise bootstrap services [OPTIONS] <COMMAND>

گزینه‌ها:

نمایش راهنما

اِعمال وضعیت پیکربندی‌شده سرویس‌های سیستم لینوکس

نحوه استفاده: mise bootstrap services apply [OPTIONS]

گزینه‌ها:

نمایش تغییرات احتمالی بدون اِعمال هیچ تغییری
صرف‌نظر کردن از درخواست تأیید
نمایش راهنما

نمایش وضعیت پیکربندی‌شده سرویس‌های سیستم لینوکس

نحوه استفاده: mise bootstrap services status [OPTIONS]

گزینه‌ها:

خروجی در قالب JSON
خروج با کد ۱ در صورت عدم همگرایی هر یک از سرویس‌ها به وضعیت مطلوب
نمایش راهنما

نمایش وضعیت تجمیعی bootstrap

نحوه استفاده: mise bootstrap status [OPTIONS]

گزینه‌ها:

خروجی در قالب JSON
خروج با کد ۱ در صورتی که هر یک از وضعیت‌های پیکربندی‌شده bootstrap در وضعیت مطلوب خود نباشد
درخواست امن برای دریافت ورودی‌های محرمانه ناموجود bootstrap
نمایش راهنما.SH "MISE BOOTSTRAP USER" مدیریت تنظیمات راه‌اندازی اولیه (bootstrap) کاربر جاری از `[bootstrap.user]`

نحوه استفاده: mise bootstrap user [OPTIONS] <COMMAND>

گزینه‌ها:

نمایش راهنما

نحوه استفاده: mise bootstrap user apply [OPTIONS]

گزینه‌ها:

چاپ دستورهایی که قرار است اجرا شوند بدون اجرای واقعی آن‌ها
رد کردن اعلان تأیید
نمایش راهنما

نحوه استفاده: mise bootstrap user status [OPTIONS]

گزینه‌ها:

خروجی با قالب JSON
خروج با کد ۱ در صورتی که هر یک از تنظیمات پیکربندی‌شده کاربر در وضعیت مطلوب نباشد
نمایش راهنما

مدیریت حافظهٔ موقت (cache) نرم‌افزار mise

برای مشاهده دایرکتوری فعلی حافظهٔ موقت، `mise cache` را بدون هیچ آرگومانی اجرا کنید.

نحوه استفاده: mise cache [OPTIONS] [COMMAND]

گزینه‌ها:

نمایش راهنما

حذف تمامی فایل‌های حافظهٔ موقت در mise

نحوه استفاده: mise cache clear [OPTIONS] [<TOOL>] ...

گزینه‌ها:

علامت‌گذاری تمامی فایل‌های حافظهٔ موقت به عنوان قدیمی
پاک‌سازی مدخل‌های حافظهٔ موقت خروجی برای یک نام یا الگوی تسک
نمایش راهنما آرگومان‌ها:
<TOOL>
ابزار(هایی) که حافظهٔ موقت آن‌ها پاک می‌شود؛ مانند: node, python

نمایش مسیر دایرکتوری حافظهٔ موقت

نحوه استفاده: mise cache path [OPTIONS]

گزینه‌ها:

نمایش راهنما.SH "MISE CACHE PRUNE" حذف فایل‌های کهنهٔ حافظهٔ موقت mise

به‌طور پیش‌فرض، این دستور فایل‌هایی را که در ۳۰ روز گذشته مورد دسترسی قرار نگرفته‌اند حذف می‌کند. این مقدار را می‌توانید با متغیر محیطی MISE_CACHE_PRUNE_AGE تغییر دهید.

کاربرد: mise cache prune [OPTIONS] [<TOOL>] ...

گزینه‌ها:

نمایش فایل‌های پاک‌سازی‌شده
صرفاً نمایش مواردی که پاک‌سازی خواهند شد
نمایش راهنما آرگومان‌ها:
<TOOL>
ابزار(هایی) که حافظهٔ موقت آن‌ها پاک‌سازی می‌شود؛ مانند: node، python

بررسی مدخل‌های حافظهٔ موقت خروجی برای یک وظیفه

کاربرد: mise cache task [OPTIONS] <TASK>

گزینه‌ها:

ارائهٔ خروجی در قالب JSON
نمایش راهنما آرگومان‌ها:
<TASK>
نام یا الگوی وظیفه جهت بررسی

تولید تکمیل خودکار پوسته

کاربرد: mise completion [OPTIONS] [<SHELL>]

گزینه‌ها:

نوع پوسته برای تولید تکمیل خودکار
برای سازگاری با تولیدکننده‌های قدیمی‌تر تکمیل خودکار نگه‌داشته شده است.

اسکریپت bash درونی usage-rs خودکفا (self-contained) است، بنابراین این گزینه اکنون هیچ عملی انجام نمی‌دهد (no-op).

برای سازگاری با تولیدکننده‌های قدیمی‌تر تکمیل خودکار نگه‌داشته شده است.

تکمیل‌های خودکار اکنون همیشه از پروتکل درونی usage-rs استفاده می‌کنند، بنابراین این گزینه هیچ عملی انجام نمی‌دهد (no-op).

نصب اسکریپت در محلی که این پوسته به‌دنبال آن می‌گردد، به‌جای چاپ آن در خروجی

فایل اسکریپت را می‌نویسد و کار دیگری نمی‌کند: هیچ فایل rc متعلق به پوسته و هیچ نمایهٔ PowerShell ویرایش نمی‌شود. در مواردی که یک پوسته به یک سطر اختصاصی و یک‌باره نیاز دارد — مانند `fpath+=` در zsh یا dot-source در PowerShell — آن سطر چاپ می‌شود تا خودتان آن را اضافه کنید.

جایگزینی فایلی در مسیر هدف که توسط mise نوشته نشده است
نمایش راهنما آرگومان‌ها:
<SHELL>
نوع پوسته برای تولید تکمیل خودکار.SH "MISE CONFIG" مدیریت فایل‌های پیکربندی

کاربرد: mise config [OPTIONS] [COMMAND]

گزینه‌ها:

خروجی در قالب JSON
عدم چاپ سرآیند جدول
فهرست کردن تمام فایل‌های پیکربندی ردیابی‌شده
نمایش راهنما

نمایش مقدار یک تنظیم در فایل mise.toml

کاربرد: mise config get [OPTIONS] [<KEY>]

گزینه‌ها:

مسیر فایل mise.toml جهت خواندن

می‌تواند مسیر یک فایل یا دایرکتوری باشد. اگر یک دایرکتوری مشخص شود، از فایل پیکربندی درون آن دایرکتوری استفاده می‌شود.

در صورت عدم ارائه، از نزدیک‌ترین فایل mise.toml استفاده خواهد شد

خواندن فایل پیکربندی سراسری.
خواندن فایل پیکربندی سیستمی.
نمایش راهنما آرگومان‌ها:
<KEY>
مسیر پیکربندی مورد نظر برای نمایش

فهرست کردن فایل‌های پیکربندی در حال استفاده

کاربرد: mise config ls [OPTIONS]

گزینه‌ها:

خروجی در قالب JSON
عدم چاپ سرآیند جدول
فهرست کردن تمام فایل‌های پیکربندی ردیابی‌شده
نمایش راهنما

تنظیم مقدار یک مشخصه در فایل mise.toml

کاربرد: mise config set [OPTIONS] <KEY> [<VALUE>]

گزینه‌ها:

مسیر فایل mise.toml جهت ویرایش

می‌تواند مسیر یک فایل یا دایرکتوری باشد. اگر یک دایرکتوری مشخص شود، از فایل پیکربندی درون آن دایرکتوری استفاده می‌شود.

در صورت عدم ارائه، از نزدیک‌ترین فایل mise.toml استفاده خواهد شد

ویرایش فایل پیکربندی سراسری.
ویرایش فایل پیکربندی سیستمی.
افزودن مقدار بدون ایجاد ورودی تکراری.
حذف مقدار از یک مجموعه موجود.
پیش‌فرض: infer
نمایش راهنما آرگومان‌ها:
<KEY>
مسیر پیکربندی مورد نظر برای نمایش
<VALUE>
مقداری که کلید باید با آن تنظیم شود (در صورت مشخص شدن به صورت KEY=VALUE اختیاری است).SH "MISE DEACTIVATE" غیرفعال‌سازی mise برای نشست پوسته فعلی

این دستور می‌تواند برای غیرفعال‌سازی موقت mise در یک نشست پوسته استفاده شود.

نحوه استفاده: mise deactivate [OPTIONS]

گزینه‌ها:

نمایش راهنما

بررسی نصب mise برای مشکلات احتمالی

نحوه استفاده: mise doctor [OPTIONS] [COMMAND]

گزینه‌ها:

نمایش راهنما

چاپ ورودی‌های فعلی PATH که mise فراهم می‌کند

نحوه استفاده: mise doctor path [OPTIONS]

گزینه‌ها:

چاپ همه ورودی‌ها شامل مواردی که توسط mise فراهم نشده‌اند
نمایش راهنما

شروع یک پوسته جدید با محیط mise ایجادشده بر اساس پیکربندی فعلی

این یک جایگزین برای `mise activate` است که به شما امکان می‌دهد صریحاً یک نشست mise را آغاز کنید. این نشست ابزارها و متغیرهای محیطی موجود در پیکربندی‌ها را بارگذاری خواهد کرد. توجه داشته باشید که تغییر دایرکتوری‌ها محیط mise را به‌روزرسانی نخواهد کرد.

نحوه استفاده: mise en [OPTIONS] [<DIR>]

گزینه‌ها:

پوسته برای اجرا

پیش‌فرض: $SHELL

نمایش راهنما آرگومان‌ها:
<DIR>
دایرکتوری برای شروع پوسته در آن
پیش‌فرض: .

برون‌ریزی متغیرهای محیطی برای فعال‌سازی یک‌بارهٔ mise

اگر نمی‌خواهید mise را به‌صورت دائمی نصب کنید، از این دستور استفاده کنید. در صورتی که `mise activate` را در فایل rc پوسته خود دارید، نیازی به استفاده از این دستور نیست.

نحوه استفاده: mise env [OPTIONS] [<TOOL@VERSION>] ...

گزینه‌ها:

خروجی در قالب dotenv
خروجی در قالب JSON
نوع پوسته برای تولید متغیرهای محیطی برای آن
خروجی در قالب JSON با اطلاعات تکمیلی (source، tool)
تنها نمایش متغیرهای محیطی مخدوش‌شده (redacted)
تنها نمایش مقادیر متغیرهای محیطی
نمایش راهنما آرگومان‌ها:
<TOOL@VERSION>
ابزار(ها) برای استفاده.SH "MISE EXEC" اجرای یک دستور به همراه ابزار(های) مشخص‌شده

از این دستور برای جلوگیری از تغییر نشست پوسته یا اجرای دستورهای موردی (ad-hoc) همراه با ابزارهای تنظیم‌شده mise استفاده کنید.

ابزارها از mise.toml بارگذاری خواهند شد، هرچند می‌توان آن‌ها را با آرگومان‌های <RUNTIME> بازنویسی کرد. توجه داشته باشید که تنها افزونهٔ مشخص‌شده بازنویسی خواهد شد؛ بنابراین اگر یک فایل `mise.toml` شامل «node 20» باشد ولی شما `mise exec python@3.11` را اجرا کنید، همچنان node@20 بارگذاری خواهد شد.

علامت «--» زمان‌های اجرا (runtimes) را از دستوراتی که باید به زیرپروسه ارسال شوند جدا می‌کند.

کاربرد: mise exec [OPTIONS] [<TOOL@VERSION>] ... [<COMMAND>] ...

گزینه‌ها:

رشته دستوری برای اجرا
تعداد وظایف برای اجرای موازی مقادیر کمتر از ۱ به عنوان ۱ در نظر گرفته می‌شوند [پیش‌فرض: 4]
متغیر محیطی: MISE_JOBS
مجاز کردن عبور متغیر محیطی مشخص (به طور ضمنی به معنای --deny-env برای سایر متغیرها است) از نویسه‌های عام (wildcards) پشتیبانی می‌کند، مانند --allow-env='MYAPP_*'
مجاز کردن شبکه به میزبان مشخص (به طور ضمنی به معنای --deny-net برای سایر موارد است) در نسخه ۱ فقط مخصوص macOS است؛ در Linux به مجاز بودن کل شبکه بازمی‌گردد
مجاز کردن خواندن از مسیر مشخص (به طور ضمنی به معنای --deny-read برای سایر مسیرها است)
مجاز کردن نوشتن در مسیر مشخص (به طور ضمنی به معنای --deny-write برای سایر مسیرها است)
مسدود کردن خواندن، نوشتن، شبکه و متغیرهای محیطی
مسدود کردن ارث‌بری متغیرهای محیطی (تنها متغیرهای PATH، HOME، USER، SHELL، TERM و LANG عبور می‌کنند)
مسدود کردن تمامی دسترسی‌های شبکه
مسدود کردن خواندن از سیستم‌فایل (کتابخانه‌های سیستم و دایرکتوری‌های ابزار همچنان در دسترس خواهند بود)
مسدود کردن تمام عملیات‌های نوشتن روی سیستم‌فایل
دور زدن حافظه موقت (cache) محیط و محاسبهٔ مجدد متغیرهای محیطی
صرف‌نظر کردن از آماده‌سازی خودکار وابستگی‌ها
اتصال مستقیم ورودی/خروجی/خطای استاندارد (stdin/stdout/stderr) دستور نصب backend به ترمینال؛ به طور ضمنی مقدار --jobs=1 را فعال می‌کند
نمایش راهنما آرگومان‌ها:
<TOOL@VERSION>
ابزار(ها) برای اجرا؛ برای نمونه: node@20 python@3.10
<COMMAND>
رشته دستوری برای اجرا (مشابه --command)

قالب‌بندی فایل mise.toml

مرتب‌سازی کلیدها و پاک‌سازی فاصله‌های خالی در mise.toml

کاربرد: mise fmt [OPTIONS]

گزینه‌ها:

قالب‌بندی تمام فایل‌های دایرکتوری فعلی
بررسی اینکه آیا پیکربندی‌ها قالب‌بندی شده‌اند یا خیر؛ تغییری اعمال نمی‌شود
خواندن پیکربندی از ورودی استاندارد (stdin) و نوشتن نسخه قالب‌بندی‌شده در خروجی استاندارد (stdout)
نمایش راهنما.SH "MISE GENERATE" تولید فایل‌ها برای ابزارها/سرویس‌های گوناگون

نحوه استفاده: mise generate [OPTIONS] <COMMAND>

گزینه‌ها:

نمایش راهنما

تولید یک فایل mise.toml

نحوه استفاده: mise generate config [OPTIONS] [<PATH>]

گزینه‌ها:

تولید فایل پیکربندی سراسری (~/.config/mise/config.toml)
نمایش آنچه تولید خواهد شد بدون نوشتن در فایل
مسیر یک فایل .tool-versions جهت وارد کردن ابزارها از آن
نمایش راهنما آرگومان‌ها:
<PATH>
مسیر فایل پیکربندی برای ایجاد

تولید یک devcontainer برای اجرای mise

نحوه استفاده: mise generate devcontainer [OPTIONS]

گزینه‌ها:

ایمیج مورد استفاده برای devcontainer
اتصال (bind) حجم mise-data-volume به devcontainer
نام devcontainer
نوشتن در .devcontainer/devcontainer.json
نمایش راهنما

تولید یک هوک pre-commit برای git

این دستور یک هوک pre-commit در git تولید می‌کند که هنگام ثبت (commit) تغییرات در مخزن شما، یک تسک mise مانند `mise run pre-commit` را اجرا می‌کند.

فایل‌های مرحله‌بندی‌شده (staged) به عنوان `STAGED` به تسک ارسال می‌شوند.

برای قابلیت‌های پیشرفته‌تر pre-commit، پروژه همزاد mise را بررسی کنید: https://hk.jdx.dev

نحوه استفاده: mise generate git-pre-commit [OPTIONS] [<MISE_ARG>] ...

گزینه‌ها:

تسکی که با فعال شدن هوک pre-commit اجرا می‌شود
پیش‌فرض: pre-commit
نوشتن در .git/hooks/pre-commit و اجرایی کردن آن
مشخص می‌کند کدام هوک تولید شود (در .git/hooks/$hook ذخیره می‌شود)
پیش‌فرض: pre-commit
نمایش راهنما آرگومان‌ها:
<MISE_ARG>
پرچم‌های mise برای گنجاندن در هوک تولیدشده، که پس از `--` مشخص می‌شوند

این موارد بین `mise` و `run` درج می‌شوند، بنابراین هوک همان زمینه‌ای را حمل می‌کند که در خط فرمان وارد می‌کردید. این ویژگی زمانی مفید است که فایل پیکربندی در ریشه مخزن نباشد، زیرا git هوک‌ها را از بالاترین سطح اجرا می‌کند: استفاده از `-- -C subdir` باعث می‌شود هوک بتواند آن را پیدا کند..SH "MISE GENERATE GITHUB-ACTION" تولید یک فایل گردش‌کار GitHub Action

این دستور یک فایل گردش‌کار GitHub Action تولید می‌کند که با ارسال تغییرات (push) به مخزن شما، یک تسک mise مانند `mise run ci` را اجرا می‌کند.

کاربرد: mise generate github-action [OPTIONS]

گزینه‌ها:

تسکی که با فعال شدن گردش‌کار اجرا می‌شود
پیش‌فرض: ci
نوشتن در .github/workflows/$name.yml
نام گردش‌کار برای تولید
پیش‌فرض: ci
نمایش راهنما

تولید اسکریپتی برای دانلود و اجرای mise

این دستور برای استفاده در پروژه‌ای طراحی شده است که در آن ممکن است مشارکت‌کنندگان mise را نصب نداشته باشند.

نام آن از `mise generate bootstrap` تغییر یافته است، که به شکل حالتی از `mise bootstrap` (راه‌اندازی ماشین) برداشت می‌شد. نام قدیمی همچنان کار می‌کند اما منسوخ شده است و در نسخه mise 2027.9.0 حذف خواهد شد.

کاربرد: mise generate install-script [OPTIONS]

گزینه‌ها:

دایرکتوری‌های داخلی mise مانند MISE_DATA_DIR و MISE_CACHE_DIR را درون یک دایرکتوری `.mise` در پروژه ایزوله (sandbox) می‌کند

این مورد در صورتی ضروری است که کاربران ممکن است از نسخه متفاوتی از mise خارج از پروژه استفاده کنند.

مشخص کردن نسخه mise جهت دریافت
به جای ارسال اسکریپت به stdout، آن را در یک فایل می‌نویسد و اجرایی می‌کند
دایرکتوری برای قرار دادن داده‌های محلی
پیش‌فرض: .mise
همچنین یک اجراکننده ویندوز به نام `<WRITE>.cmd` می‌نویسد

ویندوز قادر به اجرای اسکریپت `#!/usr/bin/env bash` نیست، بنابراین مشارکت‌کننده‌ای که پروژه را در ویندوز clone می‌کند، بدون این فایل چیزی برای اجرا نخواهد داشت.

روی تمام میزبان‌ها تولید می‌شود، نه فقط در ویندوز: فایل commit می‌شود و کسی که آن را در ویندوز اجرا می‌کند، فردی نیست که آن را تولید کرده است. نیازمند `--write` است، زیرا stdout نمی‌تواند حامل دو فایل باشد.

نمایش راهنما

تولید مستندات برای تسک‌ها در یک پروژه

کاربرد: mise generate task-docs [OPTIONS]

گزینه‌ها:

مستندات را درون یک فایل موجود درج می‌کند

این گزینه به دنبال کامنت ویژه `<!-- mise-tasks -->` می‌گردد و آن را با مستندات تولیدشده جایگزین می‌کند. تمام محتوای بین این کامنت و کامنت بعدی، یعنی `<!-- /mise-tasks -->` جایگزین خواهد شد، بنابراین می‌توان آن را چندین بار روی همان فایل برای به‌روزرسانی مستندات اجرا کرد. فایل باید از قبل حاوی هر دو کامنت باشد؛ در صورت نبود آن‌ها، mise به جای دستکاری فایل، با خطا متوقف می‌شود.

تنها فهرستی از تسک‌ها را می‌نویسد، در نظر گرفته شده برای استفاده با `--multi`
رندر کردن هر تسک به عنوان سندی جداگانه، نیازمند این است که `--output` یک دایرکتوری باشد
مستندات تولیدشده را در یک فایل/دایرکتوری می‌نویسد
دایرکتوری ریشه برای جستجوی تسک‌ها
پیش‌فرض: simple
نمایش راهنما.SH "MISE GENERATE TASK-STUBS" تولید شیم‌ها برای اجرای تسک‌های mise

به‌طور پیش‌فرض، این دستور شیم‌هایی مانند ./bin/<task> را می‌سازد. این شیم‌ها می‌توانند با `mise generate install-script` جفت شوند تا مشارکت‌کنندگان یک پروژه بتوانند بدون نیاز به نصب mise روی سیستم خود، تسک‌های mise را اجرا کنند. هنگامی که هر دو تسک والد و تو در تو وجود داشته باشند، استاب والد در `<parent>/_default` نوشته می‌شود.

کاربرد: mise generate task-stubs [OPTIONS]

گزینه‌ها:

دایرکتوری برای ایجاد استاب‌های تسک در داخل آن
پیش‌فرض: bin
مسیر باینری mise برای استفاده هنگام اجرای استاب تسک.

برای استفاده از باینری mise تولید شده توسط `mise generate install-script` از `--mise-bin=./bin/mise` استفاده کنید

در Windows یک مسیر همان‌طور که نوشته شده اجرا می‌شود، بنابراین آن اسکریپت به لانچر اختصاصی خود در کنارش نیاز دارد: آن را با `mise generate install-script --write ./bin/mise --windows` تولید کنید. مقدار پیش‌فرض `mise` یک نام خالی است و از طریق PATH شناسایی می‌شود، که به چیز اضافه‌ای نیاز ندارد.

پیش‌فرض: mise
آنچه باید در کنار هر استاب برای راه‌اندازی در Windows نوشته شود

مقدار `cmd` فایل `<task>.cmd` را می‌نویسد. برنامه cmd.exe قبل از بسط یافتن `%*` کل خط را دوباره تجزیه می‌کند، بنابراین اگر لانچر از PowerShell فراخوانی شود، آرگومانی که شامل `& ^ | " %VAR%` باشد به صورت دست‌نخورده به تسک نمی‌رسد.

مقدار `exe` در عوض یک فایل بومی `<task>.exe` می‌نویسد که آرگومان‌های خود را از هر پوسته‌ای بدون تغییر دریافت می‌کند. این یک کپی از mise-shim.exe است که همراه با ساخت Windows عرضه می‌شود، بنابراین فقط در Windows قابل تولید است و به ازای هر تسک حدود ۲۲۰ کیلوبایت به دایرکتوری‌ای اضافه می‌کند که معمولاً کامیت می‌شود.

پیش‌فرض: cmd
نمایش راهنما

تولید یک استاب ابزار برای ابزارهای مبتنی بر HTTP

این دستور استاب‌های ابزاری را تولید می‌کند که می‌توانند به‌طور خودکار ابزارها را از نشانی‌های HTTP دانلود و اجرا کنند. این دستور می‌تواند با دانلود و تجزیه‌وتحلیل ابزار، چکسام‌ها، اندازه‌های فایل و مسیرهای باینری را به‌طور خودکار شناسایی کند.

هنگام تولید استاب‌ها با نشانی‌های مختص پلتفرم، این دستور به جای بازنویسی فایل‌های استاب موجود، پلتفرم‌های جدید را به آن‌ها اضافه می‌کند. این ویژگی به شما امکان می‌دهد استاب‌های ابزار چندپلتفرمی را به‌صورت تدریجی بسازید.

کاربرد: mise generate tool-stub [OPTIONS] <OUTPUT>

گزینه‌ها:

مسیر باینری درون آرشیو استخراج‌شده

اگر مشخص نشده باشد و آرشیو دانلود شود، محتمل‌ترین باینری به‌طور خودکار شناسایی خواهد شد

قراردادن استاب در یک اسکریپت راه‌انداز (bootstrap) که در صورت عدم وجود mise، آن را نصب می‌کند

در صورت فعال بودن، یک اسکریپت bash تولید می‌کند که: 1. بررسی می‌کند آیا mise در مسیر مورد انتظار نصب شده است یا خیر 2. در غیر این صورت، mise را با استفاده از نصاب تعبیه‌شده دانلود و نصب می‌کند 3. استاب ابزار را با استفاده از mise اجرا می‌کند

مشخص کردن نسخه mise برای اسکریپت راه‌انداز

به‌طور پیش‌فرض، از آخرین نسخه موجود در اسکریپت نصب استفاده می‌کند. از این گزینه برای تثبیت روی یک نسخه مشخص (مثلاً "2025.1.0") استفاده کنید.

الگوریتم چکسام برای استفاده هنگام دانلود مصنوعات

مقادیر `blake3` یا `sha256` را می‌پذیرد و مقدار پیش‌فرض آن `blake3` است. نمی‌توان از آن همراه با `--lock` یا `--skip-download` استفاده کرد زیرا آن حالت‌ها چکسام را محاسبه نمی‌کنند.

پیش‌فرض: blake3
دریافت چکسام‌ها و اندازه‌ها برای یک فایل استاب ابزار موجود

این گزینه یک فایل استاب موجود را خوانده و با دانلود فایل‌ها، هر فیلد ناموجود چکسام/اندازه را تکمیل می‌کند. نشانی‌های وب باید از قبل در استاب وجود داشته باشند.

نوع بَک‌اند HTTP برای استفاده
پیش‌فرض: http
بررسی و جاسازی داده‌های lockfile (نسخه دقیق + نشانی‌ها/چکسام‌های پلتفرم) در یک فایل استاب موجود برای نصب‌های بازتولیدپذیر بدون فراخوانی‌های API در زمان اجرا
مسیرهای باینری مختص پلتفرم در قالب platform:path

مثال‌ها: --platform-bin windows-x64:tool.exe --platform-bin linux-x64:bin/tool

نشانی‌های وب مختص پلتفرم در قالب platform:url یا فقط url (تشخیص خودکار پلتفرم)

هنگامی که فایل خروجی از قبل موجود باشد، پلتفرم‌های جدید به جدول پلتفرم‌های موجود اضافه می‌شوند. نشانی‌های پلتفرم موجود در صورت مشخص شدن مجدد، به‌روزرسانی خواهند شد.

اگر تنها یک نشانی وب مشخص شود (بدون platform:)، پلتفرم به‌طور خودکار از نام فایل نشانی وب تشخیص داده می‌شود.

مثال‌ها: --platform-url linux-x64:https://... --platform-url https://nodejs.org/dist/v22.17.1/node-v22.17.1-darwin-arm64.tar.gz

صرف‌نظر کردن از دانلود برای تشخیص چکسام و مسیر باینری (سریع‌تر اما با اطلاعات کمتر)
نشانی وب برای دانلود ابزار

مثال: https://github.com/owner/repo/releases/download/v2.0.0/tool-linux-x64.tar.gz

نسخه ابزار
پیش‌فرض: latest
نمایش راهنما آرگومان‌ها:
<OUTPUT>
مسیر فایل خروجی برای استاب ابزار.SH "MISE IMPLODE" ابزار خط فرمان mise و تمام داده‌های مرتبط با آن را حذف می‌کند

به‌طور پیش‌فرض از دایرکتوری پیکربندی صرف‌نظر می‌کند.

نحوه استفاده: mise implode [OPTIONS]

گزینه‌ها:

فهرست کردن دایرکتوری‌هایی که حذف خواهند شد، بدون حذف واقعی آن‌ها
حذف دایرکتوری پیکربندی نیز
نمایش راهنما

ویرایش تعاملی mise.toml

نحوه استفاده: mise edit [OPTIONS] [<PATH>]

گزینه‌ها:

ویرایش فایل پیکربندی سراسری (~/.config/mise/config.toml)
نمایش آنچه بدون نوشتن در فایل تولید می‌شود
مسیر فایل .tool-versions برای وارد کردن ابزارها از آن
نمایش راهنما آرگومان‌ها:
<PATH>
مسیر فایل پیکربندی برای ایجاد

نصب یک نسخه از ابزار

نسخهٔ ابزار را در `~/.local/share/mise/installs/<TOOL>/<VERSION>` نصب می‌کند نصب به‌تنهایی ابزارها را فعال نمی‌کند، بنابراین در PATH قرار نخواهند گرفت. برای نصب و/یا فعال‌سازی در یک دستور، از `mise use` استفاده کنید که یک فایل `mise.toml` در دایرکتوری فعلی ایجاد می‌کند تا ابزار هنگام حضور در این دایرکتوری فعال شود. همچنین، می‌توانید `mise exec <TOOL>@<VERSION> -- <COMMAND>` را برای اجرای یک ابزار بدون ایجاد فایل‌های پیکربندی اجرا کنید.

ابزارها به‌صورت موازی نصب خواهند شد. برای غیرفعال کردن، `--jobs=1` یا `MISE_JOBS=1` را تنظیم کنید

نحوه استفاده: mise install [OPTIONS] [<TOOL@VERSION>] ...

گزینه‌ها:

نصب مجدد اجباری حتی در صورت نصب بودن از قبل در صورت مشخص نشدن هیچ ابزاری، تمام ابزارهای پیکربندی‌شده مجدداً نصب می‌شوند
تعداد کارهای موازی برای اجرا مقادیر کمتر از ۱ معادل ۱ در نظر گرفته می‌شوند [پیش‌فرض: 4]
متغیر محیطی: MISE_JOBS
نمایش آنچه که نصب خواهد شد بدون نصب واقعی آن
نمایش خروجی نصب

این آرگومان خروجی پس‌زمینه (backend) مانند خروجی‌های دانلود، پیکربندی و کامپایل را چاپ می‌کند.

مشابه --dry-run است، اما در صورتی که ابزارهایی برای نصب وجود داشته باشد با کد ۱ خارج می‌شود

این گزینه برای اسکریپت‌ها جهت بررسی نیاز به نصب ابزارها مفید است.

ابزارهای مورد نیاز وظایف (tasks) در محدودهٔ فعلی را نیز نصب می‌کند

این گزینه ابزارهای وظیفه را بدون اجرای دستورات یا وابستگی‌های وظایف آماده می‌کند. با --monorepo ترکیب کنید تا وظایف مربوط به همهٔ ریشه‌های پیکربندی‌شده لحاظ شوند.

ابزارهای پیکربندی‌شده با `lazy = true` را نیز نصب می‌کند

به‌طور پیش‌فرض، دستور سادهٔ `mise install` ابزارهای lazy را برای نصب در زمان اجرای نخستین دستور باقی می‌گذارد.

تنها نسخه‌هایی را نصب می‌کند که قبل از این تاریخ منتشر شده یا قدیمی‌تر از این مدت‌زمان باشند

از تاریخ‌های مطلق مانند "2024-06-01" و مدت‌زمان‌های نسبی مانند "90d" یا "1y" پشتیبانی می‌کند.

نصب ابزارها از هر ریشهٔ پیکربندی [monorepo].config_roots

از MISE_ENV فعال استفاده می‌کند و به monorepo_root = true به‌همراه [monorepo].config_roots صریح در پیکربندی ریشهٔ monorepo نیاز دارد.

متغیر محیطی: MISE_MONOREPO
اتصال مستقیم stdin/stdout/stderr دستور نصب backend به ترمینال؛ متضمن --jobs=1 است
نصب ابزار(ها) در یک دایرکتوری اشتراکی

به‌جای مکان نصب پیش‌فرض، در دایرکتوری مشخص‌شده نصب می‌کند. بسته به مسیر ممکن است به دسترسی‌های بالاتری نیاز داشته باشد.

نصب ابزار(ها) در دایرکتوری اشتراکی در سطح کل سیستم

در /usr/local/share/mise/installs (یا MISE_SYSTEM_DATA_DIR/installs) نصب می‌کند. ممکن است به دسترسی‌های سطح بالا (مانند sudo) نیاز داشته باشد.

نمایش راهنما آرگومان‌ها:
<TOOL@VERSION>
ابزار(ها) برای نصب؛ به عنوان مثال: node@20.SH "MISE INSTALL-INTO" نصب نسخه یک ابزار در یک مسیر مشخص

جهت ساخت یک ابزار در یک دایرکتوری برای استفاده در خارج از mise به کار می‌رود

کاربرد: mise install-into [OPTIONS] <TOOL@VERSION> <PATH>

گزینه‌ها:

نمایش راهنما آرگومان‌ها:
<TOOL@VERSION>
ابزار جهت نصب، به عنوان مثال: node@20
<PATH>
مسیری که ابزار باید در آن نصب شود

دریافت آخرین نسخه موجود برای یک پلاگین

از پیشوندهایی مانند `node@20` برای دریافت آخرین نسخه node 20 پشتیبانی می‌کند.

کاربرد: mise latest [OPTIONS] <TOOL@VERSION> [<ASDF_VERSION>]

گزینه‌ها:

نمایش آخرین نسخه نصب‌شده به جای نسخه موجود
تنها در نظر گرفتن نسخه‌هایی که پیش از این تاریخ منتشر شده‌اند یا قدمتی بیشتر از این بازه زمانی دارند

از تاریخ‌های مطلق مانند "2024-06-01" و بازه‌های زمانی نسبی مانند "90d" یا "1y" پشتیبانی می‌کند. بر گزینه‌های `minimum_release_age` هر ابزار و تنظیم سراسری `minimum_release_age` اولویت دارد.

نمایش راهنما آرگومان‌ها:
<TOOL@VERSION>
ابزاری که آخرین نسخه آن دریافت می‌شود
<ASDF_VERSION>
پیشوند نسخه برای استفاده در هنگام پرس‌وجوی آخرین نسخه؛ مشابه با اولین آرگومان پس از "@" که برای سازگاری با asdf استفاده می‌شود

ایجاد پیوند نمادین (symlink) از نسخه یک ابزار به درون mise

برای افزودن مواردی که خارج از mise به صورت سفارشی کامپایل شده یا با ابزار دیگری ساخته شده‌اند استفاده می‌شود.

کاربرد: mise link [OPTIONS] <TOOL@VERSION> <PATH>

گزینه‌ها:

بازنویسی نسخه موجود ابزار در صورت وجود
نمایش راهنما آرگومان‌ها:
<TOOL@VERSION>
نام و نسخه ابزار جهت ایجاد پیوند نمادین
<PATH>
مسیر محلی به نسخه ابزار به عنوان مثال: ~/.nvm/versions/node/v20.0.0

به‌روزرسانی مجموع‌های وارسی (checksum) و نشانی‌های URL فایل قفل برای تمام پلتفرم‌های مشخص‌شده

مجموع‌های وارسی و نشانی‌های URL بارگیری را برای تمامی پلتفرم‌هایی که از قبل در lockfile مشخص شده‌اند به‌روزرسانی می‌کند. اگر هیچ lockfile وجود نداشته باشد، آنچه را که بر اساس پیکربندی فعلی (شامل ابزارهای تعریف‌شده توسط وظایف) ایجاد می‌شود نمایش می‌دهد. این به شما امکان می‌دهد تا داده‌های lockfile را برای پلتفرم‌هایی غیر از پلتفرمی که هم‌اکنون روی آن هستید بازآوری کنید. روی lockfile در ریشه پیکربندی فعلی عمل می‌کند. از آرگومان‌های TOOL برای هدف قرار دادن ابزارهای مشخص استفاده کنید.

کاربرد: mise lock [OPTIONS] [<TOOL>] ...

گزینه‌ها:

تنها فایل‌های قفل پیکربندی سراسری را هدف قرار می‌دهد (~/.config/mise/mise.lock و پیکربندی سیستم) به‌طور پیش‌فرض، تنها ریشه پیکربندی پروژه فعال قفل می‌شود
تعداد کارهایی که به صورت موازی اجرا می‌شوند مقادیر کمتر از ۱ به عنوان ۱ در نظر گرفته می‌شوند
متغیر محیطی: MISE_JOBS
نمایش مواردی که بدون اعمال تغییرات، به‌روزرسانی خواهند شد
فهرست جداشده با کاما از پلتفرم‌های هدف به عنوان مثال: linux-x64,macos-arm64,windows-x64 در صورت مشخص نشدن، تمام پلتفرم‌های موجود در lockfile به‌روزرسانی خواهند شد
حل مجدد انتخاب‌کننده‌های فازی نسخه در برابر آخرین نسخه‌های موجود

به‌طور پیش‌فرض، `mise lock` متاداده‌های نسخه‌های قفل‌شده فعلی را بازآوری می‌کند. با این پرچم، انتخاب‌کننده‌هایی مانند "latest"، "lts" یا پیشوندهایی مانند "20" مجدداً در برابر آخرین نسخه‌های راه دور منطبق بازسنجی می‌شوند، بنابراین lockfile بدون نصب هیچ موردی به جلو حرکت می‌کند. فایل‌های پیکربندی هرگز تغییر نمی‌کنند: نسخه‌هایی که دقیقاً پین شده‌اند به خودشان حل شده و بدون تغییر باقی می‌مانند (از `mise upgrade --bump` برای بازنویسی پین‌ها در mise.toml استفاده کنید).

نمایش تغییرات نسخه در قالب JSON

آرایه‌ای از اشیاء را چاپ می‌کند که تغییرات نسخه lockfile را توصیف می‌کنند: name، backend، lockfile، old_versions، new_versions. فهرست‌های نسخه ترتیب پیکربندی/lockfile را حفظ می‌کنند؛ آنها مرتب‌سازی نمی‌شوند. تنها تغییرات در سطح نسخه گزارش می‌شوند: بازآوری مجموع‌های وارسی/نشانی‌های URL برای نسخه‌های بدون تغییر ورودی ایجاد نمی‌کند، بنابراین اجرای ساده `mise lock --json` معمولاً در عین به‌روزرسانی lockfile مقدار `[]` را چاپ می‌کند. خروجی انسان‌خوانا را لغو می‌کند. برای تشخیص به‌روزرسانی‌های موجود بدون نوشتن lockfile، با `--dry-run` ترکیب کنید.

به‌روزرسانی mise.local.lock به جای mise.lock برای ابزارهای تعریف‌شده در پیکربندی‌های .local.toml استفاده می‌شود
فقط نسخه‌هایی را قفل می‌کند که قبل از این مدت یا تاریخ منتشر شده باشند

از تاریخ‌های مطلق مانند "2024-06-01" و بازه‌های زمانی نسبی مانند "90d" یا "1y" پشتیبانی می‌کند. این تنها روی تطبیق‌های فازی نسخه مانند "20" یا "latest" تأثیر می‌گذارد. نسخه‌های صراحتاً پین‌شده مانند "22.5.0" پالایش نمی‌شوند. مدخل‌های منطبق موجود در lockfile حفظ می‌شوند و صرفاً با این پرچم تنزل نمی‌یابند.

ارتقای lockfileهای قدیمی به آخرین قالب

lockfileهای بدون نسخه موجود از نسخه قالب ۰ استفاده می‌کنند و برای جلوگیری از انحراف ناخواسته lockfile دست‌نخورده باقی می‌مانند. این پرچم آنها را به آخرین قالب با اتصالات نسخه ویژه هر درخواست ارتقا می‌دهد. ارتقای قالب همیشه تمام ابزارهای پیکربندی‌شده را پردازش می‌کند و نمی‌توان آن را با آرگومان‌های ابزار ترکیب کرد.

نمایش راهنما آرگومان‌ها:
<TOOL>
ابزار(ها) جهت به‌روزرسانی در lockfile به عنوان مثال: node python در صورت مشخص نشدن، تمام ابزارهای پیکربندی‌شده و ویژه وظایف به‌روزرسانی خواهند شد.SH "MISE LS" فهرست کردن نسخه‌های نصب‌شده و فعال ابزارها

این دستور ابزارهایی را فهرست می‌کند که mise «می‌شناسد». این ابزارها ممکن است در حال حاضر نصب شده باشند، یا مواردی باشند که در یک فایل پیکربندی قرار دارند (فعال هستند) اما ممکن است نصب شده باشند یا خیر.

دستوری کاربردی برای دریافت وضعیت فعلی ابزارهای شما است.

نحوه استفاده: mise ls [OPTIONS] [<INSTALLED_TOOL>] ...

گزینه‌ها:

تنها نسخه‌های ابزاری را نمایش می‌دهد که در حال حاضر در یک mise.toml مشخص شده‌اند
تنها نسخه‌های ابزاری را نمایش می‌دهد که در حال حاضر در mise.toml سراسری مشخص شده‌اند
تنها نسخه‌های ابزاری را که نصب شده‌اند نمایش می‌دهد (ابزارهای تعریف‌شده در mise.toml که نصب نشده‌اند را پنهان می‌کند)
خروجی در قالب JSON
تنها نسخه‌های ابزاری را نمایش می‌دهد که در حال حاضر در mise.toml محلی مشخص شده‌اند
نمایش نسخه‌های ناموجود ابزارها
اطلاعاتی مانند نسخه‌های قدیمی را واکشی نمی‌کند
نمایش همهٔ منابع پیکربندی ردیابی‌شده برای ابزارها
فهرست کردن ابزارها از هر ریشهٔ پیکربندی [monorepo].config_roots

از MISE_ENV فعال استفاده می‌کند و به monorepo_root = true به‌همراه [monorepo].config_roots صریح در پیکربندی ریشهٔ monorepo نیاز دارد.

محیط: MISE_MONOREPO
سرآیندها را نمایش نمی‌دهد
نمایش اینکه آیا یک نسخه قدیمی است یا خیر
نسخه‌های منطبق با این پیشوند را نمایش می‌دهد
تنها ابزارهایی را فهرست می‌کند که با `mise prune` قابل پاک‌سازی هستند
نمایش راهنما آرگومان‌ها:
<INSTALLED_TOOL>
تنها نسخه‌های ابزار مربوط به [TOOL] را نمایش می‌دهد

فهرست کردن نسخه‌های زمان اجرا (runtime) موجود برای نصب.

توجه داشته باشید که ممکن است نتایج کَش شده باشند؛ برای پاک کردن کَش و دریافت نتایج تازه، `mise cache clean` را اجرا کنید.

نحوه استفاده: mise ls-remote [OPTIONS] [<TOOL@VERSION>] [<PREFIX>]

گزینه‌ها:

نمایش همهٔ افزونه‌ها و نسخه‌های نصب‌شده
تنها نسخه‌هایی را نمایش می‌دهد که پیش از این سن یا تاریخ منتشر شده‌اند

از تاریخ‌های مطلق مانند "2024-06-01" و مدت‌زمان‌های نسبی مانند "90d" یا "1y" پشتیبانی می‌کند.

خروجی در قالب JSON (شامل فراداده‌های نسخه مانند برچسب‌های زمانی created_at در صورت موجود بودن)
بررسی میزبان mise-versions را غیرفعال می‌کند
گنجاندن نسخه‌های پیش‌انتشار در خروجی برای بک‌اندهایی که فراداده‌های پیش‌انتشار بالادست را گزارش می‌دهند یا تشخیص پیش‌انتشار مبتنی بر regex را فعال کرده‌اند. معادل با تنظیم `MISE_PRERELEASES=1` یا تنظیم `prereleases` در طول مدت اجرای این دستور.
در صورت شکست در واکشی فراداده‌های انتشار، با خطا مواجه می‌شود

نیازمند --json و --no-versions-host است.

این گزینه مانع از آن می‌شود که مصرف‌کنندگان فراداده، هنگام شکست درخواست بالادستِ تولیدکنندهٔ فراداده در یک بک‌اند، نتایج خالی جایگزین (fallback) را بپذیرند.

نمایش راهنما آرگومان‌ها:
<TOOL@VERSION>
ابزاری که نسخه‌های آن دریافت می‌شود
<PREFIX>
پیشوند نسخه برای استفاده هنگام پرس‌وجوی آخرین نسخه؛ همانند بخش پس از «@» در آرگومان اول.SH "MISE MCP" اجرای کارساز Model Context Protocol (MCP)

این دستور یک کارساز MCP را راه‌اندازی می‌کند که قابلیت‌های mise را از طریق stdin/stdout و با استفاده از پروتکل JSON-RPC در اختیار دستیارهای هوش مصنوعی قرار می‌دهد.

کارساز MCP دسترسی به موارد زیر را فراهم می‌کند: - ابزارهای نصب‌شده و در دسترس - تعاریف و اجرای تسک‌ها - متغیرهای محیطی - اطلاعات پیکربندی - اجرای تسک از طریق ابزار run_task

منابع در دسترس: - mise://tools - فهرست کردن همه ابزارها (از ?include_inactive=true برای گنجاندن ابزارهای غیرفعال استفاده کنید) - mise://tasks - فهرست کردن همه تسک‌ها به همراه پیکربندی‌هایشان - mise://env - فهرست کردن همه متغیرهای محیطی - mise://config - نمایش فایل‌های پیکربندی و ریشه پروژه

ابزارهای در دسترس: - list_commands - تمام دستورات mise، به همراه تأثیر اعلام‌شده آن‌ها بر سیستم - install_tool - نصب یک ابزار با نگارش اختیاری (هنوز پیاده‌سازی نشده است) - run_task - اجرای یک تسک mise با آرگومان‌های اختیاری

نکته: این قابلیت در درجه اول برای یکپارچه‌سازی با دستیارهای هوش مصنوعی مانند Claude، Cursor یا سایر ابزارهایی که از Model Context Protocol پشتیبانی می‌کنند طراحی شده است.

کاربرد: mise mcp [OPTIONS]

گزینه‌ها:

نمایش راهنما

[آزمایشی] ساخت ایمیج‌های کانتینر OCI از یک mise.toml

هر ابزار به یک لایه OCI مجزا تبدیل می‌شود، بنابراین ارتقای هر نگارشِ تکیِ ابزار تنها یک حباب (blob) با آدرس‌دهی مبتنی بر محتوا را باطل می‌کند — برخلاف Dockerfile که در آن تغییر یک دستور اولیه `RUN`، تمام لایه‌های بعدی را باطل می‌سازد.

این دستور آزمایشی است و به `mise settings experimental=true` (یا `MISE_EXPERIMENTAL=1`) نیاز دارد. رفتار، پرچم‌ها و ساختار خروجی ممکن است در انتشار‌های آینده تغییر کنند.

کاربرد: mise oci [OPTIONS] <COMMAND>

گزینه‌ها:

نمایش راهنما

[آزمایشی] ساخت یک ایمیج OCI از mise.toml کنونی

نگارش هر ابزار به یک لایه OCI مجزا با آدرس‌دهی مبتنی بر محتوا تبدیل می‌شود. ارتقای نگارش یک ابزار تنها لایه همان ابزار را باطل می‌کند — سایر ابزارها، ایمیج پایه و پیکربندی بدون تغییر دوباره استفاده می‌شوند. دایرکتوری خروجی با مشخصات OCI image-layout مطابقت دارد و می‌تواند توسط `skopeo`، `crane` یا `podman load` استفاده شود.

نیازمند `mise settings experimental=true` (یا `MISE_EXPERIMENTAL=1`).

کاربرد: mise oci build [OPTIONS]

گزینه‌ها:

کپی کردن یک فایل، دایرکتوری یا پیوند نمادینِ میزبان به درون ایمیج (قابل تکرار، HOST:IMAGE)
دایرکتوری خروجی برای چیدمان ایمیج OCI
پیش‌فرض: ./mise-oci
مرجع ایمیج پایه (بازنویسی [oci].from و تنظیم oci.default_from)
گنجاندن ابزارها از پیکربندی سراسری / سیستمی (پیش‌فرض: فقط پروژه)

به‌طور پیش‌فرض `mise oci build` تنها ابزارهای تعریف‌شده در پیکربندی mise پروژه (و هرگونه پیکربندی والد در ریشه پروژه یا زیر آن، مانند پیکربندی ریشه monorepo) را بسته‌بندی می‌کند. ابزارهای توسعه شخصی در `~/.config/mise/config.toml` مستثنی می‌شوند تا در ایمیج پروژه تعبیه نشوند. برای بازگشت به رفتار پیشین یعنی «ادغام همه پیکربندی‌های بارگذاری‌شده»، پرچم `--include-global` را ارسال کنید.

برچسب برای ثبت در نمایه (index) ایمیج (یادداشت org.opencontainers.image.ref.name)
محل قرارگیری ابزارهای نصب‌شده درون ایمیج (پیش‌فرض: /mise)
عدم تعبیه باینری در حال اجرای mise در /usr/local/bin/mise
مقدار UID[:GID] برای انتساب به هر مدخل tar در لایه‌های تولیدشده

تنظیمات [oci].user_id / [oci].group_id را بازنویسی می‌کند. مقدار پیش‌فرض 0:0 است. اگر GID حذف شود، به‌طور پیش‌فرض برابر با UID در نظر گرفته می‌شود. این گزینه تنها بر مالکیت فایل اثر می‌گذارد؛ مقدار [oci].user دستورالعمل USER در ایمیج را کنترل می‌کند.

نمایش راهنما.SH "MISE OCI PUSH" [آزمایشی] ساخت یک ایمیج OCI و ارسال (push) آن به یک رجیستری

با کلاینت رجیستری توکار mise ارسال می‌شود — نیازی به skopeo/crane/docker نیست. اگر `--image-dir` داده نشود، ابتدا یک ساخت تازه بر مبنای mise.toml کنونی انجام می‌شود. تنها blobهایی که هنوز در رجیستری وجود ندارند بارگذاری می‌شوند، بنابراین pushهای مکرر برای مجموعه‌ابزارهای عمدتاً بدون تغییر کم‌هزینه خواهند بود.

لایه‌های ابزاری که ابزار، نسخه، نقطه اتصال (mount point) و مالک فایل آن‌ها با ایمیج قبلاً ارسال‌شده (یا `--cache-from`) یکسان باشد، بدون نیاز به ساخت مجدد دوباره استفاده می‌شوند — این ابزارها حتی نیازی به نصب محلی ندارند. برای اجبار به ساخت کامل محلی، گزینه `--no-cache` را مشخص کنید.

اطلاعات احراز هویت از همان مکان‌هایی که docker و podman استفاده می‌کنند خوانده می‌شود: `$REGISTRY_AUTH_FILE`، `$XDG_RUNTIME_DIR/containers/auth.json`، `~/.config/containers/auth.json` و `~/.docker/config.json` (شامل دستیاران احراز هویت) — بنابراین تنها پیکربندی مورد نیاز، اجرای `docker login` یا `podman login` است.

نیازمند `mise settings experimental=true` (یا `MISE_EXPERIMENTAL=1`) است.

کاربرد: mise oci push [OPTIONS] <REF>

گزینه‌ها:

استفاده مجدد از لایه‌های ابزار بدون تغییر از این ایمیج به‌جای ref مقصد

باید در همان مخزن مقصد قرار داشته باشد. زمانی مفید است که هر push یک تگ یکتا دریافت کند (مانند تگ‌های به ازای هر کامیت در CI): `--cache-from ghcr.io/me/dev:latest ghcr.io/me/dev:$SHA`.

ایمیج پایه برای ساخت (با --image-dir نادیده گرفته می‌شود)
ارسال ساختار ایمیج OCI از پیش ساخته‌شده (صرف‌نظر کردن از مرحله ساخت)
شامل کردن ابزارهای پیکربندی سراسری / سیستمی نیز می‌شود (پیش‌فرض: فقط پروژه)

برای جزئیات به `mise oci build --help` مراجعه کنید.

بازنویسی نقطه اتصال درون ایمیج (با --image-dir نادیده گرفته می‌شود)
عدم استفاده مجدد از لایه‌های ابزار ایمیج ارسال‌شده قبلی
عدم تعبیه باینری mise (با --image-dir نادیده گرفته می‌شود)
اختصاص UID[:GID] به هر ورودی tar هنگام ساخت (با --image-dir تداخل دارد)

تنظیمات [oci].user_id و [oci].group_id را بازنویسی می‌کند. پیش‌فرض 0:0 است. اگر GID حذف شود، به‌طور پیش‌فرض به UID تنظیم می‌شود. این گزینه فقط بر مالکیت فایل اثر می‌گذارد؛ دستورالعمل USER ایمیج توسط [oci].user کنترل می‌شود.

نگهداری تگ به‌صورت یک نمایه ایمیج چندمعماری (multi-arch image index)

مانیفست این ساخت را بر اساس دایجست (digest) ارسال کرده و تگ را به یک نمایه ایمیج OCI با یک ورودی به ازای هر پلتفرم اشاره می‌دهد، در حالی که ورودی‌های ارسال‌شده توسط سایر معماری‌ها حفظ می‌شوند. برای سرهم‌بندی یک تگ چندمعماری، `mise oci push --update-index` را روی یک اجراکننده (runner) به ازای هر پلتفرم اجرا کنید.

نمایش راهنما آرگومان‌ها:
<REF>
ارجاع رجیستری مقصد (مانند `ghcr.io/me/devenv:latest`)

[آزمایشی] ساخت یک ایمیج OCI از mise.toml کنونی و اجرای یک دستور در آن

معادل `mise oci build` و سپس اجرای `docker run` یا `podman run` است. ایمیج ساخته‌شده در موتور کانتینر محلی بارگذاری می‌شود (podman ساختار OCI layout را مستقیماً دریافت می‌کند؛ docker آن را از طریق `docker load` دریافت می‌کند) و دستور مشخص‌شده درون آن با به ارث بردن stdin/stdout/stderr اجرا می‌شود.

نیازمند `mise settings experimental=true` (یا `MISE_EXPERIMENTAL=1`) و یکی از موارد: `podman`، `docker` است.

کاربرد: mise oci run [OPTIONS] [<CMD>] ...

گزینه‌ها:

موتور کانتینر مورد استفاده (`auto`، `podman` یا `docker`)
پیش‌فرض: auto
ارجاع ایمیج پایه برای ساخت (با --image-dir نادیده گرفته می‌شود)
استفاده از یک ساختار ایمیج OCI از پیش ساخته‌شده به‌جای ساخت جدید
شامل کردن ابزارهای پیکربندی سراسری / سیستمی نیز می‌شود (پیش‌فرض: فقط پروژه)

برای جزئیات به `mise oci build --help` مراجعه کنید.

نگهداری ایمیج بارگذاری‌شده در فضای ذخیره‌سازی موتور پس از اجرا

به‌طور پیش‌فرض، با خروج دستور، هم کانتینر (`--rm`) و هم ایمیج بارگذاری‌شده حذف می‌شوند، بنابراین اجرای مکرر `mise oci run` ایمیج‌ها را در حافظه ذخیره‌سازی podman / docker انباشته نمی‌کند. برای نگه‌داشتن ایمیج با تگ استفاده‌شده توسط mise (`mise-oci:run-*` برای docker؛ شناسه ایمیج دریافت‌شده برای podman) گزینه `--keep` را مشخص کنید.

بازنویسی نقطه اتصال درون ایمیج (با --image-dir نادیده گرفته می‌شود)
عدم تعبیه باینری mise (با --image-dir نادیده گرفته می‌شود)
اختصاص UID[:GID] به هر ورودی tar هنگام ساخت (با --image-dir تداخل دارد)

تنظیمات [oci].user_id و [oci].group_id را بازنویسی می‌کند. پیش‌فرض 0:0 است. اگر GID حذف شود، به‌طور پیش‌فرض به UID تنظیم می‌شود. این گزینه فقط بر مالکیت فایل اثر می‌گذارد؛ دستورالعمل USER ایمیج توسط [oci].user کنترل می‌شود.

متصل کردن (Bind-mount) یک مسیر میزبان (تکرارپذیر، `HOST:CONTAINER[:MODE]`)

نکته: برخلاف `docker run -v`، هیچ پرچم کوتاه `-v` در اینجا وجود ندارد زیرا mise پرچم `-v` را برای --verbose رزرو کرده است. از `--volume` یا `--mount` استفاده کنید.

تنظیم متغیر محیطی در کانتینر (تکرارپذیر، `KEY=VAL`)
اجرای تعاملی (ارسال `-i` به موتور کانتینر)
تخصیص TTY (ارسال `-t` به موتور کانتینر)
دایرکتوری کاری درون کانتینر
نمایش راهنما آرگومان‌ها:
<CMD>
دستور و آرگومان‌ها برای اجرا درون کانتینر (پس از `--`).SH "MISE OUTDATED" نمایش نسخه‌های قدیمی ابزارها

برای ارتقای این نسخه‌ها، `mise upgrade` را ببینید.

نحوه استفاده: mise outdated [OPTIONS] [<TOOL@VERSION>] ...

گزینه‌ها:

مقایسه با جدیدترین نسخه‌های موجود، نه آنچه با پیکربندی فعلی مطابقت دارد

برای مثال، اگر در پیکربندی خود `node = "20"` را داشته باشید، به‌طور پیش‌فرض `mise outdated` فقط سایر نسخه‌های 20.x را نشان می‌دهد، نه نسخه‌های 21.x یا 22.x را.

با استفاده از این پرچم، اگر نسخه‌های 21.x یا جدیدتری وجود داشته باشند، به‌جای 20.x نمایش داده خواهند شد.

خروجی در قالب JSON
کوتاه‌نوشت منسوخ‌شده برای --bump
نمایش ابزارهای قدیمی از جمله ابزارهای نصب‌شده اما غیرفعالی که در پیکربندی فعلی وجود ندارند

به‌طور پیش‌فرض، `mise outdated` فقط ابزارهایی را نشان می‌دهد که از پیکربندی فعلی می‌آیند.

تنها نمایش ابزارهای قدیمیِ تعریف‌شده در فایل‌های پیکربندی محلی

این گزینه فقط ابزارهایی را نشان می‌دهد که در mise.toml محلیِ پروژه تعریف شده‌اند و از ابزارهای تعریف‌شده در پیکربندی سراسری (~/.config/mise/config.toml) صرف‌نظر می‌کند.

نگه‌دارنده جایگزین برای بررسی‌های ابزارهای قدیمی در monorepo در آینده؛ دستور `mise outdated --monorepo` هنوز پیاده‌سازی نشده است.
عدم نمایش سربرگ جدول
چاپ راهنما آرگومان‌ها:
<TOOL@VERSION>
ابزار(ها) برای نمایش نسخه‌های قدیمی آن‌ها مثال: node@20 python@3.10 در صورت مشخص نشدن، تمام ابزارهای موجود در پیکربندی‌های سراسری و محلی نشان داده خواهند شد

نمایش افرادی که در سطح Patron از mise حمایت می‌کنند

فهرست کردن افراد حاضر در سطح Patron از https://jdx.dev/patrons.json. این فهرست روزانه تازه‌سازی می‌شود؛ پایانه‌های پشتیبانی‌کننده، نام هر حامی را به‌صورت پیوند قابل کلیک از طریق ابرپیوندهای OSC 8 نمایش می‌دهند.

برای قرار گرفتن در اینجا، در https://jdx.dev/sponsors.html حامی شوید.

نحوه استفاده: mise patrons [OPTIONS]

گزینه‌ها:

خروجی در قالب JSON
دور زدن حافظهٔ پنهان محلی و واکشی مجدد
چاپ راهنما

مدیریت افزونه‌ها

نحوه استفاده: mise plugins [OPTIONS] [COMMAND]

گزینه‌ها:

فهرست کردن تمام افزونه‌های دوردست (ریموت) موجود

مشابه با `mise plugins ls-remote`

فقط افزونه‌های توکار معمولاً این افزونه‌ها نشان داده نمی‌شوند
نمایش نشانی git برای هر افزونه مثال: https://github.com/mise-plugins/vfox-cmake.git
نمایش git refها برای هر افزونه مثال: main 1234abc
فهرست کردن افزونه‌های نصب‌شده

این رفتار پیش‌فرض است اما می‌تواند همراه با --core استفاده شود تا هم افزونه‌های هسته و هم افزونه‌های کاربر نشان داده شوند

چاپ راهنما.SH "MISE PLUGINS INSTALL" نصب یک افزونه

توجه داشته باشید که mise می‌تواند هنگام نصب یک ابزار، افزونه‌ها را به‌طور خودکار نصب کند به‌عنوان مثال: `mise install cmake@3.30` افزونه cmake را به‌طور خودکار نصب می‌کند

این رفتار را می‌توان در ~/.config/mise/config.toml تغییر داد

نحوه استفاده: mise plugins install [OPTIONS] [<NEW_PLUGIN>] [<GIT_URL>] [<REST>] ...

گزینه‌ها:

نصب تمام افزونه‌های مفقود این گزینه تنها افزونه‌هایی را نصب می‌کند که نام کوتاه (shorthand) منطبق دارند؛ یعنی نیازی به نشانی کامل مخزن git ندارند
نصب مجدد حتی در صورت وجود افزونه
تعداد کارهای هم‌روند برای اجرا مقادیر کمتر از ۱ معادل ۱ در نظر گرفته می‌شوند
نمایش خروجی فرایند نصب
چاپ راهنما آرگومان‌ها:
<NEW_PLUGIN>
نام افزونه برای نصب به‌عنوان مثال: cmake، poetry می‌توان چندین افزونه را مشخص کرد: `mise plugins install cmake poetry`
<GIT_URL>
نشانی git افزونه

ایجاد پیوند نمادین (Symlink) برای یک افزونه به درون mise

این دستور برای توسعه یک افزونه به کار می‌رود.

نحوه استفاده: mise plugins link [OPTIONS] <NAME> [<DIR>]

گزینه‌ها:

بازنویسی افزونه موجود
چاپ راهنما آرگومان‌ها:
<NAME>
نام افزونه به‌عنوان مثال: cmake، poetry
<DIR>
مسیر محلی افزونه به‌عنوان مثال: ./vfox-cmake

فهرست کردن افزونه‌های نصب‌شده

همچنین می‌تواند افزونه‌های دردسترس از راه دور را برای نصب نمایش دهد.

نحوه استفاده: mise plugins ls [OPTIONS]

گزینه‌ها:

فهرست کردن تمام افزونه‌های دردسترس از راه دور مشابه دستور `mise plugins ls-remote`
تنها افزونه‌های توکار (built-in) در حالت عادی این افزونه‌ها نمایش داده نمی‌شوند
نمایش افزونه‌های دارای به‌روزرسانی مخزن دوردست را برای نسخه‌های جدیدتر بررسی کرده و تنها افزونه‌های قدیمی‌شده را نمایش می‌دهد
نمایش نشانی git برای هر افزونه به‌عنوان مثال: https://github.com/mise-plugins/vfox-cmake.git
نمایش ارجاعات git (git refs) برای هر افزونه به‌عنوان مثال: main 1234abc
فهرست کردن افزونه‌های نصب‌شده
چاپ راهنما.SH "MISE PLUGINS LS-REMOTE"

فهرست کردن تمام افزونه‌های دوردست دردسترس

فهرست کامل اینجاست: https://github.com/jdx/mise/blob/main/registry

مثال‌ها:


$ mise plugins ls-remote

کاربرد: mise plugins ls-remote [OPTIONS]

گزینه‌ها:

نمایش نشانی git برای هر افزونه، برای نمونه: https://github.com/mise-plugins/mise-poetry.git
تنها نمایش نام هر افزونه؛ به‌طور پیش‌فرض یک «*» در کنار افزونه‌های نصب‌شده نمایش داده می‌شود
نمایش راهنما

حذف یک افزونه

کاربرد: mise plugins uninstall [OPTIONS] [<PLUGIN>] ...

گزینه‌ها:

حذف تمام افزونه‌ها
همچنین حذف موارد نصب‌شده، بارگیری‌ها و کَش افزونه
نمایش راهنما آرگومان‌ها:
<PLUGIN>
افزونه(هایی) برای حذف

به‌روزرسانی یک افزونه به آخرین نسخه

نکته: این عمل خودِ افزونه را به‌روزرسانی می‌کند، نه نسخه‌های زمان‌اجرا (runtime) را

کاربرد: mise plugins update [OPTIONS] [<PLUGIN>] ...

گزینه‌ها:

تعداد کارها برای اجرای موازی مقادیر کمتر از ۱ برابر ۱ در نظر گرفته می‌شوند پیش‌فرض: 4
نمایش راهنما آرگومان‌ها:
<PLUGIN>
افزونه(هایی) برای به‌روزرسانی

[آزمایشی] مدیریت وابستگی‌های پروژه

اجرای تمام مراحل قابل‌اعمال نصب وابستگی برای پروژهٔ کنونی. این بررسی می‌کند که آیا فایل‌های قفل وابستگی (lockfiles) از خروجی‌های نصب‌شده جدیدتر هستند یا خیر (مانند package-lock.json در برابر node_modules/) و در صورت نیاز دستورهای نصب را اجرا می‌کند.

ارائه‌دهندگانی با `auto = true` به‌طور خودکار پیش از `mise x` و `mise run` فراخوانی می‌شوند مگر اینکه با گزینهٔ --no-deps نادیده گرفته شوند.

کاربرد: mise deps [OPTIONS] [<PROVIDER>] [COMMAND]

گزینه‌ها:

نمایش دلیل تازه (fresh) یا کهنه (stale) بودن یک ارائه‌دهنده (نیازمند یک آرگومان ارائه‌دهنده است)
اجرای اجباری تمام مراحل وابستگی‌ها حتی اگر خروجی‌ها تازه باشند
تنها بررسی اینکه آیا نصب وابستگی‌ها مورد نیاز است یا خیر، بدون اجرای دستورها
نمایش ارائه‌دهندگان وابستگی دردسترس
نصب وابستگی‌ها از تمام ریشه‌های پیکربندی [monorepo].config_roots

نیازمند monorepo_root = true به‌همراه تعیین صریح [monorepo].config_roots در پیکربندی ریشهٔ monorepo است. ارائه‌دهندگان با قالبی مانند //apps/api:uv نام‌گذاری می‌شوند.

متغیر محیطی: MISE_MONOREPO
تنها اجرای قاعده(های) مشخص وابستگی‌ها
نادیده‌گرفتن قاعده(های) مشخص وابستگی‌ها
نمایش راهنما آرگومان‌ها:
<PROVIDER>
ارائه‌دهنده‌ای که باید روی آن عملیات انجام شود (تنها این ارائه‌دهنده را اجرا می‌کند، یا همراه با --explain استفاده می‌شود).SH "MISE DEPS ADD" افزودن یک وابستگی

یک یا چند بسته را با استفاده از مدیر بسته مناسب به پروژه اضافه می‌کند. مشخصات بسته از قالب `ecosystem:package` استفاده می‌کنند، مانند `npm:react` یا `npm:@types/react@19`.

کاربرد: mise deps add [OPTIONS] <PACKAGES> ...

گزینه‌ها:

افزودن به عنوان یک وابستگی توسعه
نمایش راهنما آرگومان‌ها:
<PACKAGES>
بسته(هایی) برای افزودن (مانند npm:react یا npm:@types/react@19)

نصب تمام وابستگی‌های پروژه

بررسی می‌کند که آیا فایل‌های قفل وابستگی از خروجی‌های نصب‌شده تازه‌تر هستند یا خیر و در صورت نیاز، دستورات نصب را اجرا می‌کند.

کاربرد: mise deps install [OPTIONS] [<PROVIDER>]

گزینه‌ها:

نمایش چرایی تازه یا کهنه بودن یک ارائه‌دهنده (نیاز به یک آرگومان ارائه‌دهنده دارد)
اجرای اجباری تمام مراحل deps حتی اگر خروجی‌ها تازه باشند
تنها بررسی اینکه آیا نصب deps لازم است یا خیر؛ دستورات اجرا نمی‌شوند
نمایش ارائه‌دهنده‌های موجود deps
نصب وابستگی‌ها از هر ریشه پیکربندی [monorepo].config_roots

نیازمند monorepo_root = true به همراه [monorepo].config_roots صریح در پیکربندی ریشه monorepo است. ارائه‌دهنده‌ها به شکلی مانند //apps/api:uv نام‌گذاری می‌شوند.

محیط: MISE_MONOREPO
تنها اجرای قاعده(های) مشخص deps
نادیده گرفتن قاعده(های) مشخص deps
نمایش راهنما آرگومان‌ها:
<PROVIDER>
ارائه‌دهنده‌ای که عملیات روی آن انجام می‌شود (تنها این ارائه‌دهنده را اجرا می‌کند، یا برای استفاده با --explain)

حذف یک وابستگی

یک یا چند بسته را با استفاده از مدیر بسته مناسب از پروژه حذف می‌کند. مشخصات بسته از قالب `ecosystem:package` استفاده می‌کنند، مانند `npm:lodash`.

کاربرد: mise deps remove [OPTIONS] <PACKAGES> ...

گزینه‌ها:

نمایش راهنما آرگومان‌ها:
<PACKAGES>
بسته(هایی) برای حذف (مانند npm:lodash).SH "MISE PRUNE" حذف نگارش‌های استفاده‌نشده ابزارها

‏mise بررسی و ردگیری می‌کند که کدام فایل‌های پیکربندی در ~/.local/state/mise/tracked-configs استفاده شده‌اند. نگارش‌هایی که دیگر جدیدترین نگارش مشخص‌شده در هیچ‌یک از آن فایل‌های پیکربندی نیستند، حذف می‌شوند. نگارش‌هایی که فقط با متغیرهای محیطی `MISE_<TOOL>_VERSION` نصب شده‌اند، و همچنین نگارش‌هایی که تنها در خط فرمان `mise exec <TOOL>@<VERSION>` به آن‌ها ارجاع داده شده است، حذف خواهند شد.

استاب‌های (stubs) ابزارهایی که اجرا شده‌اند در ~/.local/state/mise/tracked-stubs ردگیری می‌شوند. نگارش‌هایی که هنوز توسط یک استاب ردگیری‌شده به آن‌ها ارجاع داده می‌شود، حذف نخواهند شد.

می‌توانید ابزارهای قابل هرس را با `mise ls --prunable` فهرست کنید.

کاربرد: mise prune [OPTIONS] [<INSTALLED_TOOL>] ...

گزینه‌ها:

در عمل چیزی را حذف نمی‌کند
تنها پیوندهای پیکربندی ردگیری‌شده و معتبری را که به پیکربندی‌های ناموجود اشاره دارند، هرس می‌کند
مانند --dry-run است، اما اگر ابزاری برای هرس وجود داشته باشد با کد ۱ خارج می‌شود

این گزینه برای اسکریپت‌ها جهت بررسی اینکه آیا ابزاری نیاز به هرس دارد یا خیر، مفید است.

جای‌نگه‌داری برای هرس monorepo در آینده؛ دستور `mise prune --monorepo` هنوز پیاده‌سازی نشده است.
تنها نگارش‌های استفاده‌نشده ابزارها را هرس می‌کند
نمایش راهنما آرگومان‌ها:
<INSTALLED_TOOL>
تنها این ابزارها را هرس می‌کند

فهرست کردن ابزارهای در دسترس برای نصب

این دستور ابزارهای موجود در رجیستری را به صورت نام‌های مختصر فهرست می‌کند.

به عنوان مثال، `poetry` نام مختصری برای `asdf:mise-plugins/mise-poetry` است.

کاربرد: mise registry [OPTIONS] [<NAME>]

گزینه‌ها:

تنها ابزارهای مربوط به این backend را نمایش می‌دهد
چاپ تمام ابزارها به همراه توضیحات برای تکمیل خودکار پوسته (shell completions)
پنهان کردن ابزارهای دارای نام مستعار (aliased)
خروجی در قالب JSON
ویژگی‌های امنیتی backendهای هر ابزار را در خروجی JSON می‌گنجاند.

نیازمند --json است. اطلاعات امنیتی در تمام backendهای یک ابزار یکسان‌سازی شده و موارد تکراری حذف می‌شوند. این مورد می‌تواند برای فهرست‌های بزرگ زمان قابل‌توجهی صرف کند، زیرا اطلاعات امنیتی هر backend به‌صورت جداگانه دریافت می‌شود.

نمایش راهنما آرگومان‌ها:
<NAME>
تنها نام کامل ابزار مشخص‌شده را نشان می‌دهد

بر اساس مسیرهای bin از ابزارهای نصب‌شده فعلی، شیم‌های (shims) جدید ایجاد می‌کند.

این دستور در دایرکتوری shim پیکربندی‌شده برای کاربر، شیم‌های جدیدی برای CLIهایی که اضافه شده‌اند ایجاد می‌کند. با `--system`، در عوض ساختار شیم‌های سیستمی پیکربندی‌شده (system shim farm) را بازسازی می‌کند. ‏mise تلاش می‌کند این کار را برای دستورهایی مانند `npm i -g` به‌طور خودکار انجام دهد، اما راه‌های دیگری برای نصب وجود دارد (مانند استفاده از yarn یا pnpm برای node) که mise از آن‌ها اطلاعی ندارد و بنابراین فراخوانی صریح این دستور لازم خواهد بود.

اگر فکر می‌کنید mise باید این دستور را برای یک دستور خاص به‌طور خودکار فراخوانی کند، لطفاً یک issue در مخزن mise ثبت کنید. همچنین می‌توانید یک تابع پوسته برای اجرای خودکار reshim تنظیم کنید (این عملیات بسیار سریع است بنابراین نیازی نیست نگران بار پردازشی آن باشید):


npm() {
command npm "$@"
mise reshim
}

توجه داشته باشید که این دستور برای _تمام_ ابزارهای نصب‌شده شیم ایجاد می‌کند، نه فقط مواردی که در حال حاضر در mise.toml فعال هستند.

کاربرد: mise reshim [OPTIONS] [<TOOL>] [<VERSION>]

گزینه‌ها:

تمام شیم‌های متعلق به mise را بازسازی می‌کند
بازسازی ساختار شیم‌های سیستمی (system shim farm)
نمایش راهنما.SH "MISE RUN" اجرای تسک(ها)

این دستور یک تسک یا چندین تسک را به‌صورت موازی اجرا می‌کند. تسک‌ها ممکن است به تسک‌های دیگر یا به فایل‌های منبع وابسته باشند. اگر منبع (source) برای یک تسک پیکربندی شده باشد، تسک تنها در صورتی اجرا می‌شود که فایل‌های منبع تغییر کرده باشند.

تسک‌ها را می‌توان در mise.toml یا به‌صورت اسکریپت‌های مستقل تعریف کرد. در mise.toml، تسک‌ها به این شکل تعریف می‌شوند:


[tasks.build]
run = "npm run build"
sources = ["src/**/*.ts"]
outputs = ["dist/**/*.js"]

روش دیگر این است که تسک‌ها به‌صورت اسکریپت‌های مستقل تعریف شوند. این اسکریپت‌ها باید در `mise-tasks`، `.mise-tasks`، `.mise/tasks`، `mise/tasks` یا `.config/mise/tasks` قرار گیرند. نام اسکریپت، همان نام تسک خواهد بود.


$ cat .mise/tasks/build<<EOF
#!/usr/bin/env bash
npm run build
EOF
$ mise run build

نحوه استفاده: mise run [OPTIONS]

گزینه‌ها:

اجرای تسک‌های منطبق فقط برای پروژه‌های متأثر از تغییرات Git
بازنگری (revision) پایه در Git برای --affected پیش‌فرض: MISE_AFFECTED_BASE، فراداده CI یا HEAD~1
توضیح این‌که چرا پروژه‌ها و تسک‌ها توسط --affected انتخاب شده‌اند
بازنگری سر (head) در Git برای --affected پیش‌فرض: MISE_AFFECTED_HEAD، فراداده CI یا HEAD
نمایش پروژه‌ها و تسک‌های متأثر در قالب JSON بدون اجرای تسک‌ها
باز کردن انتخاب‌گر تعاملی با تمام تسک‌های کل مونوریپو (monorepo)
ادامه اجرای تسک‌ها حتی در صورت شکست خوردن یکی از آن‌ها
تغییر به این دایرکتوری پیش از اجرای دستور
اجبار تسک‌ها به اجرا حتی اگر خروجی‌ها به‌روز باشند
تعداد تسک‌ها برای اجرای هم‌زمان (موازی) مقادیر کمتر از ۱ به‌صورت ۱ در نظر گرفته می‌شوند [پیش‌فرض: 4] پیکربندی از طریق تنظیم `jobs` یا متغیر محیطی `MISE_JOBS`
متغیر محیطی: MISE_JOBS
عدم اجرای واقعی تسک(ها)، صرفاً چاپ آن‌ها به ترتیب اجرا
تغییر نحوه نمایش خروجی اطلاعات هنگام اجرای تسک‌ها

- `prefix` - چاپ خط‌به‌خط stdout/stderr با پیشوند برچسب تسک - `interleave` - چاپ مستقیم روی stdout/stderr به‌جای چاپ خط‌به‌خط - `replacing` - مقدار stdout هر بار جایگزین می‌شود، stderr همان‌طور که هست چاپ می‌شود - `timed` - خطوط stdout تنها در صورتی نمایش داده می‌شوند که بیش از ۱ ثانیه نمایش یابند - `keep-order` - چاپ خط‌به‌خط stdout/stderr با پیشوند برچسب تسک، با حفظ ترتیب خروجی - `quiet` - عدم نمایش خروجی‌های اضافی - `silent` - عدم نمایش هیچ خروجی از جمله stdout و stderr تسک به‌جز خطاها

متغیر محیطی: MISE_TASK_OUTPUT
عدم نمایش خروجی‌های اضافی
متغیر محیطی: MISE_QUIET
خواندن/نوشتن مستقیم روی stdin/stdout/stderr به‌جای خط‌به‌خط با این گزینه، سانسورها/پنهان‌سازی‌ها اعمال نمی‌شوند پیکربندی از طریق تنظیم `raw` یا متغیر محیطی `MISE_RAW`
پوسته‌ای (shell) که برای اجرای تسک‌های toml استفاده می‌شود

پیش‌فرض در یونیکس `sh -c -o errexit -o pipefail`، و در ویندوز `cmd /c` است همچنین می‌تواند با تنظیم `MISE_UNIX_DEFAULT_INLINE_SHELL_ARGS` یا `MISE_WINDOWS_DEFAULT_INLINE_SHELL_ARGS` تعیین شود یا با ویژگی `shell` روی یک تسک بازنویسی شود.

عدم نمایش هیچ‌گونه خروجی به‌جز خطاها
متغیر محیطی: MISE_SILENT
ابزار(هایی) که علاوه بر موارد موجود در فایل‌های mise.toml باید اجرا شوند، مانند: node@20 python@3.10
اجازه عبور به متغیر محیطی خاص (به معنی اعمال --deny-env برای سایر متغیرها) پشتیبانی از الگوهای عامه‌نما (wildcards)، مانند: --allow-env='MYAPP_*'
اجازه دسترسی به شبکه برای میزبان خاص (به معنی اعمال --deny-net برای سایر موارد)
اجازه خواندن از مسیر خاص (به معنی اعمال --deny-read برای سایر مسیرها)
اجازه نوشتن در مسیر خاص (به معنی اعمال --deny-write برای سایر مسیرها)
مسدود کردن خواندن، نوشتن، شبکه و متغیرهای محیطی
مسدود کردن توارث متغیرهای محیطی (تنها PATH، HOME، USER، SHELL، TERM و LANG عبور می‌کنند)
مسدود کردن تمام دسترسی‌های شبکه
مسدود کردن خواندن از فایل‌سیستم (کتابخانه‌های سیستم و دایرکتوری‌های ابزار همچنان در دسترس خواهند بود)
مسدود کردن تمام نوشتن‌ها روی فایل‌سیستم
نادیده گرفتن حافظه موقت (کش) محیط و محاسبه مجدد متغیرهای محیطی
عدم استفاده از کش برای تسک‌های راه دور
متغیر محیطی: MISE_TASK_REMOTE_NO_CACHE
صرف‌نظر کردن از آماده‌سازی خودکار وابستگی‌ها
پنهان کردن زمان سپری‌شده پس از اتمام هر تسک

به‌طور پیش‌فرض با `MISE_TASK_TIMINGS=0` همیشه پنهان می‌شود

اجرای تنها تسک‌های مشخص‌شده با صرف‌نظر از تمامی وابستگی‌ها
متغیر محیطی: MISE_TASK_SKIP_DEPENDS
صرف‌نظر کردن از نصب ابزارها پیش از اجرای تسک‌ها

همچنین می‌تواند به‌طور دائمی با تنظیم `task.run_auto_install` یا متغیر محیطی `MISE_TASK_RUN_AUTO_INSTALL=false` تعیین شود

تنظیم نحوه دسترسی به کش خروجی تسک برای این اجرا

- `read-write` - خواندن نتایج کش‌شده و نوشتن نتایج جدید - `read-only` - خواندن نتایج کش‌شده بدون نوشتن نتایج جدید - `write-only` - نوشتن نتایج جدید بدون خواندن نتایج کش‌شده - `off` - غیرفعال کردن کش خروجی تسک - `local-only` - فقط خواندن و نوشتن در کش محلی؛ در حال حاضر معادل با `read-write`

پیش‌فرض: read-write
متغیر محیطی: MISE_TASK_CACHE --task-cache-explain ورودی‌هایی را که کلید کَش خروجی هر تسک را تولید کرده‌اند، توضیح می‌دهد
نمایش جزئیات ورودی کلید کَش در قالب JSON Lines بدون اجرای تسک‌ها
گزارش موارد اصابت به کَش خروجی تسک (cache hits)، بایت‌های بازیابی‌شده و زمان صرفه‌جویی‌شده
مهلت زمانی برای تکمیل تسک برای نمونه: 30s ،5m
نمایش زمان سپری‌شده پس از اتمام هر تسک

به‌طور پیش‌فرض با `MISE_TASK_TIMINGS=1` همیشه نمایش داده می‌شود

جستجوی ابزارها در رجیستری

این دستور یک ابزار را در رجیستری جستجو می‌کند.

به‌طور پیش‌فرض، تمام ابزارهایی که با عبارت مورد نظر تطابق تقریبی (fuzzy) دارند نمایش داده می‌شوند. برای تطابق‌های غیرتقریبی، از پرچم `--match-type` استفاده کنید.

کاربرد: mise search [OPTIONS] [<NAME>]

گزینه‌ها:

نمایش جستجوی تعاملی
نوع تطابق: equal ،contains یا fuzzy
پیش‌فرض: fuzzy
عدم نمایش سرآیندها
نمایش راهنما آرگومان‌ها:
<NAME>
ابزار مورد نظر برای جستجو

خود mise را به‌روزرسانی می‌کند.

برای یافتن آخرین نگارش منتشرشده و باینری از GitHub Releases API استفاده می‌کند. به‌طور پیش‌فرض، این دستور افزونه‌های نصب‌شده را نیز به‌روزرسانی خواهد کرد. برای درخواست‌های احرازهویت‌شده از زنجیره تفکیک توکن GitHub در mise استفاده می‌کند.

بسته‌سازان می‌توانند این دستور را غیرفعال کنند تا mise در عوض از طریق مدیر بسته‌ها به‌روزرسانی شود. ببینید: https://mise.jdx.dev/contributing.html#packaging-and-self-update-instructions

کاربرد: mise self-update [OPTIONS] [<VERSION>]

گزینه‌ها:

به‌روزرسانی حتی در صورت به‌روز بودن
صرف‌نظر از اعلان تأیید
غیرفعال‌سازی به‌روزرسانی خودکار افزونه‌ها
نمایش راهنما آرگومان‌ها:
<VERSION>
به‌روزرسانی به یک نسخه مشخص.SH "MISE SET" تنظیم متغیرهای محیط در mise.toml

به‌طور پیش‌فرض، این دستور فایل `mise.toml` را در دایرکتوری جاری تغییر می‌دهد. اگر چندین فایل پیکربندی وجود داشته باشد (برای مثال، هر دو فایل `mise.toml` و `mise.local.toml`)، فایلی با کمترین اولویت (`mise.toml`) استفاده خواهد شد. ببینید: https://mise.jdx.dev/configuration.html#target-file-for-write-operations

از `-E <env>` برای ایجاد یا تغییر فایل‌های پیکربندی مختص به محیط مانند `mise.<env>.toml` استفاده کنید.

نحوه استفاده: mise set [OPTIONS] [<ENV_VAR>] ...

گزینه‌ها:

ایجاد یا تغییر یک فایل پیکربندی مختص به محیط مانند .mise.<env>.toml
تنظیم متغیر محیط در فایل پیکربندی سراسری
[آزمایشی] رمزنگاری مقدار با age پیش از ذخیره‌سازی
[آزمایشی] فایل شناسه age برای رمزنگاری

در صورت وجود، پیش‌فرض ~/.config/mise/age.txt است

[آزمایشی] گیرنده age (کلید عمومی x25519) برای رمزنگاری

می‌تواند چندین بار استفاده شود. به --age-encrypt نیاز دارد.

[آزمایشی] گیرنده SSH (کلید عمومی یا مسیر) برای رمزنگاری age

می‌تواند چندین بار استفاده شود. به --age-encrypt نیاز دارد.

ارائه کامل‌سازی‌ها
فایل TOML برای به‌روزرسانی

می‌تواند مسیر یک فایل یا دایرکتوری باشد. اگر دایرکتوری مشخص شود، mise.toml در آن دایرکتوری ایجاد یا استفاده خواهد شد. پیش‌فرض متغیر محیط [`MISE_DEFAULT_CONFIG_FILENAME`](https://mise.jdx.dev/configuration.html#mise_default_config_filename) یا `mise.toml` است. از [`MISE_GLOBAL_CONFIG_FILE`](https://mise.jdx.dev/configuration.html#mise_global_config_file) برای انتخاب مسیر متفاوتی برای پیکربندی سراسری استفاده کنید.

نمایش مقادیر خام به‌جای سانسور کردن اسرار
درخواست تعاملی برای دریافت مقادیر متغیرهای محیط
حذف متغیر محیط از فایل پیکربندی

می‌تواند چندین بار استفاده شود.

خواندن مقدار از stdin (برای ورودی‌های چندخطی)

هنگام استفاده از --stdin، یک کلید منفرد بدون مقدار ارائه دهید. مقدار تا رسیدن به EOF از stdin خوانده خواهد شد.

چاپ راهنما آرگومان‌ها:
<ENV_VAR>
متغیر(های) محیط برای تنظیم برای مثال: NODE_ENV=production

مدیریت تنظیمات

نحوه استفاده: mise settings [OPTIONS] [<SETTING>] [<VALUE>] [COMMAND]

گزینه‌ها:

فهرست کردن تمام تنظیمات
خروجی در قالب JSON
استفاده از فایل پیکربندی محلی به‌جای فایل سراسری
خروجی در قالب TOML
چاپ تمامی تنظیمات به همراه توضیحات برای کامل‌سازی‌های پوسته
خروجی در قالب JSON به همراه منابع
چاپ راهنما آرگومان‌ها:
<SETTING>
نام تنظیم
<VALUE>
مقدار تنظیم برای اعمال.SH "MISE SETTINGS ADD" یک تنظیم را به فایل پیکربندی اضافه می‌کند

در صورت استفاده برای یک تنظیم آرایه‌ای، این دستور مقدار را به آرایه الحاق می‌کند. این دستور محتویات ~/.config/mise/config.toml را تغییر می‌دهد.

نحوه استفاده: mise settings add [OPTIONS] <SETTING> [<VALUE>]

گزینه‌ها:

استفاده از فایل پیکربندی محلی به جای فایل سراسری
نمایش راهنما آرگومان‌ها:
<SETTING>
تنظیمی که باید مقداردهی شود
<VALUE>
مقداری که باید تنظیم شود (در صورت ارائه به صورت KEY=VALUE اختیاری است)

نمایش یک تنظیم فعلی

این دستور محتوای یک مدخل واحد در ~/.config/mise/config.toml را نشان می‌دهد

توجه داشته باشید که نام‌های مستعار نیز در این فایل ذخیره می‌شوند اما به‌طور جداگانه با `mise tool-alias get` مدیریت می‌شوند

نحوه استفاده: mise settings get [OPTIONS] <SETTING>

گزینه‌ها:

استفاده از فایل پیکربندی محلی به جای فایل سراسری
نمایش راهنما آرگومان‌ها:
<SETTING>
تنظیمی که باید نمایش داده شود

نمایش تنظیمات فعلی

این دستور محتویات ~/.config/mise/config.toml را نشان می‌دهد

توجه داشته باشید که نام‌های مستعار نیز در این فایل ذخیره می‌شوند اما به‌طور جداگانه با `mise tool-alias` مدیریت می‌شوند

نحوه استفاده: mise settings ls [OPTIONS] [<SETTING>]

گزینه‌ها:

فهرست کردن تمام تنظیمات
ارائه خروجی در قالب JSON
استفاده از فایل پیکربندی محلی به جای فایل سراسری
ارائه خروجی در قالب TOML
چاپ تمام تنظیمات به همراه توضیحات برای تکمیل خودکار پوسته (shell completions)
ارائه خروجی در قالب JSON به همراه منبع‌ها
نمایش راهنما آرگومان‌ها:
<SETTING>
نام تنظیم.SH "MISE SETTINGS SET" افزودن یا به‌روزرسانی یک تنظیم

این دستور به‌طور پیش‌فرض محتویات ~/.config/mise/config.toml را تغییر می‌دهد. با `--local`، به جای آن فایل پیکربندی محلی را تغییر می‌دهد. مشاهده کنید: https://mise.jdx.dev/configuration.html#target-file-for-write-operations

نحوه استفاده: mise settings set [OPTIONS] <SETTING> [<VALUE>]

گزینه‌ها:

استفاده از فایل پیکربندی محلی به جای فایل سراسری
نمایش راهنما آرگومان‌ها:
<SETTING>
تنظیمی که باید مقداردهی شود
<VALUE>
مقداری که باید تنظیم شود (در صورتی که به‌صورت KEY=VALUE ارائه شود اختیاری است)

پاک کردن یک تنظیم

این دستور محتویات ~/.config/mise/config.toml را تغییر می‌دهد

نحوه استفاده: mise settings unset [OPTIONS] <KEY>

گزینه‌ها:

استفاده از فایل پیکربندی محلی به جای فایل سراسری
نمایش راهنما آرگومان‌ها:
<KEY>
تنظیمی که باید حذف شود

تنظیم نسخه یک ابزار برای نشست فعلی.

تنها در نشستی کار می‌کند که mise از قبل در آن فعال شده باشد.

این کار با تنظیم متغیرهای محیطی برای نشست فعلی شل کار می‌کند؛ مانند `MISE_NODE_VERSION=20` که در تابع شلِ ایجادشده توسط `mise activate` ارزیابی (eval) می‌شود.

نحوه استفاده: mise shell [OPTIONS] <TOOL@VERSION> ...

گزینه‌ها:

تعداد کارهای هم‌زمان برای اجرا به‌صورت موازی مقادیر کمتر از ۱ به عنوان ۱ در نظر گرفته می‌شوند [پیش‌فرض: 4]
متغیر محیطی: MISE_JOBS
حذف نسخه‌ای که قبلاً تنظیم شده است
اتصال مستقیم stdin/stdout/stderr دستور نصب backend به ترمینال؛ مستلزم --jobs=1 است
نمایش راهنما آرگومان‌ها:
<TOOL@VERSION>
ابزار(ها) برای استفاده

مدیریت نام‌های مستعار (alias) شل.

نحوه استفاده: mise shell-alias [OPTIONS] [COMMAND]

گزینه‌ها:

عدم نمایش سربرگ جدول
نمایش راهنما.SH "MISE SHELL-ALIAS GET" نمایش دستور مربوط به یک نام مستعار پوسته

کاربرد: mise shell-alias get [OPTIONS] <shell_alias>

گزینه‌ها:

چاپ راهنما آرگومان‌ها:
<shell_alias>
نام مستعاری که باید نمایش داده شود

فهرست کردن نام‌های مستعار پوسته

نام‌های مستعار پوسته‌ای را که در دایرکتوری جاری تنظیم شده‌اند نمایش می‌دهد. این موارد در `mise.toml` زیر بخش `[shell_alias]` تعریف می‌شوند.

کاربرد: mise shell-alias ls [OPTIONS]

گزینه‌ها:

عدم نمایش سرستون جدول
چاپ راهنما

افزودن/به‌روزرسانی یک نام مستعار پوسته

این دستور محتویات ~/.config/mise/config.toml را تغییر می‌دهد.

کاربرد: mise shell-alias set [OPTIONS] <shell_alias> [<COMMAND>]

گزینه‌ها:

چاپ راهنما آرگومان‌ها:
<shell_alias>
نام مستعار
<COMMAND>
دستوری که باید اجرا شود (در صورتی که به شکل ALIAS=COMMAND ارائه شود اختیاری است)

حذف یک نام مستعار پوسته

این دستور محتویات ~/.config/mise/config.toml را تغییر می‌دهد.

کاربرد: mise shell-alias unset [OPTIONS] <shell_alias>

گزینه‌ها:

چاپ راهنما آرگومان‌ها:
<shell_alias>
نام مستعاری که باید حذف شود

نمایش شرکت‌های حامی مالی mise و ابزارهای متن‌باز jdx.dev

کاربرد: mise sponsors [OPTIONS]

گزینه‌ها:

چاپ راهنما

همگام‌سازی ابزارها از سایر مدیرهای نسخه با mise

کاربرد: mise sync [OPTIONS] <COMMAND>

گزینه‌ها:

چاپ راهنما.SH "MISE SYNC NODE" ایجاد پیوند نمادین (symlink) از تمام نسخه‌های ابزار موجود در یک ابزار خارجی به داخل mise

برای نمونه، از این دستور برای وارد کردن تمام نسخه‌های نصب‌شده node از طریق Homebrew به mise استفاده کنید

این دستور، موارد نصب‌شده مدیریت‌شده، نام‌های مستعار زمان اجرا (runtime aliases) یا پیوندهای سایر ارائه‌دهندگان را بازنویسی نخواهد کرد.

نحوه استفاده: mise sync node [OPTIONS]

گزینه‌ها:

دریافت نسخه‌های ابزار از Homebrew
دریافت نسخه‌های ابزار از nodenv
دریافت نسخه‌های ابزار از nvm
نمایش راهنما

ایجاد پیوند نمادین (symlink) از تمام نسخه‌های ابزار موجود در یک ابزار خارجی به داخل mise

برای نمونه، از این دستور برای وارد کردن تمام نسخه‌های نصب‌شده pyenv به mise استفاده کنید

این دستور، موارد نصب‌شده مدیریت‌شده، نام‌های مستعار زمان اجرا (runtime aliases) یا پیوندهای سایر ارائه‌دهندگان را بازنویسی نخواهد کرد.

نحوه استفاده: mise sync python [OPTIONS]

گزینه‌ها:

دریافت نسخه‌های ابزار از pyenv
همگام‌سازی نسخه‌های ابزار با uv (همگام‌سازی دوطرفه)
نمایش راهنما

ایجاد پیوند نمادین (symlink) از تمام نسخه‌های ابزار ruby از یک ابزار خارجی به داخل mise

نحوه استفاده: mise sync ruby [OPTIONS]

گزینه‌ها:

دریافت نسخه‌های ابزار از Homebrew
نمایش راهنما

مدیریت وظایف

نحوه استفاده: mise tasks [OPTIONS] [<TASK>] [COMMAND]

گزینه‌ها:

فقط نمایش وظایف سراسری (global)
خروجی در قالب JSON
فقط نمایش وظایف غیرسراسری (محلی)
نمایش تمام ستون‌ها
بارگذاری تمام وظایف از کل monorepo، از جمله دایرکتوری‌های هم‌سطح (sibling). به‌طور پیش‌فرض، تنها وظایف مربوط به سلسله‌مراتب دایرکتوری جاری بارگذاری می‌شوند.
نمایش وظایف جهت تکمیل خودکار دستورات (completion)
نمایش وظایف پنهان
تنها نمایش نام وظایف، یک مورد در هر خط. مناسب برای ارسال از طریق لوله (pipe) به fzf و ابزارهای مشابه.
عدم چاپ سربرگ جدول
مرتب‌سازی بر اساس ستون. پیش‌فرض name است.
ترتیب مرتب‌سازی. پیش‌فرض asc است.
نمایش راهنما آرگومان‌ها:
<TASK>
نام وظیفه برای دریافت اطلاعات آن.SH "MISE TASKS ADD" ایجاد یک وظیفه جدید

یک وظیفه را به فایل محلی mise.toml اضافه می‌کند. ببینید: https://mise.jdx.dev/configuration.html#target-file-for-write-operations

نحوه استفاده: mise tasks add [OPTIONS] <TASK> [<RUN>] ...

گزینه‌ها:

نام‌های دیگر برای وظیفه
افزودن وابستگی‌ها به این وظیفه
اجرای وظیفه در یک دایرکتوری مشخص
ایجاد یک وظیفه بر پایه فایل به‌جای وظیفه toml
مخفی کردن وظیفه از `mise tasks` و تکمیل خودکار (completions)
عدم چاپ دستور پیش از اجرا
اتصال مستقیم stdin/stdout/stderr
الگوهای سراسری (glob) فایل‌هایی که این وظیفه به عنوان ورودی استفاده می‌کند
انتظار برای تکمیل این وظایف در صورتی که قرار است اجرا شوند
وابستگی‌هایی که پس از اجرای این وظیفه اجرا می‌شوند
توضیحات وظیفه
الگوهای سراسری (glob) فایل‌هایی که این وظیفه می‌سازد، برای صرف‌نظر کردن در صورت تغییر نیافتن آن‌ها
دستور برای اجرا در ویندوز
اجرای وظیفه در یک پوسته مشخص
عدم چاپ دستور یا خروجی آن
نمایش راهنما آرگومان‌ها:
<TASK>
نام وظیفه برای افزودن

نمایش ساختار درختی از گراف وابستگی‌ها

این گراف از روی وابستگی‌های اعلام‌شده ساخته می‌شود: `depends`، `depends_post` و `wait_for`. ارجاعات وظیفه درون آرایه `run` یا `run_windows` (`{ task = "..." }` یا `{ tasks = [...] }`) مراحل اجرایی هستند نه یال‌های گراف، بنابراین در اینجا نمایش داده نمی‌شوند. آن وظایف تودرتو همچنان اجرا می‌شوند، از جمله `depends`های خودشان.

نحوه استفاده: mise tasks deps [OPTIONS] [<TASKS>] ...

گزینه‌ها:

جمع‌کردن وابستگی‌های تکراری پس از اولین رخداد آن‌ها
نمایش وابستگی‌ها در قالب DOT
نمایش وظایف مخفی
نمایش راهنما آرگومان‌ها:
<TASKS>
وظایفی که وابستگی‌های آن‌ها نمایش داده می‌شود می‌توان چندین وظیفه را با جدا کردن توسط فاصله مشخص کرد مثال: mise tasks deps lint test check.SH "MISE TASKS EDIT" ویرایش یک تسک با $EDITOR

اگر تسک از قبل وجود نداشته باشد، به صورت یک اسکریپت مستقل ایجاد خواهد شد.

نحوه استفاده: mise tasks edit [OPTIONS] <TASK>

گزینه‌ها:

نمایش مسیر تسک به جای ویرایش آن
نمایش راهنما آرگومان‌ها:
<TASK>
تسک مورد نظر برای ویرایش

[آزمایشی] بررسی گراف پروژه‌های فضای کاری (workspace)

نحوه استفاده: mise tasks graph [OPTIONS]

گزینه‌ها:

خروجی گرفتن از گراف پروژه در قالب JSON
توضیح انتساب ارائه‌دهنده (provider) برای پروژه‌ها و تسک‌های استنتاج‌شده
عدم چاپ سرستون‌های جدول
نمایش راهنما

دریافت اطلاعات درباره یک تسک

نحوه استفاده: mise tasks info [OPTIONS] <TASK>

گزینه‌ها:

خروجی در قالب JSON
نمایش راهنما آرگومان‌ها:
<TASK>
نام تسک برای دریافت اطلاعات درباره آن

فهرست کردن تسک‌های در دسترس برای اجرا این تسک‌ها ممکن است از فایل پیکربندی یا از دایرکتوری .mise/tasks پروژه گنجانده شده باشند دستور mise تمام تسک‌ها را از تمامی دایرکتوری‌های والد در این فهرست ادغام می‌کند.

بنابراین اگر تسک‌های سراسری در `~/.config/mise/tasks/*` و تسک‌های اختصاصی پروژه در ~/myproject/.mise/tasks/* داشته باشید، هر دوی آن‌ها در دسترس خواهند بود؛ اما تسک‌های اختصاصی پروژه در صورت هم‌نام بودن بر تسک‌های سراسری اولویت داشته و جایگزین آن‌ها می‌شوند.

نحوه استفاده: mise tasks ls [OPTIONS]

گزینه‌ها:

فقط نمایش تسک‌های سراسری
خروجی در قالب JSON
فقط نمایش تسک‌های غیرسراسری
نمایش تمام ستون‌ها
بارگذاری تمام تسک‌ها از کل monorepo، از جمله دایرکتوری‌های هم‌سطح (sibling). به‌طور پیش‌فرض، تنها تسک‌های سلسله‌مراتب دایرکتوری فعلی بارگذاری می‌شوند.
نمایش تسک‌ها برای تکمیل خودکار (completion)
نمایش تسک‌های پنهان
فقط نمایش نام تسک‌ها، در هر سطر یک مورد. مناسب برای هدایت (pipe) خروجی به fzf و ابزارهای مشابه.
عدم چاپ سرستون جدول
مرتب‌سازی بر اساس ستون. پیش‌فرض name است.
ترتیب مرتب‌سازی. پیش‌فرض asc است.
نمایش راهنما.SH "MISE TASKS RUN" اجرای وظیفه(ها)

این دستور یک وظیفه، یا چندین وظیفه را به‌صورت موازی اجرا می‌کند. وظایف ممکن است به وظایف دیگر یا به فایل‌های منبع وابسته باشند. اگر منبع (source) برای یک وظیفه پیکربندی شده باشد، تنها زمانی اجرا خواهد شد که فایل‌های منبع تغییر کرده باشند.

وظایف می‌توانند در mise.toml یا به‌صورت اسکریپت‌های مستقل تعریف شوند. در mise.toml، وظایف به این شکل تعریف می‌شوند:


[tasks.build]
run = "npm run build"
sources = ["src/**/*.ts"]
outputs = ["dist/**/*.js"]

همچنین وظایف می‌توانند به‌صورت اسکریپت‌های مستقل تعریف شوند. این اسکریپت‌ها باید در `mise-tasks`، `.mise-tasks`، `.mise/tasks`، `mise/tasks` یا `.config/mise/tasks` قرار داشته باشند. نام اسکریپت، همان نام وظیفه خواهد بود.


$ cat .mise/tasks/build<<EOF
#!/usr/bin/env bash
npm run build
EOF
$ mise run build

نحوه استفاده: mise tasks run [OPTIONS]

گزینه‌ها:

اجرای وظایف منطبق، تنها برای پروژه‌های متأثر از تغییرات Git
نسخه پایه در Git برای --affected پیش‌فرض: MISE_AFFECTED_BASE، فراداده CI یا HEAD~1 است
توضیح دلیل انتخاب پروژه‌ها و وظایف توسط --affected
نسخه head در Git برای --affected پیش‌فرض: MISE_AFFECTED_HEAD، فراداده CI یا HEAD است
نمایش پروژه‌ها و وظایف متأثر در قالب JSON بدون اجرای وظایف
باز کردن انتخاب‌گر تعاملی همراه با تمام وظایف از کل monorepo
ادامه اجرای وظایف حتی در صورت شکست خوردن یکی از آن‌ها
تغییر به این دایرکتوری پیش از اجرای دستور
اجبار وظایف به اجرا حتی اگر خروجی‌ها به‌روز باشند
تعداد وظایف برای اجرا به‌صورت موازی مقادیر کمتر از ۱ برابر ۱ در نظر گرفته می‌شوند [پیش‌فرض: 4] قابل پیکربندی با تنظیمات `jobs` یا متغیر محیطی `MISE_JOBS`
محیط: MISE_JOBS
عدم اجرای واقعی وظیفه(ها)، فقط چاپ آن‌ها به ترتیب اجرا
تغییر نحوه نمایش خروجی اطلاعات وظایف هنگام اجرای آن‌ها

- `prefix` - چاپ خط به خط stdout/stderr، همراه با برچسب وظیفه به‌عنوان پیشوند - `interleave` - چاپ مستقیم در stdout/stderr به‌جای خط به خط - `replacing` - در هر بار stdout جایگزین می‌شود و stderr همان‌طور که هست چاپ می‌شود - `timed` - تنها خطوط stdout نمایش داده می‌شوند اگر بیش از ۱ ثانیه نمایش داده شوند - `keep-order` - چاپ خط به خط stdout/stderr همراه با برچسب وظیفه به‌عنوان پیشوند، ولی با حفظ ترتیب خروجی - `quiet` - عدم نمایش خروجی اضافی - `silent` - عدم نمایش هرگونه خروجی شامل stdout و stderr از وظیفه، به‌جز خطاها

محیط: MISE_TASK_OUTPUT
عدم نمایش خروجی اضافی
محیط: MISE_QUIET
خواندن/نوشتن مستقیم در stdin/stdout/stderr به‌جای خط به خط با این گزینه، حذف اطلاعات حساس (redactions) اعمال نمی‌شود قابل پیکربندی با تنظیمات `raw` یا متغیر محیطی `MISE_RAW`
پوسته مورد استفاده برای اجرای وظایف toml

پیش‌فرض در unix برابر `sh -c -o errexit -o pipefail` و در Windows برابر `cmd /c` است همچنین می‌تواند با تنظیم `MISE_UNIX_DEFAULT_INLINE_SHELL_ARGS` یا `MISE_WINDOWS_DEFAULT_INLINE_SHELL_ARGS` تعیین شود یا با ویژگی `shell` روی یک وظیفه بازنویسی شود.

عدم نمایش هرگونه خروجی به‌جز خطاها
محیط: MISE_SILENT
ابزار(ها)یی که باید علاوه بر آنچه در فایل‌های mise.toml است اجرا شوند؛ مانند: node@20 python@3.10
اجازه عبور به متغیر محیطی مشخص‌شده (به‌طور ضمنی باعث اعمال --deny-env برای بقیه می‌شود) از نویسه‌های عام (wildcard) پشتیبانی می‌کند، مانند: --allow-env='MYAPP_*'
اجازه دسترسی شبکه به میزبان مشخص‌شده (به‌طور ضمنی باعث اعمال --deny-net برای بقیه می‌شود)
اجازه خواندن از مسیر مشخص‌شده (به‌طور ضمنی باعث اعمال --deny-read برای بقیه می‌شود)
اجازه نوشتن در مسیر مشخص‌شده (به‌طور ضمنی باعث اعمال --deny-write برای بقیه می‌شود)
مسدودسازی خواندن‌ها، نوشتن‌ها، شبکه و متغیرهای محیطی
مسدودسازی به ارث بردن متغیرهای محیطی (تنها PATH، HOME، USER، SHELL، TERM و LANG عبور می‌کنند)
مسدودسازی تمامی دسترسی‌های شبکه
مسدودسازی خواندن از سامانه فایل (کتابخانه‌های سیستمی و دایرکتوری‌های ابزار همچنان در دسترس خواهند بود)
مسدودسازی تمامی نوشتن‌ها در سامانه فایل
دور زدن حافظه موقت (cache) محیط و محاسبه مجدد محیط
عدم استفاده از حافظه موقت (cache) در وظایف راه‌دور
محیط: MISE_TASK_REMOTE_NO_CACHE
صرف‌نظر کردن از آماده‌سازی خودکار وابستگی‌ها
پنهان کردن زمان سپری‌شده پس از تکمیل هر وظیفه

پیش‌فرض با `MISE_TASK_TIMINGS=0` همواره پنهان است

تنها اجرای وظایف مشخص‌شده با صرف‌نظر از تمامی وابستگی‌ها
محیط: MISE_TASK_SKIP_DEPENDS
صرف‌نظر از نصب ابزارها پیش از اجرای وظایف

همچنین می‌تواند به‌طور ماندگار با تنظیم `task.run_auto_install` یا متغیر محیطی `MISE_TASK_RUN_AUTO_INSTALL=false` تعیین شود

تنظیم دسترسی به حافظه موقت (cache) خروجی وظیفه برای این اجرا

- `read-write` - خواندن نتایج کش‌شده و نوشتن نتایج جدید - `read-only` - خواندن نتایج کش‌شده بدون نوشتن نتایج جدید - `write-only` - نوشتن نتایج جدید بدون خواندن نتایج کش‌شده - `off` - غیرفعال‌سازی کش کردن خروجی وظیفه - `local-only` - فقط خواندن و نوشتن در حافظه موقت محلی؛ در حال حاضر معادل `read-write` است

پیش‌فرض: read-write
محیط: MISE_TASK_CACHE --task-cache-explain توضیح ورودی‌هایی که کلید کَش (cache key) خروجی هر وظیفه را تولید کرده‌اند
خروجی دادن جزئیات ورودی کلید کَش به‌صورت JSON Lines بدون اجرای وظایف
گزارش موارد اصابت کَش (cache hits) خروجی وظیفه، بایت‌های بازیابی‌شده و زمان صرفه‌جویی‌شده
مهلت زمانی برای تکمیل وظیفه به‌عنوان مثال: 30s, 5m
نمایش زمان سپری‌شده پس از تکمیل هر وظیفه

به‌طور پیش‌فرض همیشه با `MISE_TASK_TIMINGS=1` نمایش داده می‌شود

اعتبارسنجی وظایف برای بررسی خطاها و مشکلات رایج

نحوه استفاده: mise tasks validate [OPTIONS] [<TASKS>] ...

گزینه‌ها:

فقط نمایش خطاها (صرف‌نظر از هشدارها)
خروجی نتایج اعتبارسنجی در قالب JSON
چاپ راهنما آرگومان‌ها:
<TASKS>
وظایف برای اعتبارسنجی در صورت عدم تعیین، تمام وظایف اعتبارسنجی می‌شوند

آزمایش این‌که یک ابزار نصب و اجرا می‌شود

نحوه استفاده: mise test-tool [OPTIONS] [<TOOLS>] ...

گزینه‌ها:

آزمایش تمام ابزارهای مشخص‌شده در registry/
تعداد آزمون‌های ابزار برای اجرا به‌صورت موازی مقادیر کمتر از ۱ به عنوان ۱ در نظر گرفته می‌شوند [پیش‌فرض: 4]
متغیر محیطی: MISE_TEST_TOOL_JOBS
آزمایش تمام ابزارهای مشخص‌شده در فایل‌های پیکربندی
همچنین آزمایش ابزارهایی که در registry/ تعریف نشده‌اند، با حدس زدن نحوه آزمایش آن‌ها
اتصال مستقیم stdin/stdout/stderr دستور نصب backend به ترمینال؛ مستلزم --jobs=1 است
چاپ راهنما آرگومان‌ها:
<TOOLS>
ابزار(ها) برای آزمایش

نمایش توکن‌های ارائه‌دهنده git که mise استفاده خواهد کرد

نحوه استفاده: mise token [OPTIONS] <COMMAND>

گزینه‌ها:

چاپ راهنما.SH "MISE TOKEN FORGEJO" نمایش توکن Forgejo که mise برای یک میزبان مشخص استفاده خواهد کرد

نشان می‌دهد که mise از کدام منبع توکن استفاده خواهد کرد؛ مفید برای عیب‌یابی مشکلات احراز هویت. توکن به‌طور پیش‌فرض ماسک شده است.

نحوه استفاده: mise token forgejo [OPTIONS] [<HOST>]

گزینه‌ها:

نمایش کامل توکن بدون ماسک
چاپ راهنما آرگومان‌ها:
<HOST>
نام میزبان Forgejo
پیش‌فرض: codeberg.org

نمایش توکن GitHub که mise برای یک میزبان مشخص استفاده خواهد کرد

نشان می‌دهد که mise از کدام منبع توکن استفاده خواهد کرد؛ مفید برای عیب‌یابی مشکلات احراز هویت. توکن به‌طور پیش‌فرض ماسک شده است.

نحوه استفاده: mise token github [OPTIONS] [<HOST>]

گزینه‌ها:

یافتن توکن فقط از طریق منبع بومی GitHub OAuth (حافظه نهان، refresh یا جریان device-code)، با دور زدن سایر منابع توکن
تنها چاپ مقدار توکن
تولید یک توکن OAuth تازه از طریق سازوکار اعطای refresh-token یا یک جریان device-code جدید، حتی اگر توکن موجود در حافظه نهان منقضی نشده باشد. پس از تغییر در نصب‌ها یا مجوزهای GitHub App استفاده شود: توکن‌های ذخیره‌شده در حافظه نهان تا زمان انقضا دسترسی اولیه خود را حفظ می‌کنند
نمایش کامل توکن بدون ماسک
چاپ راهنما آرگومان‌ها:
<HOST>
نام میزبان GitHub
پیش‌فرض: github.com

نمایش توکن GitLab که mise برای یک میزبان مشخص استفاده خواهد کرد

نشان می‌دهد که mise از کدام منبع توکن استفاده خواهد کرد؛ مفید برای عیب‌یابی مشکلات احراز هویت. توکن به‌طور پیش‌فرض ماسک شده است.

نحوه استفاده: mise token gitlab [OPTIONS] [<HOST>]

گزینه‌ها:

نمایش کامل توکن بدون ماسک
چاپ راهنما آرگومان‌ها:
<HOST>
نام میزبان GitLab
پیش‌فرض: gitlab.com دریافت اطلاعات درباره یک ابزار

نحوه استفاده: mise tool [OPTIONS] <TOOL>

گزینه‌ها:

خروجی در قالب JSON
فقط نمایش نسخه‌های فعال
فقط نمایش فیلد backend
فقط نمایش منبع پیکربندی
فقط نمایش فیلد توضیحات
فقط نمایش نسخه‌های نصب‌شده
فقط نمایش نسخه‌های درخواستی
فقط نمایش گزینه‌های ابزار
نمایش راهنما آرگومان‌ها:
<TOOL>
نام ابزار برای دریافت اطلاعات درباره آن

اجرای یک tool stub

فایل‌های tool stub، فایل‌های اجرایی حاوی پیکربندی TOML هستند که مشخص می‌کنند چه ابزاری و چگونه اجرا شود. آن‌ها روشی آسان برای ایجاد فایل‌های اجراییِ قابل‌حمل و مستقل فراهم می‌سازند که نصب و اجرای ابزار را به‌طور خودکار مدیریت می‌کنند.

یک tool stub شامل موارد زیر است:

- یک خط shebang: #!/usr/bin/env -S mise tool-stub - پیکربندی TOML مشخص‌کننده ابزار، نسخه و گزینه‌ها - توضیحات اختیاری برای شرح هدف ابزار

نمونه فایل stub:

```toml #!/usr/bin/env -S mise tool-stub # Node.js v20 development environment

tool = "node" version = "20.0.0" bin = "node" ```

در صورت عدم وجود نسخه مشخص‌شده از ابزار، استاب به‌طور خودکار آن را نصب کرده و همراه با هر آرگومان ارسالی به استاب اجرا می‌کند.

برای اطلاعات بیشتر، ببینید: https://mise.jdx.dev/dev-tools/tool-stubs.html

نحوه استفاده: mise tool-stub <FILE> [<ARGS>] ...

آرگومان‌ها:

<FILE>
مسیر فایل TOML استابِ ابزار جهت اجرا

فایل استاب باید حاوی پیکربندی TOML باشد که ابزار و نسخه را برای اجرا مشخص کند. در کمترین حالت، باید فیلد 'version' را مشخص کند. سایر فیلدهای رایج شامل 'tool'، 'bin' و گزینه‌های ویژه backend هستند.

<ARGS>
آرگومان‌هایی که باید به ابزار ارسال شوند

تمام آرگومان‌های پس از مسیر فایل استاب به ابزار زیربنایی هدایت خواهند شد. در صورت نیاز، از '--' برای جداسازی آرگومان‌های mise از آرگومان‌های ابزار استفاده کنید.

علامت‌گذاری یک فایل پیکربندی به عنوان مورد اعتماد

این بدان معناست که به mise اجازه داده می‌شود هنگام نیاز به خواندن پیکربندی‌ای که ممکن است کدی را اجرا کرده یا بر محیط اثر بگذارد، فایل را تجزیه کند. بدون اعتماد، mise ممکن است اعلان تایید نمایش دهد، پیکربندی را در برخی مسیرهای شناسایی نادیده بگیرد، یا در صورتی که امکان نمایش اعلان نباشد با خطای untrusted-config متوقف شود.

در حالت عادی (normal mode)، دستوراتی که رفتارهای تعریف‌شده توسط پروژه را اجرا می‌کنند (`mise run`، فراخوانی مستقیم وظایف مانند `mise <TASK>`، `mise install`، `mise exec` و `mise watch`) به‌طور خودکار به پیکربندی فعال خود اعتماد می‌کنند. حالت Paranoid نیازمند اعتماد صریح و وابسته به محتوا (content-bound) برای هر پیکربندی غیرعمومی (non-global) است.

در حالت عادی، فایل‌های پیکربندی امن نیازی به اعتماد ندارند: فایل‌هایی که فقط حاوی `min_version`، مدخل‌های `[tools]` با رشته‌های نگارش ساده (یا آرایه‌ای از آن‌ها) و `[tasks]` بدون الگوها یا گزینه‌های ابزار هستند.

اعتماد در سراسر git worktreeها به اشتراک گذاشته می‌شود: یک فایل پیکربندی درون یک worktree متصل، در صورتی مورد اعتماد است که مسیر معادل آن در checkout اصلی مخزن مورد اعتماد قرار گرفته باشد. حالت Paranoid این اشتراک‌گذاری را غیرفعال می‌کند؛ زیرا worktreeها می‌توانند شاخه‌هایی با محتویات پیکربندی متفاوت را checkout کنند.

نحوه استفاده: mise trust [OPTIONS] [<CONFIG_FILE>]

گزینه‌ها:

اعتماد به تمام فایل‌های پیکربندی در دایرکتوری فعلی، والدهای آن و زیردایرکتوری‌هایش

زیردایرکتوری‌ها با رعایت .gitignore پیمایش می‌شوند و از دایرکتوری‌های مخفی و دایرکتوری‌های معمول بیلد/وابستگی (node_modules، vendor، target، dist، build) صرف‌نظر می‌شود.

به این پیکربندی اعتماد نکن و در آینده آن را نادیده بگیر
نمایش وضعیت اعتماد فایل‌های پیکربندی از دایرکتوری فعلی و والدهای آن. هیچ فایلی را مورد اعتماد یا نامعتمد نمی‌کند.
حذف اعتماد صریح برای این پیکربندی
نمایش راهنما آرگومان‌ها:
<CONFIG_FILE>
فایل پیکربندی که وضعیت اعتماد آن باید تغییر کند.SH "MISE UNINSTALL" نسخه‌های نصب‌شده ابزار را حذف می‌کند

این دستور تنها نسخه نصب‌شده را حذف می‌کند و تغییری در mise.toml ایجاد نمی‌کند.

نحوه استفاده: mise uninstall [OPTIONS] [<INSTALLED_TOOL@VERSION>] ...

گزینه‌ها:

حذف تمام نسخه‌های نصب‌شده
در عمل چیزی را حذف نمی‌کند (اجرای آزمایشی)
مانند --dry-run عمل می‌کند، اما در صورت وجود ابزارهایی برای حذف، با کد ۱ خارج می‌شود

این گزینه برای اسکریپت‌ها جهت بررسی نیاز به حذف ابزارها مفید است.

نمایش راهنما آرگومان‌ها:
<INSTALLED_TOOL@VERSION>
ابزار(ها) برای حذف

حذف متغیر(های) محیطی از فایل پیکربندی.

به‌طور پیش‌فرض، این دستور `mise.toml` را در دایرکتوری جاری تغییر می‌دهد.

نحوه استفاده: mise unset [OPTIONS] [<ENV_KEY>] ...

گزینه‌ها:

مشخص کردن یک فایل برای استفاده به‌جای `mise.toml`

می‌تواند مسیر یک فایل یا دایرکتوری باشد. اگر دایرکتوری مشخص شود، mise.toml در آن دایرکتوری ایجاد یا استفاده خواهد شد.

پیش‌فرض متغیر محیطی [`MISE_DEFAULT_CONFIG_FILENAME`](https://mise.jdx.dev/configuration.html#mise_default_config_filename) یا `mise.toml` است. از [`MISE_GLOBAL_CONFIG_FILE`](https://mise.jdx.dev/configuration.html#mise_global_config_file) برای انتخاب یک مسیر پیکربندی سراسری متفاوت استفاده کنید.

استفاده از فایل پیکربندی سراسری (global)
نمایش راهنما آرگومان‌ها:
<ENV_KEY>
متغیر(های) محیطی برای حذف مانند: NODE_ENV

لغو اعتماد صریح برای یک فایل پیکربندی

نحوه استفاده: mise untrust [OPTIONS] [<CONFIG_FILE>]

گزینه‌ها:

نمایش راهنما آرگومان‌ها:
<CONFIG_FILE>
فایل پیکربندی مورد نظر برای لغو اعتماد

نسخه‌های ابزار نصب‌شده را از mise.toml حذف می‌کند

به‌طور پیش‌فرض، از فایل `mise.toml` که ابزار در آن تعریف شده است استفاده خواهد شد. اگر چندین فایل پیکربندی وجود داشته باشد (برای مثال، هم `mise.toml` و هم `mise.local.toml`)، فایلی با کمترین اولویت (`mise.toml`) استفاده خواهد شد. ببینید: https://mise.jdx.dev/configuration.html#target-file-for-write-operations

به ترتیب زیر:
- اگر `--global` تنظیم شده باشد، از فایل پیکربندی سراسری استفاده خواهد شد.
- اگر `--path` تنظیم شده باشد، از فایل پیکربندی در مسیر داده‌شده استفاده خواهد شد.
- اگر `--env` تنظیم شده باشد، از `mise.<env>.toml` استفاده خواهد شد.
- اگر [`MISE_DEFAULT_CONFIG_FILENAME`](https://mise.jdx.dev/configuration.html#mise_default_config_filename) تنظیم شده باشد، در عوض از آن استفاده خواهد شد.
- اگر `MISE_OVERRIDE_CONFIG_FILENAMES` تنظیم شده باشد، از نخستین مورد آن فهرست استفاده خواهد شد.
- در غیر این صورت صرفاً "mise.toml"، یا در صورت قرار داشتن cwd در دایرکتوری خانگی (home)، از پیکربندی سراسری استفاده می‌شود.

از [`MISE_GLOBAL_CONFIG_FILE`](https://mise.jdx.dev/configuration.html#mise_global_config_file) برای انتخاب یک مسیر پیکربندی سراسری متفاوت استفاده کنید.

همچنین در صورتی که هیچ پیکربندی دیگری از آن نسخه استفاده نکند، نسخه نصب‌شده را پاکسازی (prune) خواهد کرد.

نحوه استفاده: mise unuse [OPTIONS] <INSTALLED_TOOL@VERSION> ...

گزینه‌ها:

ایجاد یا ویرایش یک فایل پیکربندی وابسته به محیط مانند .mise.<env>.toml
استفاده از فایل پیکربندی سراسری (`~/.config/mise/config.toml`) به‌جای فایل محلی
تعیین مسیر یک فایل یا دایرکتوری پیکربندی

در صورت تعیین دایرکتوری، طبق قوانین بالا به‌دنبال یک فایل پیکربندی در آن دایرکتوری می‌گردد.

نسخه نصب‌شده را پاکسازی (prune) نکند
نمایش راهنما آرگومان‌ها:
<INSTALLED_TOOL@VERSION>
ابزار(ها) برای حذف.SH "MISE UPGRADE" ابزارهای قدیمی را ارتقا می‌دهد

به‌طور پیش‌فرض، این دستور بازهٔ تعیین‌شده در mise.toml را حفظ می‌کند. بنابراین اگر node@20 تنظیم شده باشد، آن را به آخرین نسخهٔ 20.x.x موجود ارتقا می‌دهد. برای استفاده از آخرین نسخه و ارتقای (bump) نسخه در mise.toml، پرچم `--bump` را ببینید.

در صورت فعال بودن، این دستور mise.lock را به‌روزرسانی می‌کند؛ ببینید: https://mise.jdx.dev/configuration/settings.html#lockfile

کاربرد: mise upgrade [OPTIONS] [<INSTALLED_TOOL@VERSION>] ...

گزینه‌ها:

ارتقا به آخرین نسخهٔ موجود و ارتقای نسخه در mise.toml

برای مثال، اگر `node = "20.0.0"` را در mise.toml خود داشته باشید اما 22.1.0 آخرین نسخهٔ موجود باشد، این گزینه 22.1.0 را نصب کرده و `node = "22.1.0"` را در پیکربندی شما قرار می‌دهد.

این گزینه همان دقت نسخه‌ای را که پیش‌تر وجود داشت حفظ می‌کند؛ بنابراین اگر در عوض `node = "20"` را داشتید، پیکربندی شما را به `node = "22"` تغییر می‌دهد.

نمایش منوی چندانتخابی برای برگزیدن ابزارهایی که باید ارتقا یابند
تعداد وظایفی که به‌طور موازی اجرا می‌شوند مقدارهای کمتر از ۱ به‌صورت ۱ در نظر گرفته می‌شوند [پیش‌فرض: 4]
متغیر محیطی: MISE_JOBS
شکل کوتاه‌شده و منسوخ‌شده برای --bump
تنها کارهایی را که انجام خواهد شد نمایش می‌دهد، اما در عمل کاری انجام نمی‌دهد
ابزار(هایی) که باید از ارتقا مستثنی شوند مثال: go python
مشابه --dry-run عمل می‌کند اما در صورت وجود ابزارهای قدیمی با کد ۱ خارج می‌شود

این گزینه برای اسکریپت‌ها جهت بررسی اینکه آیا ابزارها نیاز به ارتقا دارند یا خیر مفید است.

ارتقای تمام ابزارها، از جمله ابزارهای نصب‌شده اما غیرفعالی که در پیکربندی فعلی وجود ندارند
تنها ارتقای ابزارهایی که در فایل‌های پیکربندی محلی تعریف شده‌اند

این گزینه تنها ابزارهایی را ارتقا می‌دهد که در mise.toml محلیِ پروژه تعریف شده‌اند و از ابزارهای تعریف‌شده در پیکربندی سراسری (~/.config/mise/config.toml) صرف‌نظر می‌کند.

تنها ارتقا به نسخه‌هایی که پیش از این تاریخ منتشر شده‌اند یا از این مدت‌زمان قدیمی‌تر هستند

از تاریخ‌های مطلق مانند "2024-06-01" و مدت‌زمان‌های نسبی مانند "90d" یا "1y" پشتیبانی می‌کند. این گزینه می‌تواند برای اهداف بازتولیدپذیری یا امنیتی مفید باشد.

این ویژگی تنها بر تطابق‌های نسخه‌ای تقریبی مانند "20" یا "latest" اثر می‌گذارد. نسخه‌هایی که صراحتاً پین شده‌اند (مانند "22.5.0") فیلتر نمی‌شوند.

جای‌نگهدار برای ارتقاهای آینده در ساختارهای چندمخزنی (monorepo)؛ دستور `mise upgrade --monorepo` هنوز پیاده‌سازی نشده است.
نسخه‌های قبلی که از آن‌ها به نسخه‌های جدیدتر ارتقا یافته است را حذف نکن

نسخهٔ قدیمی در جای خود باقی می‌ماند و برای حذف زمان‌بندی نمی‌شود. هنگامی از این گزینه استفاده کنید که چیزی خارج از mise به دایرکتوری نصب اشاره داشته باشد.

برای تبدیل این حالت به پیش‌فرض، مقدار `upgrade.auto_prune = false` را تنظیم کنید.

نسخه‌های قبلی که از آن‌ها ارتقا داده شده است را فوراً حذف کن

از این گزینه برای نادیده گرفتن `upgrade.prune_after`، یا خنثی‌کردن موقت `upgrade.auto_prune = false` برای یک بار اجرا استفاده کنید.

اتصال مستقیم ورودی/خروجی/خطای استاندارد (stdin/stdout/stderr) فرمان نصب پس‌زمینه به ترمینال؛ مستلزم --jobs=1 است
چاپ راهنما آرگومان‌ها:
<INSTALLED_TOOL@VERSION>
ابزار(ها) برای ارتقا مثال: node@20 python@3.10 در صورت عدم تعیین، تمام ابزارهای فعلی ارتقا خواهند یافت.SH "MISE USE" یک ابزار را نصب کرده و نسخه آن را به mise.toml اضافه می‌کند.

در صورتی که نسخه ابزار از قبل نصب نشده باشد، آن را نصب خواهد کرد. به‌طور پیش‌فرض، از یک فایل `mise.toml` در دایرکتوری جاری استفاده خواهد شد. اگر چند فایل پیکربندی وجود داشته باشد (برای مثال، هم `mise.toml` و هم `mise.local.toml`)، فایلی با کمترین اولویت (`mise.toml`) استفاده خواهد شد. ببینید: https://mise.jdx.dev/configuration.html#target-file-for-write-operations

به ترتیب زیر:
- اگر `--global` تنظیم شده باشد، از فایل پیکربندی سراسری استفاده می‌کند.
- اگر `--path` تنظیم شده باشد، از فایل پیکربندی در مسیر داده‌شده استفاده می‌کند.
- اگر `--env` تنظیم شده باشد، از `mise.<env>.toml` استفاده می‌کند.
- اگر [`MISE_DEFAULT_CONFIG_FILENAME`](https://mise.jdx.dev/configuration.html#mise_default_config_filename) تنظیم شده باشد، در عوض از آن استفاده می‌کند.
- اگر `MISE_OVERRIDE_CONFIG_FILENAMES` تنظیم شده باشد، از اولین مورد آن فهرست استفاده خواهد کرد.
- در غیر این صورت، صرفاً "mise.toml" یا اگر cwd دایرکتوری خانگی باشد، پیکربندی سراسری.

برای انتخاب یک مسیر پیکربندی سراسری متفاوت از [`MISE_GLOBAL_CONFIG_FILE`](https://mise.jdx.dev/configuration.html#mise_global_config_file) استفاده کنید.

برای استفاده از فایل پیکربندی سراسری، از پرچم `--global` استفاده کنید.

نحوه استفاده: mise use [OPTIONS] [TOOL@VERSION]…

گزینه‌ها:

ایجاد یا اصلاح یک فایل پیکربندی مخصوص محیط مانند .mise.<env>.toml
اجبار به نصب مجدد حتی در صورت نصب بودن از قبل
استفاده از فایل پیکربندی سراسری (`~/.config/mise/config.toml`) به جای فایل محلی
تعداد کارهایی که به صورت موازی اجرا می‌شوند مقادیر کمتر از 1 به عنوان 1 در نظر گرفته می‌شوند [پیش‌فرض: 4]
محیط: MISE_JOBS
اجرای آزمایشی، نمایش مواردی که بدون اعمال تغییرات نصب یا اصلاح خواهند شد
مشخص کردن مسیر یک فایل پیکربندی یا دایرکتوری

اگر یک دایرکتوری مشخص شود، با پیروی از قوانین بالا به دنبال یک فایل پیکربندی در آن دایرکتوری خواهد گشت.

مانند --dry-run اما در صورت وجود تغییراتی برای اعمال، با کد خروج 1 خارج می‌شود

این گزینه برای اسکریپت‌ها جهت بررسی نیاز به افزودن یا حذف ابزارها مفید است.

ذخیره نسخه تقریبی (fuzzy) در فایل پیکربندی

برای مثال: `mise use --fuzzy node@20` مقدار 20 را به عنوان نسخه ذخیره خواهد کرد این رفتار پیش‌فرض است مگر اینکه `MISE_PIN=1` تنظیم شده باشد

تنها نصب نسخه‌هایی که پیش از این تاریخ منتشر شده‌اند یا از این مدت زمان قدیمی‌تر هستند

از تاریخ‌های مطلق مانند "2024-06-01" و مدت زمان‌های نسبی مانند "90d" یا "1y" پشتیبانی می‌کند.

ذخیره نسخه دقیق و مشخص‌شده در فایل پیکربندی

اگر درخواست دقیقاً با یکی از نسخه‌های منتشرشده مطابقت داشته باشد، آن نسخه بر تطابق‌های تقریبی نصب‌شده ترجیح داده می‌شود. از `prefix:` برای درخواست صریح تطابق پیشوندی بازگشتی استفاده کنید. برای مثال: `mise use --pin node@20` نسخه حل‌شده `20.x.y` را ذخیره خواهد کرد برای اینکه این مورد رفتار پیش‌فرض باشد، `MISE_PIN=1` را تنظیم کنید

استفاده از mise.lock را به عنوان جایگزینی بهتر برای پین کردن در mise.toml مد نظر قرار دهید: https://mise.jdx.dev/configuration/settings.html#lockfile

اتصال مستقیم stdin/stdout/stderr دستور نصب backend به ترمینال؛ مستلزم `--jobs=1` است
حذف ابزار(ها) از فایل پیکربندی
چاپ راهنما
دستوری که پس از نصب این ابزار اجرا می‌شود آرگومان‌ها:
<TOOL@VERSION>
ابزار برای افزودن به فایل پیکربندی

برای مثال: node@20, cargo:ripgrep@latest npm:prettier@3 اگر نسخه‌ای مشخص نشود، مقدار پیش‌فرض @latest خواهد بود

گزینه‌های ابزار را می‌توان با این ساختار دستوری تنظیم کرد:


mise use ubi:BurntSushi/ripgrep[exe=rg].SH "MISE VERSION" نمایش نسخه mise

نسخه، سیستم‌عامل، معماری و تاریخ ساخت (build) را نمایش می‌دهد.

اگر نسخه قدیمی باشد، یک هشدار نمایش داده می‌شود.

کاربرد: mise version [OPTIONS]

گزینه‌ها:

چاپ اطلاعات نسخه در قالب JSON
چاپ راهنما

اجرای تسک(ها) و پایش تغییرات جهت اجرای مجدد آن‌ها

این دستور از ابزار `watchexec` برای پایش تغییرات فایل‌ها و اجرای مجدد تسک(های) مشخص‌شده استفاده می‌کند. برای کارکرد این دستور، این ابزار باید نصب باشد، اما می‌توانید آن را با `mise use -g watchexec@latest` نصب کنید.

برای مدیریت پیشرفته‌تر فرآیندها (مدیریت دیمن، راه‌اندازی مجدد خودکار، بررسی‌های آماده‌به‌کاری، زمان‌بندی cron)، پروژه خواهر mise را ببینید: https://pitchfork.jdx.dev

کاربرد: mise watch [OPTIONS] [<TASK>] [<ARGS>] ...

گزینه‌ها:

تسک‌ها برای اجرا
فایل‌ها برای پایش به‌طور پیش‌فرض منابع حاصل از تسک(ها) در نظر گرفته می‌شود
اجرای تنها تسک‌های مشخص‌شده با صرف‌نظر از تمام وابستگی‌ها
پایش یک فایل یا دایرکتوری خاص

به‌طور پیش‌فرض، Watchexec دایرکتوری جاری را پایش می‌کند.

هنگام پایش یک تک‌فایل، اغلب بهتر است به جای آن دایرکتوری حاوی آن را پایش کرده و بر اساس نام فایل فیلتر بگذارید. برخی ویرایشگرها ممکن است هنگام ذخیره‌سازی، فایل را با یک فایل جدید جایگزین کنند و برخی پلتفرم‌ها ممکن است این موضوع یا تغییرات بعدی را تشخیص ندهند.

هنگام شروع، Watchexec یک «مبدأ پروژه» (project origin) را از مسیرهای تحت پایش استخراج می‌کند. برای اطلاعات بیشتر، راهنمای '--project-origin' را ببینید.

این گزینه را می‌توان چندین بار برای پایش چندین فایل یا دایرکتوری مشخص کرد.

مقدار ویژه '/dev/null'، اگر به عنوان تنها مسیر پایش ارائه شود، باعث می‌شود Watchexec هیچ مسیری را پایش نکند. سایر منابع رویداد (مانند سیگنال‌ها یا رویدادهای کلید) همچنان قابل استفاده خواهند بود.

پایش یک دایرکتوری خاص، به‌صورت غیربازگشتی

برخلاف '-w'، پوشه‌های پایش‌شده با این گزینه به‌صورت بازگشتی پیمایش نمی‌شوند.

این گزینه را می‌توان چندین بار برای پایش چندین دایرکتوری به‌صورت غیربازگشتی مشخص کرد.

پایش فایل‌ها و دایرکتوری‌ها بر اساس یک فایل

هر خط از فایل به‌گونه‌ای تفسیر می‌شود که گویی به '-w' داده شده است.

برای کاربردهای پیچیده‌تر (مانند پایش غیربازگشتی)، از قابلیت argfile استفاده کنید: فایلی حاوی گزینه‌های خط فرمان بسازید و آن را با `@path/to/argfile` به watchexec پاس دهید.

مقدار ویژه '-' ورودی را از STDIN می‌خواند؛ این مقدار با '--stdin-quit' ناسازگار است.

پاک کردن صفحه پیش از اجرای دستور

اگر این گزینه صفحه را به‌طور کامل پاک نکرد، '--clear=reset' را امتحان کنید.

اقدام لازم هنگام دریافت رویدادها در حین اجرای دستور

حالت پیش‌فرض 'do-nothing' است که رویدادها را در حین اجرای دستور نادیده می‌گیرد تا تغییراتی که به واسطه اجرای دستور رخ می‌دهند (مانند خروجی‌های کامپایل) نادیده گرفته شوند. همچنین می‌توانید از 'queue' استفاده کنید که در صورت وقوع رویداد در حین اجرا، پس از اتمام اجرای فعلی، دستور را دوباره اجرا می‌کند، یا 'restart' که دستور در حال اجرا را خاتمه داده و دستور جدیدی را آغاز می‌کند. در نهایت، حالت 'signal' وجود دارد که تنها یک سیگنال ارسال می‌کند؛ این حالت برای برنامه‌هایی که می‌توانند پیکربندی خود را بدون شروع مجدد کامل بارگذاری کنند، مفید است.

سیگنال را می‌توان با گزینه '--signal' مشخص کرد.

پیش‌فرض: do-nothing
شروع مجدد فرآیند در صورتی که همچنان در حال اجرا باشد

این گزینه یک میان‌بر برای '--on-busy-update=restart' است.

ارسال یک سیگنال به فرآیند زمانی که همچنان در حال اجرا است

سیگنالی را برای ارسال به فرآیند در زمانی که هنوز در حال اجراست مشخص کنید. این گزینه مستلزم '--on-busy-update=signal' است؛ در غیر این صورت، سیگنال مورد استفاده در زمانی که آن حالت 'restart' باشد توسط '--stop-signal' کنترل می‌شود.

برای نحو به مستندات تفصیلی '--stop-signal' مراجعه کنید.

سیگنال‌ها در حال حاضر در Windows پشتیبانی نمی‌شوند و همیشه به 'kill' جایگزین خواهند شد. برای اطلاعات بیشتر در مورد "سیگنال‌های" ویندوز به '--stop-signal' مراجعه کنید.

سیگنال ارسالی برای متوقف کردن دستور

این مورد توسط حالت‌های 'restart' و 'signal' از '--on-busy-update' استفاده می‌شود (مگر اینکه '--signal' مشخص شده باشد). رفتار restart ارسال سیگنال، منتظر ماندن برای خروج دستور، و اگر پس از گذشت مدتی (به '--timeout-stop' مراجعه کنید) خارج نشد، خاتمه دادن اجباری آن است.

پیش‌فرض در یونیکس "SIGTERM" است.

ورودی به عنوان نام کامل سیگنال (مانند "SIGTERM")، نام کوتاه سیگنال (مانند "TERM") یا شماره سیگنال (مانند "15") تجزیه می‌شود. تمامی ورودی‌ها نسبت به کوچکی و بزرگی حروف حساس نیستند.

در Windows این گزینه از نظر فنی پشتیبانی می‌شود اما فقط از رویداد "KILL" پشتیبانی می‌کند، زیرا Watchexec هنوز نمی‌تواند رویدادهای دیگر را تحویل دهد. ویندوز به خودی خود سیگنال ندارد؛ در عوض دارای سازوکار خاتمه (که در اینجا "KILL" یا "STOP" نامیده می‌شود) و رویدادهای "CTRL+C"، "CTRL+BREAK" و "CTRL+CLOSE" است. جهت سازگاری، سیگنال‌های یونیکس "SIGKILL"، "SIGINT"، "SIGTERM" و "SIGHUP" به ترتیب به این موارد نگاشت می‌شوند.

مدت‌زمان انتظار برای خروج مسالمت‌آمیز دستور

این مورد توسط حالت 'restart' از '--on-busy-update' استفاده می‌شود. پس از ارسال سیگنال توقف مسالمت‌آمیز، Watchexec منتظر خروج دستور می‌ماند. اگر پس از این زمان خارج نشود، با اجبار خاتمه می‌یابد.

مقداری بدون واحد بر حسب ثانیه، یا یک بازه زمانی مانند "5min 20s" می‌گیرد. ارائه مقدار بدون واحد منسوخ شده و اخطار خواهد داد؛ در آینده این عمل منجر به خطا خواهد شد.

پیش‌فرض ۱۰ ثانیه است. برای کشتن اجباری و فوری دستور، آن را روی 0 تنظیم کنید.

این گزینه تأثیر عملی در Windows ندارد زیرا دستور همیشه با اجبار خاتمه می‌یابد؛ برای دلیل آن به '--stop-signal' مراجعه کنید.

پیش‌فرض: 10s
ترجمه سیگنال‌ها از سیستم‌عامل به سیگنال‌های ارسالی به دستور

یک جفت نام سیگنال را که با دونقطه جدا شده‌اند، دریافت می‌کند، مانند "TERM:INT" برای نگاشت SIGTERM به SIGINT. سیگنال اول سیگنالی است که توسط watchexec دریافت می‌شود و سیگنال دوم سیگنالی است که به دستور ارسال می‌شود. سیگنال دوم را می‌توان برای نادیده گرفتن سیگنال اول حذف کرد، مانند "TERM:" برای انجام ندادن هیچ کاری در هنگام دریافت SIGTERM.

اگر SIGINT یا SIGTERM نگاشت شوند، دیگر باعث خروج از Watchexec نمی‌شوند. جدا از دشوار ساختن خروج از خود Watchexec، این ویژگی برای انتقال یک Ctrl-C به دستور بدون متوقف کردن هم‌زمان Watchexec و برنامه زیرین آن مفید است، برای مثال با "INT:INT".

این گزینه را می‌توان چندین بار برای نگاشت چندین سیگنال مشخص کرد.

نحو سیگنال برای نام‌های کوتاه (مانند "TERM" و "USR2") و نام‌های کامل (مانند "SIGKILL" و "SIGHUP") به کوچکی و بزرگی حروف حساس نیست. شماره‌های سیگنال نیز پشتیبانی می‌شوند (مانند "15" و "31"). در Windows، حالت‌های "STOP"، "CTRL+C" و "CTRL+BREAK" نیز برای دریافت پشتیبانی می‌شوند، اما Watchexec هنوز نمی‌تواند سیگنال‌هایی غیر از STOP را تحویل دهد.

زمان انتظار برای رویدادهای جدید پیش از اقدام

هنگامی که رویدادی دریافت می‌شود، Watchexec حداکثر تا این مدت زمان پیش از رسیدگی به آن (مانند اجرای دستور) منتظر می‌ماند. این کار ضروری است زیرا آنچه ممکن است به عنوان یک تغییر واحد در نظر بگیرید ممکن است در عمل رویدادهای زیادی منتشر کند، و بدون این رفتار، Watchexec بیش از حد اجرا خواهد شد. علاوه بر این، غیرمعمول نیست که نوشتن در فایل‌ها اتمیک نباشد و هر عمل نوشتن ممکن است رویدادی ارسال کند، بنابراین این روش مناسبی برای جلوگیری از اجرای دستور در حین نوشتن ناقص فایل است.

کاربرد دیگر این است که مقدار بالایی تنظیم کنید (مانند "30min" یا طولانی‌تر)، تا در مصرف انرژی یا پهنای باند برای تسک‌های سنگین، مانند یک اسکریپت پشتیبان‌گیری موردی، صرفه‌جویی شود. در این موارد کاربرد، توجه داشته باشید که تمام رویدادهای انباشته‌شده در حافظه جمع می‌شوند.

مقداری بدون واحد بر حسب میلی‌ثانیه یا یک مقدار بازه زمانی مانند "5sec 20ms" می‌گیرد. ارائه مقدار بدون واحد منسوخ شده و هشدار می‌دهد؛ در آینده این عمل خطا محسوب خواهد شد.

پیش‌فرض ۵۰ میلی‌ثانیه است. تنظیم روی 0 به شدت نهی می‌شود.

پیش‌فرض: 50ms
خروج هنگام بسته شدن stdin

این گزینه توصیف‌گر فایل stdin را برای EOF پایش می‌کند و هنگام بسته شدن آن، با متانت از Watchexec خارج می‌شود. این قابلیت توسط برخی از مدیران فرآیند برای جلوگیری از باقی ماندن فرآیندهای زامبی استفاده می‌شود.

بارگذاری نکردن فایل‌های gitignore

همچنین سایر فایل‌های نادیده‌گیری VCS، مانند Mercurial، Subversion، Bazaar، DARCS و Fossil. توجه داشته باشید که Watchexec تشخیص می‌دهد کدام یک از این موارد در حال استفاده است (در صورت وجود) و تنها فایل‌های مرتبط را بارگذاری می‌کند. هر دو نوع فایل‌های سراسری (مانند '~/.gitignore') و محلی (مانند '.gitignore') در نظر گرفته می‌شوند.

این گزینه زمانی مفید است که می‌خواهید فایل‌هایی را پایش کنید که توسط Git نادیده گرفته شده‌اند.

بارگذاری نکردن موارد نادیده‌گیری محلی پروژه

این گزینه بارگذاری فایل‌های ignore محلی پروژه، مانند '.gitignore' یا '.ignore' در پروژه تحت پایش را غیرفعال می‌کند. این ویژگی با '--no-vcs-ignore' که بارگذاری فایل‌های نادیده‌گیری Git و سایر سامانه کنترل نسخه (VCS) را غیرفعال می‌سازد، و با '--no-global-ignore' که بارگذاری فایل‌های نادیده‌گیری سراسری یا کاربری مانند '~/.gitignore' یا '~/.config/watchexec/ignore' را غیرفعال می‌کند، متفاوت است.

فایل‌های ignore پروژه پشتیبانی‌شده:


- Git: .gitignore در ریشه پروژه و دایرکتوری‌های فرزند، .git/info/exclude، و فایلی که `core.excludesFile` در .git/config به آن اشاره می‌کند.
- Mercurial: .hgignore در ریشه پروژه و دایرکتوری‌های فرزند.
- Bazaar: .bzrignore در ریشه پروژه.
- Darcs: _darcs/prefs/boring
- Fossil: .fossil-settings/ignore-glob
- Ripgrep/Watchexec/generic: .ignore در ریشه پروژه و دایرکتوری‌های فرزند.

فایل‌های نادیده‌گیری VCS (شامل Git، Mercurial، Bazaar، Darcs و Fossil) تنها در صورتی استفاده می‌شوند که مشخص شود VCS مربوطه برای پروژه/مبدأ استفاده شده است. برای مثال، یک .bzrignore در یک مخزن Git کنار گذاشته خواهد شد..TP --no-global-ignore عدم بارگذاری نادیده‌گرفته‌های سراسری

این گزینه بارگذاری فایل‌های نادیده‌گیری (ignore) سراسری یا کاربری مانند '~/.gitignore'، '~/.config/watchexec/ignore' یا '%APPDATA%\Bazaar\2.0\ignore' را غیرفعال می‌کند. مقایسه کنید با '--no-vcs-ignore' و '--no-project-ignore'.

فایل‌های نادیده‌گیری سراسری پشتیبانی‌شده:


- Git (در صورت تنظیم core.excludesFile): فایل در آن مسیر
- Git (در غیر این صورت): نخستین مورد یافت‌شده از $XDG_CONFIG_HOME/git/ignore، %APPDATA%/.gitignore، %USERPROFILE%/.gitignore، $HOME/.config/git/ignore، $HOME/.gitignore.
- Bazaar: نخستین مورد یافت‌شده از %APPDATA%/Bazaar/2.0/ignore، $HOME/.bazaar/ignore.
- Watchexec: نخستین مورد یافت‌شده از $XDG_CONFIG_HOME/watchexec/ignore، %APPDATA%/watchexec/ignore، %USERPROFILE%/.watchexec/ignore، $HOME/.watchexec/ignore.

همانند فایل‌های پروژه، فایل‌های سراسری Git و Bazaar تنها برای VCS متناظر که در پروژه استفاده شده به کار خواهند رفت.

عدم استفاده از نادیده‌گرفته‌های پیش‌فرض داخلی

ابزار Watchexec مجموعه‌ای از الگوهای نادیده‌گیری پیش‌فرض دارد، مانند فایل‌های swap ویرایشگر، `*.pyc`، `*.pyo`، `.DS_Store`، `.bzr`، `_darcs`، `.fossil-settings`، `.git`، `.hg`، `.pijul`، `.svn` و فایل‌های گزارش (log) ابزار Watchexec.

عدم پویش و شناسایی فایل‌های نادیده‌گیری

این گزینه کوته‌نوشتی برای '--no-global-ignore'، '--no-vcs-ignore' و '--no-project-ignore' است، اما حتی کارآمدتر است زیرا از همان ابتدا تمام سازوکارهای کشف نادیده‌گیری را نادیده می‌گیرد.

توجه داشته باشید که نادیده‌گرفته‌های پیش‌فرض همچنان بارگذاری می‌شوند؛ به '--no-default-ignore' مراجعه کنید.

هیچ چیز نادیده گرفته نشود

این گزینه کوته‌نوشتی برای '--no-discover-ignore' و '--no-default-ignore' است.

توجه داشته باشید که نادیده‌گرفته‌هایی که صراحتاً از طریق سایر گزینه‌های خط فرمان بارگذاری شده‌اند، مانند '--ignore' یا '--ignore-file'، همچنان استفاده خواهند شد.

انتظار تا نخستین تغییر پیش از اجرای دستور

به طور پیش‌فرض، Watchexec دستور را یک بار بلافاصله اجرا می‌کند. با این گزینه، به جای آن، پیش از اجرای عادی دستور تا زمان تشخیص یک رویداد منتظر می‌ماند.

درنگ پیش از اجرای دستور

این گزینه باعث می‌شود Watchexec پس از تشخیص یک رویداد، پیش از اجرای دستور به مدت‌زمان مشخص‌شده به خواب (sleep) برود. این کار شبیه به استفاده از "sleep 5 && command" در یک شل است، اما سازگارتر و کمی کارآمدتر می‌باشد.

مقداری بدون یکا بر حسب ثانیه، یا مقداری در قالب بازه زمانی مانند "2min 5s" را می‌پذیرد. ارائه مقدار بدون یکا منسوخ شده است و هشدار در پی خواهد داشت؛ در آینده این عمل منجر به خطا خواهد شد.

سرکشی دوره‌ای (poll) برای تغییرات سیستم‌فایل

به طور پیش‌فرض و در صورت در دسترس بودن، Watchexec از قابلیت‌های بومی سیستم‌عامل برای پایش سیستم‌فایل استفاده می‌کند. این گزینه آن قابلیت را غیرفعال کرده و به جای آن از سازوکار سرکشی (polling) استفاده می‌کند که کارایی کمتری دارد، اما می‌تواند مشکلات ناشی از برخی سیستم‌های فایل (مانند اشتراک‌های شبکه) یا موارد خاص را برطرف کند.

به صورت اختیاری مقداری بدون یکا بر حسب میلی‌ثانیه یا مقداری در قالب بازه زمانی مانند "2s 500ms" را به عنوان بازه زمانی سرکشی دریافت می‌کند. در صورت عدم تعیین، مقدار پیش‌فرض ۳۰ ثانیه است. ارائه مقدار بدون یکا منسوخ شده و هشدار در پی دارد؛ در آینده این کار منجر به خطا خواهد شد.

با نام مستعار '--force-poll'.

استفاده از یک شل متفاوت

به طور پیش‌فرض، Watchexec در صورت تعریف بودن از '$SHELL' یا مقدار پیش‌فرض 'sh' در سیستم‌های شبه‌یونیکس استفاده می‌کند؛ و در ویندوز بسته به اینکه Watchexec چه شلی را به عنوان شل در حال اجرا تشخیص دهد، از 'pwsh'، 'powershell' یا 'cmd' (CMD.EXE) استفاده خواهد کرد.

با این گزینه می‌توانید آن را لغو کرده و از شل متفاوتی استفاده کنید؛ برای مثال شلی با قابلیت‌های بیشتر یا شلی که نام‌های مستعار (aliasها) و توابع سفارشی شما را دارد.

اگر مقدار دارای فاصله باشد، به عنوان یک خط فرمان تجزیه شده و کلمه اول به عنوان برنامه شل و باقی کلمات به عنوان آرگومان‌های ارسالی به شل استفاده می‌شوند.

دستور با پرچم '-c' اجرا می‌شود (به جز 'cmd' در ویندوز که در آن از '/C' استفاده می‌شود).

مقدار ویژه 'none' می‌تواند برای غیرفعال کردن کامل استفاده از شل به کار رود. در این حالت، دستور ارائه‌شده به Watchexec تجزیه شده که در آن کلمه اول فایل اجرایی و مابقی آرگومان‌ها خواهند بود، و مستقیماً اجرا می‌شود. توجه داشته باشید که این تجزیه ابتدایی است و ممکن است در همه موارد آن‌طور که انتظار می‌رود عمل نکند.

استفاده از 'none' کمی کارآمدتر است و امکان تفسیر دقیق‌تر ورودی را فراهم می‌سازد، اما همچنین به این معنی است که نمی‌توانید از قابلیت‌های شل مانند انطباق الگو (globbing)، تغییر مسیر (redirection)، کنترل جریان (control flow)، منطق یا لوله‌ها (pipes) بهره ببرید.

مثال‌ها:

استفاده بدون شل:


$ watchexec -n -- zsh -x -o shwordsplit scr

استفاده با powershell core:


$ watchexec --shell=pwsh -- Test-Connection localhost

استفاده با CMD.exe:


$ watchexec --shell=cmd -- dir

استفاده با یک شل یونیکس متفاوت:


$ watchexec --shell=bash -- 'echo $BASH_VERSION'

استفاده با یک شل یونیکس به همراه گزینه‌ها:


$ watchexec --shell='zsh -x -o shwordsplit' -- scr

کوته‌نوشتی برای '--shell=none'
پیکربندی ارسال رویدادها

ابزار Watchexec هنگام اجرای یک دستور می‌تواند اطلاعات رویداد را ارسال کند که توسط فرایند فرزند برای هدف قرار دادن فایل‌های تغییریافتهٔ خاص قابل استفاده است.

نکته‌ای که باید به آن توجه داشت این است که نباید رفتاری تصادفی را رفتاری ذاتی و قطعی فرض کرد. به‌ویژه ممکن است به نظر برسد متغیر `RENAMED` هم مسیر اصلی و هم مسیر جدید تغییر‌نام‌یافته را در خود دارد. در نسخه‌های پیشین، حتی در برخی پلتفرم‌ها این‌طور به نظر می‌رسید که مسیر اصلی همیشه پیش از مسیر جدید می‌آید. با این وجود، هیچ‌یک از این‌ها حقیقت نداشت. تشخیص قابل اطمینان و سازگار با پلتفرم‌های مختلف در مورد اینکه کدام مسیر تغییریافته قدیمی و کدام جدید است غیرممکن است؛ تغییر نام‌های «ناقص» ممکن است رخ دهند (فقط اصلی، فقط جدید)، تغییر نام‌های «ناشناخته» ممکن است ظاهر شوند (تغییر از نوع تغییر نام بوده، اما اینکه قدیمی بوده یا جدید مشخص نیست)، رویدادهای تغییر نام ممکن است در دو مرز حذف لرزش (debouncing) تفکیک شوند، و مواردی از این دست.

این گزینه مشخص می‌کند که این اطلاعات به کجا ارسال شود. مقدار پیش‌فرض آن 'none' است که هیچ اطلاعات رویدادی ارسال نمی‌کند. سایر گزینه‌ها عبارتند از 'environment' (منسوخ‌شده)، 'stdio'، 'file'، 'json-stdio' و 'json-file'.

حالت‌های 'stdio' و 'file' متنی هستند: حالت 'stdio' مسیرهای مطلق را در stdin دستور می‌نویسد (یک مسیر در هر خط)، که به هر یک پیشوند `create:`، `remove:`، `rename:`، `modify:` یا `other:` اضافه شده است، و سپس دستگیره (handle) را می‌بندد؛ حالت 'file' همین موارد را درون یک فایل موقت می‌نویسد و مسیر آن از طریق متغیر محیطی $WATCHEXEC_EVENTS_FILE ارائه می‌شود.

همچنین دو حالت JSON وجود دارد که مبتنی بر اشیاء JSON بوده و می‌توانند مجموعه کاملی از رویدادهایی را که Watchexec مدیریت می‌کند نمایش دهند. در اینجا نمونه‌ای از ایجاد یک پوشه در لینوکس آورده شده است:

```json
{
"tags": [
{
"kind": "path",
"absolute": "/home/user/your/new-folder",
"filetype": "dir"
},
{
"kind": "fs",
"simple": "create",
"full": "Create(Folder)"
},
{
"kind": "source",
"source": "filesystem",
}
],
"metadata": {
"notify-backend": "inotify"
}
} ```

فیلدها به شرح زیر هستند:


- `tags`، داده‌های ساختاریافته رویداد.
- `tags[].kind`، که می‌تواند یکی از موارد زیر باشد:
* 'path'، به همراه:
+ `absolute`، یک مسیر مطلق.
+ `filetype`، نوع فایل در صورت مشخص بودن ('dir'، 'file'، 'symlink'، 'other').
* 'fs':
+ `simple`، نوع رویداد «ساده» ('access'، 'create'، 'modify'، 'remove' یا 'other').
+ `full`، نوع رویداد «کامل» که توصیف جامع آن در اینجا بسیار پیچیده است، اما ساختاری شبیه به 'General(Precise(Specific))' دارد.
* 'source'، به همراه:
+ `source`، منبع رویداد ('filesystem'، 'keyboard'، 'mouse'، 'os'، 'time'، 'internal').
* 'keyboard'، به همراه:
+ `keycode`. در حال حاضر تنها مقدار 'eof' پشتیبانی می‌شود.
* 'process'، برای رویدادهای ایجادشده توسط فرایندها:
+ `pid`، شناسه فرایند (PID).
* 'signal'، برای سیگنال‌های ارسال‌شده به Watchexec:
+ `signal`، نام استاندارد سیگنال ('hangup'، 'interrupt'، 'quit'، 'terminate'، 'user1'، 'user2').
* 'completion'، برای زمان پایان یک دستور:
+ `disposition`، وضعیت خاتمه ('success'، 'error'، 'signal'، 'stop'، 'exception'، 'continued').
+ `code`، کد خروج، سیگنال، توقف یا استثنا.
- `metadata`، اطلاعات تکمیلی در مورد رویداد.

حالت 'json-stdio' رویدادهای JSON را در ورودی استاندارد (stdin) دستور می‌نویسد (یک رویداد در هر خط) و سپس stdin را می‌بندد. حالت 'json-file' یک فایل موقت ایجاد می‌کند، رویدادها را در آن می‌نویسد و مسیر فایل را با متغیر محیطی $WATCHEXEC_EVENTS_FILE ارائه می‌دهد.

در نهایت، حالت 'environment' تا نگارش 2.0 پیش‌فرض بود. این حالت متغیرهای محیطی را برای رویدادهای سیستم‌فایل، با مسیرهای فایل‌های متأثر مقداردهی می‌کند:

متغیر $WATCHEXEC_COMMON_PATH با طولانی‌ترین مسیر مشترک تمام متغیرهای زیر مقداردهی می‌شود، و بنابراین برای به دست آوردن مسیر کامل/واقعی باید به ابتدای هر مسیر الحاق شود. سپس:


- $WATCHEXEC_CREATED_PATH هنگام ایجاد فایل‌ها/پوشه‌ها تنظیم می‌شود
- $WATCHEXEC_REMOVED_PATH هنگام حذف فایل‌ها/پوشه‌ها تنظیم می‌شود
- $WATCHEXEC_RENAMED_PATH هنگام تغییر نام فایل‌ها/پوشه‌ها تنظیم می‌شود
- $WATCHEXEC_WRITTEN_PATH هنگام ویرایش فایل‌ها/پوشه‌ها تنظیم می‌شود
- $WATCHEXEC_META_CHANGED_PATH هنگام تغییر متاداده فایل‌ها/پوشه‌ها تنظیم می‌شود
- $WATCHEXEC_OTHERWISE_CHANGED_PATH برای هر نوع رویداد مسیردار دیگر تنظیم می‌شود

مسیرهای چندگانه با نویسه جداکننده مسیر سیستم جدا می‌شوند؛ ';' در ویندوز و ':' در یونیکس. در هر متغیر، مسیرها یکتا شده (حذف موارد تکراری) و به ترتیب باینری مرتب می‌شوند (یعنی بدون توجه به یونیکد یا محلی‌سازی/locale).

این یک حالت موروثی (legacy) است، منسوخ شده و در آینده حذف خواهد شد. محیط (environment) فضایی بسیار محدود است و در آنچه می‌تواند به طور مفید نمایش دهد نیز محدودیت دارد. تعداد بالای فایل‌ها یا باعث بریده شدن متغیرهای محیطی می‌شود یا ممکن است منجر به خطا یا توقف غیرمنتظره (crash) کامل فرایند گردد. همچنین متغیر $WATCHEXEC_COMMON_PATH گیج‌کننده و غیربدیهی است، همان‌طور که پرسش‌های سردرگم بی‌شماری که طی سال‌ها به صندوق ورودی من ارسال شده این را نشان می‌دهد.

پیش‌فرض: none --only-emit-events تنها رویدادها را به stdout ارسال می‌کند، هیچ دستوری را اجرا نمی‌کند.

این یک گزینهٔ کارآمد برای استفاده از Watchexec به‌عنوان یک پایشگر فایل، بدون اجرای هیچ دستوری است. این گزینه تقریباً معادل استفاده از دستور `cat` است، با این تفاوت که برای هر رویداد یک فرایند جدید ایجاد نمی‌کند.

این گزینه نیازمند تنظیم بودن `--emit-events-to` است و حالت‌های دردسترس را به `stdio` و `json-stdio` محدود می‌کند، و رفتار آن‌ها را به نوشتن در stdout به‌جای stdin دستور تغییر می‌دهد.

افزودن متغیرهای محیطی به دستور

این یک گزینهٔ کارآمد برای تنظیم متغیرهای محیطی برای دستور، بدون تنظیم آن‌ها برای خود فرایند Watchexec است.

از نحو key=value استفاده کنید. متغیرهای متعدد را می‌توان با تکرار این گزینه تنظیم کرد.

پیکربندی نحوهٔ دربرگیری (wrap) فرایند

به‌طور پیش‌فرض، Watchexec دستور را در macOS درون یک نشست (session)، در سایر پلتفرم‌های Unix درون یک گروه فرایندی (process group) و در Windows در یک Job Object اجرا می‌کند.

برخی از برنامه‌های Unix ترجیح می‌دهند در یک نشست اجرا شوند، در حالی که برخی دیگر در یک گروه فرایندی کار نمی‌کنند.

از 'group' برای استفاده از یک گروه فرایندی، 'session' برای استفاده از یک نشست فرایندی، و 'none' برای اجرای مستقیم دستور استفاده کنید. در Windows، هر یک از 'group' یا 'session' از یک Job Object استفاده خواهد کرد.

هشدار هنگام آغاز و پایان دستورها

با این گزینه، Watchexec هنگام آغاز و پایان یک دستور، روی پلتفرم‌های پشتیبانی‌شده یک اعلان دسکتاپ ارسال می‌کند. در پلتفرم‌های پشتیبانی‌نشده، ممکن است بدون هیچ پیامی کاری انجام ندهد یا یک هشدار ثبت کند.

زمان استفاده از رنگ‌های پایانه

تنظیم متغیر محیطی `NO_COLOR` به هر مقداری معادل `--color=never` است.

پیش‌فرض: auto
چاپ مدت زمان اجرای دستور

این مقدار ممکن است کاملاً دقیق نباشد، زیرا شامل مقداری سربار از جانب خود Watchexec است. برای نتایج دقیق‌تر از ابزار `time`، زمان‌سنج‌های با دقت بالا یا ابزارهای محک‌زنی (benchmarking) استفاده کنید.

عدم چاپ پیام‌های آغاز و توقف

به‌طور پیش‌فرض Watchexec هنگام آغاز و توقف دستور پیامی را چاپ می‌کند. این گزینه این رفتار را غیرفعال می‌کند، بنابراین تنها خروجی، هشدارها و خطاهای خود دستور چاپ خواهند شد.

به صدا درآوردن زنگ پایانه پس از تکمیل دستور
تنظیم مبدأ پروژه (project origin)

برنامهٔ Watchexec تلاش خواهد کرد «مبدأ» (یا «ریشهٔ») پروژه را با جستجوی نشانه‌های گوناگون مانند فایل‌ها یا الگوهای دایرکتوری پیدا کند. تمام تلاشش را می‌کند اما گاهی اشتباه تشخیص می‌دهد، و شما می‌توانید با این گزینه آن را لغو و بازنویسی کنید.

مبدأ پروژه برای تعیین مسیر برخی فایل‌های نادیده‌گیری (ignore files)، اینکه کدام VCS در حال استفاده است، مفهوم '/' ابتدایی در الگوهای فیلتر کردن، و احتمالاً موارد بیشتر در آینده استفاده می‌شود.

هنگام تنظیم شدن، Watchexec دیگر وقتی صرف جستجو نخواهد کرد، که می‌تواند به‌طور چشمگیری سریع‌تر باشد.

تنظیم دایرکتوری کاری

به‌طور پیش‌فرض، دایرکتوری کاری دستور همان دایرکتوری کاری Watchexec است. می‌توانید با این گزینه آن را تغییر دهید. توجه داشته باشید که استفاده از مسیرها با این گزینه ممکن است کمتر شهودی باشد.

پسوندهای نام فایل برای فیلتر کردن

این یک فیلتر سریع برای ارسال رویدادها تنها برای فایل‌هایی با پسوندهای داده‌شده است. پسوندها می‌توانند با یا بدون نقطهٔ ابتدایی مشخص شوند (مثلاً 'js' یا '.js'). پسوندهای چندگانه را می‌توان با تکرار گزینه یا با جدا کردن آن‌ها با کاما مشخص کرد.

الگوهای نام فایل برای فیلتر کردن

یک الگوی فیلتر شبیه به glob ارائه دهید، و تنها رویدادهای فایل‌هایی که با الگو مطابقت دارند ارسال خواهند شد. الگوهای چندگانه را می‌توان با تکرار گزینه تعیین کرد. رویدادهایی که مربوط به فایل‌ها نیستند (مانند سیگنال‌ها، رویدادهای صفحه‌کلید) بدون تغییر عبور داده خواهند شد.

فایل‌ها برای بارگذاری فیلترها از آن‌ها

مسیری به یک فایل حاوی فیلترها، در هر خط یکی، ارائه دهید. خطوط خالی و خطوطی که با '#' آغاز می‌شوند نادیده گرفته می‌شوند. از همان قالب الگوی گزینهٔ '--filter' استفاده می‌کند.

این مورد همچنین می‌تواند از طریق متغیر محیطی $WATCHEXEC_FILTER_FILES استفاده شود.

محیط: WATCHEXEC_FILTER_FILES
[آزمایشی] برنامه‌های فیلتر.

/!\ این گزینه آزمایشی است و ممکن است بدون اطلاع قبلی تغییر کند یا حذف شود.

برنامه‌های فیلتر سفارشی خود را با نحو jaq (مشابه jq) ارائه دهید. رویدادها به همان قالبی که در '--emit-events-to' شرح داده شده به برنامه‌ها داده می‌شوند و برنامه باید یک مقدار بولی (boolean) برگرداند. برنامه‌های نامعتبر باعث شکست در شروع watchexec می‌شوند؛ از '-v' برای دیدن خطاهای زمان اجرای برنامه استفاده کنید.

علاوه بر stdlib در jaq، برنامهٔ watchexec چند تعریف فیلتر سفارشی اضافه می‌کند:


- مقدار 'path | file_meta' متادیتای فایل را برمی‌گرداند یا در صورت عدم وجود فایل null می‌دهد.


- مقدار 'path | file_size' اندازهٔ فایل در مسیر را برمی‌گرداند، یا در صورت عدم وجود فایل null می‌دهد.


- مقدار 'path | file_read(bytes)' یک رشته شامل n بایت اول فایل در مسیر را برمی‌گرداند.
اگر فایل کوچک‌تر از n بایت باشد، کل فایل برگردانده می‌شود. هیچ فیلتری برای
خواندن کل فایل به‌صورت یکجا وجود ندارد تا محدود کردن حجم داده‌های خوانده‌شده و پردازش‌شده تشویق شود.


- مقادیر 'string | hash' و 'path | file_hash' هشِ رشته یا فایل در مسیر را برمی‌گردانند.
هیچ تضمینی در مورد الگوریتم استفاده‌شده وجود ندارد: با آن به‌عنوان یک مقدار مات (opaque) برخورد کنید.


- مقادیر 'any | kv_store(key)'، 'kv_fetch(key)' و 'kv_clear' یک مخزن کلید-مقدار ساده فراهم می‌کنند.
داده‌ها تنها در حافظه نگه‌داری می‌شوند و هیچ پایداری‌ای وجود ندارد. سازگاری تضمین نمی‌شود.


- مقادیر 'any | printout'، 'any | printerr' و 'any | log(level)' هر مقدار داده‌شده را در
stdout، stderr یا لاگ چاپ یا ثبت می‌کنند (سطوح = error, warn, info, debug, trace)، و
مقدار را عبور می‌دهند (بنابراین '[1] | log("debug") | .[]' مقدار '1' را تولید کرده و '[1]' را لاگ می‌کند).

تمام فیلترسازی‌های انجام‌شده با چنین برنامه‌هایی، به‌ویژه مواردی که از kv یا دسترسی به فایل‌سیستم استفاده می‌کنند، بسیار کندتر از روش‌های دیگر فیلترسازی است. اگر فیلترسازی بیش از حد کند باشد، رویدادها انباشته شده و باعث توقف watchexec می‌شوند. هنگام طراحی فیلترهای خود دقت کنید.

اگر آرگومان این گزینه با یک '@' شروع شود، بقیهٔ آرگومان به‌عنوان مسیر فایلی شامل یک برنامهٔ jaq در نظر گرفته می‌شود.

برنامه‌های jaq به ترتیب و پس از همهٔ فیلترهای دیگر اجرا می‌شوند و اتصال‌کوتاه (short-circuit) هستند: اگر یک فیلتر (چه jaq و چه غیر آن) رویدادی را رد کند، اجرا همان‌جا متوقف می‌شود و هیچ فیلتر دیگری اجرا نخواهد شد. علاوه بر این، آن‌ها پس از خروجی دادن اولین مقدار متوقف می‌شوند، بنابراین هنگام پیمایش تمایل خواهید داشت از 'any' یا 'all' استفاده کنید، در غیر این صورت فقط اولین مورد پردازش خواهد شد که می‌تواند بسیار گیج‌کننده باشد!

برنامه‌های ارائه‌شده توسط کاربران را بیابید یا برنامه‌های مفید خود را در https://github.com/watchexec/watchexec/discussions/592 ارسال کنید.

## مثال‌ها:

فیلتر نادیده‌گیری با عبارت منظم (Regexp) روی مسیرها:


'all(.tags[] | select(.kind == "path"); .absolute | test("[.]test[.]js$")) | not'

عبور دادن هر رویدادی که یک فایل ایجاد می‌کند:


'any(.tags[] | select(.kind == "fs"); .simple == "create")'

عبور دادن رویدادهایی که فایل‌های اجرایی را لمس می‌کنند:


'any(.tags[] | select(.kind == "path" && .filetype == "file"); .absolute | metadata | .executable)'

نادیده گرفتن فایل‌هایی که با شه‌بنگ (shebang) آغاز می‌شوند:


'any(.tags[] | select(.kind == "path" && .filetype == "file"); .absolute | read(2) == "#!") | not'

الگوهای نام فایل برای نادیده گرفتن

یک الگوی فیلتر شبیه به glob ارائه دهید، و رویدادهای فایل‌هایی که با الگو مطابقت دارند نادیده گرفته خواهند شد. الگوهای چندگانه را می‌توان با تکرار گزینه مشخص کرد. رویدادهایی که مربوط به فایل‌ها نیستند (مانند سیگنال‌ها، رویدادهای صفحه‌کلید) دست‌نخورده عبور داده خواهند شد.

فایل‌ها برای بارگذاری موارد نادیده‌گیری از آن‌ها

مسیری به یک فایل حاوی موارد نادیده‌گیری، در هر خط یکی، ارائه دهید. خطوط خالی و خطوطی که با '#' آغاز می‌شوند نادیده گرفته می‌شوند. از همان قالب الگوی گزینهٔ '--ignore' استفاده می‌کند.

این مورد همچنین می‌تواند از طریق متغیر محیطی $WATCHEXEC_IGNORE_FILES استفاده شود.

محیط: WATCHEXEC_IGNORE_FILES
رویدادهای فایل‌سیستم برای فیلتر کردن

این یک فیلتر سریع برای ارسال رویدادها فقط برای انواع مشخص‌شده‌ای از تغییرات فایل‌سیستم است. از میان 'access'، 'create'، 'remove'، 'rename'، 'modify' و 'metadata' انتخاب کنید. انواع چندگانه را می‌توان با تکرار گزینه یا با جدا کردن آن‌ها با کاما مشخص کرد. به‌طور پیش‌فرض، این شامل همهٔ انواع به‌جز 'access' است.

در صورت امکان، این ممکن است فیلتر کردن را در سطح هسته اعمال کند، که می‌تواند کارآمدتر باشد اما ممکن است هنگام خواندن لاگ‌ها گیج‌کننده‌تر باشد.

پیش‌فرض: create,remove,rename,modify,metadata
عدم ارسال رویدادهای فایل‌سیستم برای تغییرات متادیتا

این یک نام اختصاری برای '--fs-events create,remove,rename,modify' است. استفاده از آن در کنار گزینهٔ '--fs-events' بی‌معنی بوده و مجاز نیست.

چاپ رویدادهایی که کنش‌ها را تحریک می‌کنند

این گزینه رویدادهایی را که هنگام مدیریت، کنش را برانگیخته‌اند (پس از اعمال debounce)، در قالبی خوانا برای انسان چاپ می‌کند. این برای اشکال‌زدایی فیلترها مفید است.

هنگامی که به اطلاعات تشخیصی بیشتری نیاز دارید، به‌جای آن از '-vvv' استفاده کنید.

نمایش صفحهٔ راهنما (manual)

اگر خروجی یک پایانه باشد و برنامهٔ 'man' در دسترس باشد، این گزینه صفحهٔ راهنمای Watchexec را نشان می‌دهد. در غیر این صورت، صفحهٔ راهنما در قالب ROFF در stdout چاپ می‌شود (مناسب برای نوشتن در یک فایل watchexec.1).

چاپ راهنما آرگومان‌ها:.PP
<TASK>
تسک‌های مورد نظر برای اجرا می‌توان چندین تسک را با جدا کردن توسط `:::` مشخص کرد به‌عنوان مثال: `mise run task1 arg1 arg2 ::: task2 arg1 arg2` پیش‌فرض: `default`
<ARGS>
تسک و آرگومان‌ها برای اجرا

نمایش مسیر نصب یک ابزار

برای کارکرد این دستور، ابزار باید نصب شده باشد.

روش استفاده: mise where [OPTIONS] <TOOL@VERSION> [<ASDF_VERSION>]

گزینه‌ها:

نمایش راهنما آرگومان‌ها:
<TOOL@VERSION>
ابزار(ها) برای جستجو به‌عنوان مثال: ruby@3 اگر "@<PREFIX>" مشخص شده باشد، آخرین نسخهٔ نصب‌شده که با این پیشوند مطابقت دارد نمایش داده خواهد شد در غیر این صورت، نسخهٔ فعال و نصب‌شدهٔ فعلی را نمایش می‌دهد
<ASDF_VERSION>
پیشوند نسخه برای استفاده در هنگام پرس‌وجوی آخرین نسخه مشابه با اولین آرگومان پس از "@" جهت سازگاری با asdf استفاده می‌شود

مسیری را نشان می‌دهد که فایل اجرایی (bin) ابزار به آن اشاره دارد.

از این دستور برای تشخیص این‌که در حال حاضر کدام نسخه از ابزار فعال است استفاده کنید.

روش استفاده: mise which [OPTIONS] [<BIN_NAME>]

گزینه‌ها:

استفاده از یک tool@version مشخص به‌عنوان مثال: `mise which npm --tool=node@20`
نمایش نام پلاگین به‌جای مسیر
نمایش نسخه به‌جای مسیر
نمایش راهنما آرگومان‌ها:
<BIN_NAME>
فایل اجرایی (bin) برای جستجو

Jeff Dickey <@jdx>