- استفاده از Hermes
- اپلیکیشن دسکتاپ
اپلیکیشن دسکتاپ
اپلیکیشن دسکتاپ Hermes یک اپلیکیشن بومی ساخته شده حول همان عاملی است که از CLI و gateway دریافت میکنید — همان پیکربندی، همان کلیدهای API، همان نشستها، همان مهارتها، همان حافظه. یک محصول جداگانه یا کلون سبک نیست؛ از هسته Hermes Agent و تنظیمات یکسان استفاده میکند و آن را از طریق یک رابط کاربری مدرن و با دقت طراحی شده هدایت میکند. اگر از hermes در ترمینال استفاده کردهاید، هر چیزی که در آنجا تنظیم کردهاید اینجا از قبل موجود است و هر کاری که اینجا انجام میدهید در آنجا نمایش داده میشود.
hermes
روی macOS، Windows و Linux اجرا میشود.
Hermes چندین رابط کاربری دارد که همگی با همان عامل ارتباط برقرار میکنند:
- اپلیکیشن دسکتاپ (این صفحه) — یک اپلیکیشن بومی با رابط کاربری اختصاصی برای چت، پیکربندی و مدیریت.
- CLI (
hermes) و TUI (hermes --tui) — رابطهای ترمینالی. - رابط وب داشبورد (
hermes dashboard) — پنل مدیریت مرورگر؛ تب اختیاری Chat آن TUI را از طریق یک pseudo-terminal تعبیه میکند.
hermes
TUI
hermes --tui
رابط وب داشبورد
hermes dashboard
هر کدام که مناسب لحظه است انتخاب کنید. وضعیت را به اشتراک میگذارند، بنابراین میتوانید یک نشست را در یکی شروع کنید و در دیگری ادامه دهید.
نصب
دستورالعملهای نصب Hermes Desktop را دنبال کنید.
دستورالعملهای نصب Hermes Desktop
اگر قبلاً Hermes نصب دارید، کافی است اجرا کنید
hermes desktop
از پیکربندی، کلیدها، نشستها و مهارتهای فعلی شما استفاده میکند.
محتوای اپلیکیشن
اپلیکیشن دسکتاپ به صورت یک پنجره چتمحور با یک نوار کناری چپ برای ناوبری سازماندهی شده است. برای اجازه دادن به مدیریت مکالمات متعدد همزمان عامل، پیکربندی ارائهدهندگان پیامرسانی، ایجاد artifacts، مرور ساختار پوشه پروژهها و کار روی چندین پروژه به طور همزمان ساخته شده است.
چت
مرکز اپلیکیشن. دریافت میکنید:
- پاسخهای پخش با فعالیت ابزار زنده و خلاصههای ساختاریافته فراخوانی ابزار در حین کار عامل.
- همان تاریخچه مکالمه با هر سطح دیگر Hermes — نشستهای شروع شده در اینجا در CLI/TUI ادامه مییابند و بالعکس.
- کشیدن و رها کردن فایلها در هر جای ناحیه چت برای پیوست کردن آنها به پیام بعدی.
- نوار پیشنمایش سمت راست — صفحات وب، فایلها و خروجیهای ابزار را در کنار هم رندر کنید در حالی که به چت کردن ادامه میدهید.
- تاریخچه آهنگساز و ویرایش صف — کلیدهای بالا/پایین را در آهنگساز خالی فشار دهید تا درخواستهای قبلی را بازیابی و استفاده مجدد کنید و پیامهایی را که در صف قرار دادهاید قبل از ارسال ویرایش کنید.
خط وضعیت
نوار در انتهای چت وضعیت نشست زنده را نشان میدهد و کنترلهای سریع را بدون باز کردن تنظیمات در معرض نمایش قرار میدهد:
- تغییر YOLO به ازای هر نشست — YOLO را فقط برای این نشست فعال یا غیرفعال کنید (مطابق TUI). YOLO درخواستهای تأیید دستورات خطرناک را دور میزند، بنابراین بدانید چه چیزی را غیرفعال میکنید — امنیت → حالت YOLO را ببینید.
با یک نمونه Hermes روی ماشین دیگری به جای backend محلی bundled چت میکنید؟ اتصال به backend از راه دور را در زیر ببینید — و برای تصویر کامل نحوه کار اتصال داشبورد از راه دور (دروازه احراز هویت، سوکت /api/ws چت، و تشخیص کد بسته شدن WebSocket)، رابط وب داشبورد → اتصال Hermes Desktop به backend از راه دور را ببینید.
رابط وب داشبورد → اتصال Hermes Desktop به backend از راه دور
انتخاب مدل
انتخابگر مدل در آهنگساز، درست سمت چپ میکروفون قرار دارد. روی آن کلیک کنید تا مدل، تلاش استدلال و حالت سریع را از یک لیست کشویی تغییر دهید.
- انتخابگر آهنگساز یک حالت UI چسبناک است و هرگز پیشفرض شما را لمس نمیکند. به طور محلی (به ازای هر دستگاه) به خاطر سپرده میشود و در چتهای جدید و راهاندازی مجدد دنبال میشود به جای اینکه به پیشفرض برگردد — یک بار مدلی انتخاب کنید و
Cmd/Ctrl+Nبعدی روی آن باز میشود. با یک چت زنده، تعویض مدل تغییر را به همان چت فعلی محدود میکند؛ در هر صورت انتخاب هنگام ایجاد/تعویض نشست همراه میشود و هرگز به پیشفرض پروفایل نوشته نمیشود. (تعویض پروفایلها به پیشفرض خود آن پروفایل بازمیگرداند.) - پیشفرض را در تنظیمات → مدل تنظیم کنید. آن مدل “اصلی” پیشفرض سراسری به ازای هر پروفایل شماست — چیزی که چتهای جدید، cronها، زیرعاملان و وظایف کمکی از آن شروع میشوند، و تنها جایی است که آن را مینویسد. هر پروفایل پیشفرض خود را حفظ میکند.
- پیشpreset تلاش/سریع به ازای هر مدل. هر مدل تلاش استدلال و انتخاب حالت سریع خود را در اپلیکیشن دسکتاپ به خاطر میسپارد و هر بار که آن مدل را انتخاب میکنید دوباره اعمال میشود. این پیشpresetها یک راحتی دسکتاپ هستند و cronها یا زیرعاملان را تغییر نمیدهند.
- تعویض در حین چت کش پیشفرض را بازنشانی میکند. تعویض مدل در داخل یک چت زنده به این معنی است که پیام بعدی کل مکالمه را با قیمت کامل ورودی دوباره میخواند (کشهای prompt ارائهدهنده بر اساس مدل کلیدگذاری میشوند). گاهی اوقات خوب است؛ در یک چت طولانی، یک چت جدید در مدل جدید اغلب ارزانتر از رفت و برگشت است.
Cmd/Ctrl+N
مرورگر فایل
بدون ترک اپلیکیشن دایرکتوری کاری را کاوش و پیشنمایش کنید — مفید برای دنبال کردن در حین خواندن، نوشتن و ویرایش فایلها توسط عامل. دایرکتوری اولیه پروژه را با hermes desktop --cwd <path> (یا متغیر محیطی HERMES_DESKTOP_CWD) تنظیم کنید.
hermes desktop --cwd <path>
HERMES_DESKTOP_CWD
صدا
با Hermes صحبت کنید و پاسخ آن را بشنوید، همان حالت صدای موجود در جاهای دیگر. در macOS سیستمعامل یک بار برای دسترسی به میکروفون درخواست میدهد.
تنظیمات و onboarding
ارائهدهندگان، مدلها، ابزارها و اعتبارنامهها را از یک رابط کاربری واقعی به جای ویرایش YAML مدیریت کنید. onboarding اجرای اول شما را در چند ثانیه به اولین پیام میرساند. پنلهای تنظیمات شامل ارائهدهندگان/کلیدها، انتخاب مدل، پیکربندی مجموعه ابزارها، سرورهای MCP، gateway و مدیریت نشست هستند.
- پنل تنظیمات ارائهدهندگان — مکان اختصاصی برای مدیریت ارائهدهندگان استنتاج، با تجربه کاربری Accounts/API-keys برای ورود و ذخیره اعتبارنامهها به ازای هر ارائهدهنده.
- هر ارائهدهنده و مدل در منوها — GUI لیست کامل ارائهدهندگان و هر مدلی که
hermes modelمیشناسد را نمایش میدهد، بنابراین از همان کاتالوگی که CLI میبیند انتخاب میکنید نه یک زیرمجموعه گزینش شده. - OAuth xAI Grok — Grok یک ارائهدهنده OAuth درجه یک در راهانداز است؛ از طریق جریان مرورگر مانند سایر ارائهدهندگان OAuth وارد شوید.
- نصب backend ابزار از GUI — مراحل نصب پس از راهاندازی یک backend ابزار را مستقیماً از اپلیکیشن اجرا کنید به جای رفتن به ترمینال.
- هشدار مدل کمکی — اگر مدل اصلی را به ارائهدهنده جدیدی تغییر دهید در حالی که وظایف کمکی (عنوانگذاری، خلاصهسازی و کمککارهای مشابه) هنوز به ارائهدهنده دیگری ثابت هستند، اپلیکیشن به شما هشدار میدهد تا ناخواسته کار را بین دو ارائهدهنده تقسیم نکنید.
hermes model
onboarding اجرای اول بر روی یک سیستم طراحی overlay یکپارچه بازطراحی شده است و میتوانید “Choose provider later” را انتخاب کنید تا راهاندازی ارائهدهنده را رد کنید و ابتدا وارد اپلیکیشن شوید.
پنلهای مدیریت
اپلیکیشن همچنین سطح گستردهتر مدیریت Hermes را نمایش میدهد تا مجبور نباشید به ترمینال بروید:
- مهارتها — مهارتها را مرور، نصب و مدیریت کنید.
- Cron — کارهای زمانبندی شده را مشاهده و مدیریت کنید.
- پروفایلها — بین پروفایله Hermes (پیکربندی/مهارتهای/نشستهای جداگانه) تعویض کنید.
- پیامرسانی — کانالهای gateway را راهاندازی کنید.
- عاملان و مرکز فرماندهی — سطوح ارکستراسیون برای کار چندعاملی.
مهارتها کارهای زمانبندی شده پروفایلهای Hermes
صفحهکلید و ناوبری
- تابلو دستورات —
Cmd+K(Ctrl+Kدر Windows/Linux) را فشار دهید تا به عملیات بپرید و با صفحهکلید در اپلیکیشن ناوبری کنید. - میانبرهای قابل بازتعریف — پنل میانبرها در تنظیمات به شما اجازه میدهد میانبرهای صفحهکلید اپلیکیشن را به کلیدهای خودتان بازتعریف کنید.
- میانبرهای زوم سفارشی — رابط کاربری را با افزایشهای نیمقدم زوم کنید تا کنترل دقیقتری روی اندازه متن داشته باشید.
- تغییردهنده زبان رابط کاربری — زبان رابط کاربری اپلیکیشن را درون اپلیکیشن تغییر دهید، شامل چینی ساده شده (zh-Hans).
نشستها و پروفایلها
- بازطراحی لیست نشستها — یک لیست نشست بازطراحی شده با آرشیو و بهداشت عمومی نشست برای حفظ لیست قابل مدیریت در حین رشد.
- جستجوی نشستها بر اساس id — یک نشست خاص را مستقیماً بر اساس id آن پیدا کنید.
- نشستهای چندپروفایلی همزمان — نشستها را در چندین پروفایل همزمان اجرا کنید و به یک نشست در پروفایل دیگر با پیوندهای cross-profile
@sessionارجاع دهید.
پروفایلها
@session
بهروزرسانی
اپلیکیشن به طور خودکار بهروزرسانیها را بررسی میکند و هنگام آماده بودن یک بهروزرسانی یککلیکی ارائه میدهد.
فرآیند بهروزرسانی دستی نیز با GUI کار میکند.
حذف
Settings → About → Danger zone را باز کنید و میزان حذف را انتخاب کنید:
- حذف فقط چت GUI — اپلیکیشن دسکتاپ و دادههای آن را حذف میکند؛ عامل Hermes، پیکربندی و چتهای شما باقی میمانند. (مشابه
hermes uninstall --gui.) - حذف GUI + عامل، حفظ دادههایم — اپلیکیشن و عامل را حذف میکند اما پیکربندی، چتها و رمزها را برای نصب مجدد آینده حفظ میکند. (مشابه
hermes uninstall.) - حذف همه — اپلیکیشن، عامل و تمام دادههای کاربر را حذف میکند. (مشابه
hermes uninstall --full.)
اپلیکیشن برای تکمیل کار بسته میشود (پاکسازی پس از خروج اجرا میشود تا بسته اپلیکیشن در حال اجرا و venv خودش را حذف کند). گزینههای حذف عامل وقتی عامل محلی نصب نشده باشد (مثلاً یک کلاینت “lite” GUI-only متصل به backend از راه دور) به طور خودکار پنهان میشوند.
میتوانید همین کار را از ترمینال انجام دهید — hermes uninstall --gui برای فقط GUI، یا hermes uninstall / hermes uninstall --full برای عامل نیز.
hermes uninstall --gui
hermes uninstall
hermes uninstall --full
اجرای hermes uninstall --gui از یک source checkout (یک ساخت hermes desktop dev) همچنین node_modules workspace و خروجیهای ساخت apps/desktop/{dist,release} را حذف میکند، زیرا آنها artifacts ساخت GUI هستند. آنها با hermes desktop (یا npm install + بازساخت) قابل بازیابی هستند — اما اگر فعالانه روی اپلیکیشن دسکتاپ کار میکنید، انتظار نصب مجدد وابستگیها را داشته باشید.
مرجع CLI: hermes desktop
برای راهاندازی از CLI، کافی است hermes desktop را اجرا کنید. به طور پیشفرض وابستگیهای Node workspace را نصب میکند، اپلیکیشن unpacked Electron سیستمعامل فعلی را میسازد و سپس آن artifact بستهبندی شده را راهاندازی میکند.
| پرچم | توضیح |
|---|---|
| –skip-build | npm install/package را رد کنید و اپلیکیشن unpacked موجود از apps/desktop/release را راهاندازی کنید |
| –force-build | حتی اگر مهر زمانی محتوا مطابقت داشته باشد بازساخت کامل را اجبار کنید |
| –build-only | اپلیکیشن دسکتاپ را بسازید اما راهاندازی نکنید (توسط hermes update استفاده میشود) |
| –source | از طریق electron . روی apps/desktop/dist به جای اپلیکیشن بستهبندی شده راهاندازی کنید |
| –cwd PATH | دایرکتوری اولیه پروژه برای نشستهای چت دسکتاپ (HERMES_DESKTOP_CWD را تنظیم میکند) |
| –hermes-root PATH | ریشه سورس Hermes که اپلیکیشن استفاده میکند را override کنید (HERMES_DESKTOP_HERMES_ROOT را تنظیم میکند) |
| –ignore-existing | اپلیکیشن را مجبور کنید هر hermes CLI موجود در PATH را هنگام حل backend نادیده بگیرد |
| –fake-boot | تأخیرهای راهاندازی قطعی را برای اعتبارسنجی رابط کاربری راهاندازی فعال کنید |
نحوه عملکرد
اپلیکیشن بستهبندی شده شامل پوسته Electron و یک سطح چت React بومی است. در اولین راهاندازی میتواند Runtime Hermes Agent را در HERMES_HOME (~/.hermes، یا %LOCALAPPDATA%\hermes در Windows) نصب کند — همان لایهبندی که نصب CLI استفاده میکند، به همین دلیل هر دو قابل تعویض هستند. حل backend ابتدا HERMES_DESKTOP_HERMES_ROOT را رعایت میکند، سپس یک نصب مدیریت شده تکمیل شده، سپس یک hermes کاوش شده در PATH (مگر اینکه --ignore-existing / HERMES_DESKTOP_IGNORE_EXISTING=1 تنظیم شده باشد)، و در نهایت یک override صریح HERMES_DESKTOP_HERMES برای بستهبندیکنندگانی مانند Nix. رندرر React با یک backend بدون رابط که اپلیکیشن برای شما راهاندازی میکند ارتباط برقرار میکند — یک فرآیند hermes serve که API JSON-RPC/WebSocket tui_gateway را سرویس میدهد — و Runtime عامل را دوباره استفاده میکند به جای تعبیه hermes --tui. اپلیکیشن دسکتاپ خودکفا است: backend hermes serve خودش را اجرا میکند و هرگز رابط وب داشبورد را باز یا نیاز نمیکند. (Runtimeهای قدیمیتر از دستور serve به طور خودکار به dashboard --no-open بدون رابط بازمیگردند، بنابراین بهروزرسانی اپلیکیشن هرگز از backend خود جلوتر نمیافتد.) منطق نصب، حل backend و بهروزرسانی خودکار در فرآیند اصلی Electron زندگی میکند.
اتصال به backend از راه دور
به طور پیشفرض اپلیکیشن backend محلی خودش را شروع و مدیریت میکند. میتوانید به جای آن آن را به یک backend Hermes که روی ماشین دیگری اجرا میشود اشاره دهید — یک VPS، یک سرور خانگی، یا یک Mini پشت Tailscale.
“Backend از راه دور” به معنی یک سرور hermes serve در حال اجرا روی ماشین از راه دور است — آن فرآیندی است که اپلیکیشن دسکتاپ به آن متصل میشود. هیچ چیزی در این بخش کار نمیکند مگر اینکه آن backend واقعاً بالا و قابل دسترس باشد. اپلیکیشن دسکتاپ آن را برای شما راهاندازی نمیکند؛ شما (یا یک سرویس systemd) hermes serve را روی میزبان از راه دور نگه میدارید و اپلیکیشن به آن متصل میشود. اگر از کانالهای پیامرسانی (Telegram، Discord و غیره) نیز استفاده میکنید، gateway یک فرآیند جداگانه بلندمدت است که به طور مستقل شروع میکنید — یادداشت پس از مراحل راهاندازی را ببینید.
اتصال دو نیمه دارد: در backend آن را با یک ارائهدهنده احراز هویت محافظت میکنید و در اپلیکیشن URL backend را وارد کرده و وارد میشوید. اتصال backend به یک آدرس غیر-loopback دروازه احراز هویت آن را به طور خودکار فعال میکند و ارائهدهندهای که پیکربندی میکنید همان چیزی است که به اپلیکیشن دسکتاپ اجازه عبور میدهد.
ارائهدهنده را بر اساس محل زندگی backend انتخاب کنید:
- OAuth (Nous Portal) — ترجیحی برای هر چیزی که فراتر از ماشین خودتان قابل دسترس است. ورودها با حساب Nous شما تأیید میشوند، بنابراین این گزینه مناسب برای VPS، یک میزبان عمومی، یا هر backend از راه دور است. داشبورد را با
hermes dashboard register(یا صفحه Portal/local-dashboards) ثبت کنید تا OAuth client آن فراهم شود، سپس از اپلیکیشن با “Sign in with Nous Research” وارد شوید. یک ارائهدهنده OIDC میزبانی شده خودی به همان شکل کار میکند اگر ارائهدهنده هویت خودتان را اجرا کنید. - نام کاربری/رمز عبور — فقط برای استفاده محلی/شبکه مورد اعتماد. سادهترین گزینه وقتی backend در همان LAN مورد اعتماد یا فقط از طریق VPN قابل دسترس است (مثلاً Tailscale). یک credential مشترک را با یک ارائهدهنده هویت خارجی محافظت میکند، بنابراین از آن برای داشبوردی که در اینترنت عمومی در معرض دید است استفاده نکنید — در آنجا به جای آن به سراغ OAuth بروید.
در backend (ماشین از راه دور)
یک نام کاربری و رمز عبور تنظیم کنید، سپس backend را به یک آدرس قابل دسترس متصل کنید. اعتبارنامهها در ~/.hermes/.env (فایل رمزها، حالت 0600) زندگی میکنند:
# 1. تنظیم اعتبارنامههای ورود به داشبورد.
cat >> ~/.hermes/.env <<'EOF'
HERMES_DASHBOARD_BASIC_AUTH_USERNAME=admin
HERMES_DASHBOARD_BASIC_AUTH_PASSWORD=choose-a-strong-password
# توصیه شده: یک secret امضای پایدار تا نشستها راهاندازی مجدد را تحمل کنند.
# بدون آن یک کلید تصادفی در هر راهاندازی تولید میشود و در هر
# راهاندازی مجدد از سیستم خارج میشوید.
HERMES_DASHBOARD_BASIC_AUTH_SECRET=$(openssl rand -base64 32)
EOF
chmod 600 ~/.hermes/.env
# 2. اجرای backend متصل به یک آدرس قابل دسترس. اتصال غیر-loopback
# دروازه احراز هویت را فعال میکند؛ ارائهدهنده نام کاربری/رمز عبور
# ورود را مدیریت میکند.
hermes serve --host 0.0.0.0 --port 9119
آن فرآیند hermes serve را تا زمانی که میخواهید اپلیکیشن دسکتاپ بتواند متصل شود نگه دارید — اگر متوقف شود، اپلیکیشن دیگر نمیتواند به backend دسترسی داشته باشد. آن را تحت systemd، tmux یا مدیر فرآیند انتخابی خود اجرا کنید تا خروج از سیستم و راهاندازی مجدد را تحمل کند.
جداگانه، مطمئن شوید که اگر به کانالهای پیامرسانی تکیه میکنید gateway در میزبان از راه دور در حال اجرا است — backend hermes serve چیزی است که اپلیکیشن دسکتاپ با آن ارتباط برقرار میکند، اما نشستهای gateway Telegram/Discord/Slack شما فرآیندی جداگانه هستند که به طور مستقل شروع و نگه میدارید. راهاندازی gateway را در Messaging ببینید.
ترجیح میدهید رمز عبور متن ساده را در حالت ذخیره نگه ندارید؟ به جای آن HERMES_DASHBOARD_BASIC_AUTH_PASSWORD_HASH را روی یک هش scrypt تنظیم کنید — آن را با python -c "from plugins.dashboard_auth.basic import hash_password; print(hash_password('PW'))" محاسبه کنید. سطح کامل پیکربندی (کلیدهای config.yaml، هر متغیر محیطی، محدودکننده نرخ): رابط وب داشبورد → ارائهدهنده نام کاربری/رمز عبور.
backend را به عنوان سرویس systemd اجرا میکنید؟ به unit EnvironmentFile=%h/.hermes/.env بدهید تا اعتبارنامهها در محیط در راهاندازی باشند.
backend فایل .env (کلیدهای API، رمزها) شما را میخواند و مینویسد و میتواند دستورات عامل را اجرا کند. راهاندازی نام کاربری/رمز عبور نشان داده شده در بالا برای یک شبکه مورد اعتماد است — هرگز یک backend محافظت شده با رمز عبور را مستقیماً در اینترنت باز در معرض دید قرار ندهید؛ آن را پشت VPN قرار دهید. Tailscale گزینه تمیز است: به آدرس tailscale ماشین متصل شوید (--host <tailscale-ip>) و http://<tailscale-ip>:9119 را به عنوان URL از راه دور استفاده کنید تا فقط tailnet شما بتواند به آن دسترسی داشته باشد. برای دسترسی به backend از اینترنت عمومی، به جای آن ارائهدهنده OAuth (Nous Portal) را استفاده کنید.
در اپلیکیشن
Settings → Gateway → Remote gateway:
- URL از راه دور —
http://<backend-host>:9119(پیشوندهای مسیر مانند/hermesکار میکنند اگر آن را با یک reverse proxy جلوی آن قرار دهید) - ورود — اپلیکیشن تشخیص میدهد کدام ارائهدهنده backend تبلیغ میکند و دکمه را تطبیق میدهد. برای backend نام کاربری/رمز عبور یک دکمه “Sign in” نشان میدهد که فرم credential را باز میکند (اعتبارنامههای مرحله 1 را وارد کنید). برای backend OAuth “Sign in with
" نشان میدهد (مثلاً "Sign in with Nous Research") که ورود مرورگر ارائهدهنده را اجرا میکند. در هر صورت اپلیکیشن یک نشست احراز هویت شده با backend دریافت میکند. - ذخیره و اتصال مجدد — پوسته دسکتاپ را به backend از راه دور تعویض میکند. نشست به طور خودکار تازهسازی میشود؛ وقتی
HERMES_DASHBOARD_BASIC_AUTH_SECRETتنظیم شده باشد در راهاندازی مجدد وارد میمانید.
همچنین میتوانید URL backend را بدون GUI از طریق متغیر محیطی HERMES_DESKTOP_REMOTE_URL قبل از راهاندازی اپلیکیشن تنظیم کنید (آن تنظیمات درون اپلیکیشن را override میکند)؛ همچنان از پنل تنظیمات Gateway وارد میشوید.
gateway از راه دور به ازای هر پروفایل پیکربندی میشود، بنابراین هر پروفایل میتواند به backend از راه دور خود اشاره کند (یا در محلی خود باقی بماند). تعویض پروفایلها تعویض میدهد کدام میزبان از راه دور اپلیکیشن به آن متصل میشود.
عیبیابی
- ورود با خطا 401 / “Invalid credentials” شکست میخورد — نام کاربری یا رمز عبور با
HERMES_DASHBOARD_BASIC_AUTH_USERNAME/HERMES_DASHBOARD_BASIC_AUTH_PASSWORDbackend مطابقت ندارد. Backend همان خطای عمومی را برای کاربر ناشناخته و رمز عبور اشتباه برمیگرداند (بدون oracle شمارش)، بنابراین هر دو را دوباره بررسی کنید. دروازه را باcurl -s http://<host>:9119/api/status | jq '.auth_required, .auth_providers' تأیید کنید — بایدtrueگزارش کند و شامل“basic”` باشد. - دکمه “Sign in” وجود ندارد — به جای آن یک نشانه نشست درخواست میکند — ارائهدهنده نام کاربری/رمز عبور backend فعال نیست.
/api/status"basic"را درauth_providersفهرست نمیکند. مطمئن شوید هم نام کاربری و هم رمز عبور (یا هش رمز عبور) در~/.hermes/.envتنظیم شده و فرآیند داشبورد واقعاً آنها را بارگذاری کرده است. - در هر راهاندازی مجدد از سیستم خارج میشوید —
HERMES_DASHBOARD_BASIC_AUTH_SECRETرا روی یک مقدار پایدار تنظیم کنید. بدون آن کلید امضای نشانه در هر راهاندازی دوباره تولید میشود و تمام نشستها را نامعتبر میکند. - اتصال رد شده / انقضای زمان — backend به
127.0.0.1(پیشفرض) متصل شده یا فایروال/VPN پورت را مسدود میکند. به0.0.0.0یا آدرس tailscale متصل شوید و پورت را برای شبکه مورد اعتماد خود باز کنید.
برای همان راهاندازی از زاویه رابط وب داشبورد، رابط وب داشبورد → اتصال Hermes Desktop به backend از راه دور را ببینید؛ متغیرهای محیطی در Environment Variables → Web Dashboard & Hermes Desktop فهرست شدهاند.
رابط وب داشبورد → اتصال Hermes Desktop به backend از راه دور متغیرهای محیطی → رابط وب داشبورد و Hermes Desktop
عیبیابی
لاگهای راهاندازی در HERMES_HOME/logs/desktop.log (شامل خروجی backend و tracebackهای اخیر پایتون) قرار دارند — اگر اپلیکیشن خطای راهاندازی گزارش کند ابتدا آن را بررسی کنید. همچنین میتوانید آن را از CLI دنبال کنید:
hermes logs gui -f
بازنشانیهای رایج:
# اجبار راهاندازی اول تمیز (macOS/Linux)
rm "$HOME/.hermes/hermes-agent/.hermes-bootstrap-complete"
# بازساخت venv پایتون خراب (macOS/Linux)
rm -rf "$HOME/.hermes/hermes-agent/venv"
# بازنشانی درخواست میکروفون گیر کرده macOS
tccutil reset Microphone com.nousresearch.hermes
“Build desktop app” روی دانلود Electron گیر کرده
ساخت، Runtime Electron (~114 MB) را از github.com/electron/electron/releases دانلود میکند. اگر نصبکننده در مرحله “Build desktop app” با خروجی زنده retrying attempt=… آویزان شود، GitHub در شبکه شما مسدود یا محدود شده (فایروال، پروکسی یا منطقه).
نصبکننده این را به طور خودکار ترمیم میکند: در یک ساخت ناموفق (1) یک فایل zip Electron خراب کش شده را پاک میکند و دوباره تلاش میکند، سپس (2) اگر همچنان ناموفق باشد و ELECTRON_MIRROR را تنظیم نکرده باشید، یک بار دیگر از طریق npmmirror.com، آینه رسمی جامعه Electron، تلاش میکند. @electron/get دانلود را SHASUM بررسی میکند، اما checksums از همان آینه میآیند — این دانلود خراب یا ناقص را تشخیص میدهد، نه یک آینه به خطر افتاده. اگر ترجیح میدهید به یک میزبان第三方 اعتماد نکنید، ELECTRON_MIRROR خودتان را ثابت کنید (در زیر)؛ ساخت هرگز آنچه را تنظیم کردهاید override نمیکند.
برای انتخاب آینه خودتان (مثلاً یک آینه سازمانی/مورد اعتماد)، ELECTRON_MIRROR را قبل از نصب تنظیم کنید یا دستی بازسازی کنید — ساخت آن را رعایت میکند و override نمیکند:
ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/ \
bash -c 'cd "$HOME/.hermes/hermes-agent/apps/desktop" && CSC_IDENTITY_AUTO_DISCOVERY=false npm run pack'
برای پاک کردن دستی یک فایل zip خراب کش شده:
rm -f "$HOME/Library/Caches/electron"/electron-*.zip # macOS
rm -f "$HOME/.cache/electron"/electron-*.zip # Linux
ساخت از سورس
اگر میخواهید روی خود اپلیکیشن کار کنید، وابستگیهای workspace را یک بار از ریشه مخزن نصب کنید، سپد سرور توسعه را از apps/desktop اجرا کنید:
npm install # از ریشه مخزن — apps/desktop، web، apps/shared را لینک میکند
cd apps/desktop
npm run dev # رندرر Vite + Electron که backend پایتونی را راهاندازی میکند
اپلیکیشن را به یک checkout خاص اشاره دهید، یا آن را از پیکربندی واقعی خود جدا کنید:
HERMES_DESKTOP_HERMES_ROOT=/path/to/clone npm run dev
HERMES_HOME=/tmp/throwaway npm run dev
npm run dev:fake-boot # رابط کاربری راهاندازی را با تأخیرهای قطعی تمرین کنید
ساخت نصبکنندهها:
npm run dist:mac # DMG + zip
npm run dist:win # NSIS + MSI
npm run dist:linux # AppImage + deb + rpm
npm run pack # اپلیکیشن unpacked در release/ (بدون نصبکننده)
امضا و notarization macOS/Windows وقتی credentialهای مربوطه در محیط موجود باشند به طور خودکار اجرا میشوند (CSC_LINK/CSC_KEY_PASSWORD/APPLE_* برای macOS، WIN_CSC_* برای Windows).
همچنین ببینید
- راهنمای CLI — رابط ترمینال
- TUI — رابط کاربری مدرن ترمینال که توسط
hermes --tuiو تب چت داشبورد استفاده میشود - رابط وب داشبورد — پنل مدیریت مرورگر با تب چت تعبیه شده
- پیکربندی — پیکربندی که اپلیکیشن دسکتاپ میخواند و مینویسد
- Windows (بومی) — مسیر نصب بومی Windows
راهنمای CLI TUI رابط وب داشبورد پیکربندی Windows (بومی) ویرایش این صفحه