پرش به محتوای اصلی
پرش به محتوای مقاله

HRDX محیط ترمینال را برای مدیریت هم‌زمان عامل‌های هوش مصنوعی بهینه کرد

·۵ شهریور ۱۴۰۵۱۱ دقیقه مطالعه
چندبرگه‌ساز ترمینال مینیمال و سبک دیگری برای عصر عامل‌های هوشمند
چندبرگه‌ساز ترمینال مینیمال و سبک دیگری برای عصر عامل‌های هوشمند
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

معرفی یک مالتی‌پلکسر ترمینال که برخلاف tmux، برای مدیریت چرخه حیات عامل‌های هوش مصنوعی (تشخیص وضعیت مشغول/بیکار و پایداری نشست) بهینه شده است.

تصور کنید در یک پروژه پیچیده، سه عامل هوش مصنوعی مختلف را هم‌زمان برای بازنویسی کد، تست و مستندسازی به کار گرفته‌اید و حالا باید بین ده‌ها تب ترمینال و پنجره چت جابه‌جا شوید تا بفهمید کدام‌یک کارش تمام شده است. مدیریت چندین عامل کدنویسی هوش مصنوعی اغلب شبیه به یک رقص پر هرج‌ومرج بین تب‌های پراکنده ترمینال و پنجره‌های چت غیرمتصل است. ابزار HRDX که در ۲۷ اوت ۲۰۲۶ منتشر شد، دقیقاً برای پایان دادن به این هرج‌ومرج طراحی شده است. این ابزار با تبدیل ترمینال به یک فضای کاری ساختاریافته، مشکل را حل می‌کند؛ جایی که عامل‌ها به جای اینکه صرفاً ابزارهای خط فرمان باشند، به عنوان موجودیت‌های اصلی در نظر گرفته می‌شوند.

این ابزار ترمینال را از یک محیط خط فرمان ساده به یک فضای کاری ساختاریافته تبدیل می‌کند که در آن عامل (Agent) — شبیه به یک کارمند متخصص که وظایف خاصی را در پس‌زمینه انجام می‌دهد — به جای یک ابزار ساده، به عنوان موجودیتی اصلی تعریف می‌شود. همان‌طور که در تحلیل‌های قبلی ما درباره‌ی اکوسیستم ابزارهای توسعه‌ی عامل‌محور اشاره کردیم، نیاز به محیط‌هایی که بتوانند وضعیت‌های متعددی از استدلال را هم‌زمان نمایش دهند، به یک ضرورت تبدیل شده است.

برای سال‌ها، برنامه‌نویسان از ابزارهایی مثل tmux یا screen برای مدیریت شل‌ها استفاده می‌کردند. اما این ابزارها برای انسان‌ها ساخته شده بودند، نه برای «عصر عامل‌ها» که در آن یک پروژه ممکن است سه عامل مختلف هوش مصنوعی داشته باشد که وظایفی را به صورت هم‌زمان اجرا می‌کنند. HRDX این شکاف را با معرفی یک سلسله‌مراتب در نوار کناری (Sidebar) پر می‌کند که شامل محیط‌های کاری، شاخه‌های گیت و پنل‌ها است. این ساختار به طور خاص برای ماهیت استریمینگ رابط‌های کاربری متنی (TUI) بهینه شده است.

معماری محیط‌های کاری عامل‌محور

بر اساس مستندات فنی این پروژه، HRDX برخلاف بسیاری از پوشش‌های ساده (Wrappers)، نشست‌های واقعی PTY (Pseudo-Terminal) را فراهم می‌کند. این یعنی هر پنل در واقع یک شبیه‌ساز کامل ترمینال است. وقتی ابزارهایی مثل Claude Code، Codex CLI، pi یا zot را اجرا می‌کنید، این ابزارها دقیقاً همان‌طور رفتار می‌کنند که در یک ترمینال مستقل می‌کنند. این سیستم از خروجی‌های استریم، دستورات اسلش (Slash Commands) و تعاملات موسی بدون هیچ لایه ترجمه‌ای پشتیبانی می‌کند. پنل‌ها یک هویت ترمینالی پاک ارائه می‌دهند تا TUIهایی که قابلیت‌های محیط را شناسایی می‌کنند (Capability-sniffing)، مسیرهای رندرینگ مناسب برای اجرا در یک مالتی‌پلکسر را انتخاب کنند. همچنین، متغیر محیطی HRDX=1 به ابزارها اجازه می‌دهد تشخیص دهند که در محیط hrdx در حال اجرا هستند.

برای ردیابی پیشرفت کارها در پس‌زمینه، HRDX یک سیستم سیگنال‌دهی بصری دارد. عامل‌ها هنگام کار، انیمیشن‌های کوچک (Braille Spinners) نمایش می‌دهند. اگر عاملی در پنلی که در حال حاضر روی آن نیستید (unfocused) کارش تمام شود، دایره وضعیت آن نارنجی می‌شود تا توجه شما را جلب کند. به محض اینکه کاربر روی آن پنل فوکوس کند، نشانگر دوباره سبز می‌شود. نوار کناری سلسله‌مراتب محیط‌های کاری و شاخه‌های گیت را نشان می‌دهد و ردیف‌های تب تنها زمانی اضافه می‌شوند که یک محیط کاری شامل چندین تب باشد.

مکانیزم‌های تعامل و ورودی

این ابزار برای اینکه حس یک ترمینال بومی را منتقل کند، طراحی شده است. HRDX از اسکرول‌بک استاندارد و انتخاب با موس همراه با کپی مستقیم در کلیپ‌بورد پشتیبانی می‌کند. کاربران می‌توانند با کشیدن لبه‌ها، اندازه تقسیمات (Splits) را تغییر دهند و با کشیدن محیط‌های کاری در نوار کناری، ترتیب آن‌ها را تغییر دهند. منوهای راست‌کلیک (Context Menus) دسترسی سریع به اکشن‌های پنل را فراهم می‌کنند.

این ابزار از پروتکل کیبورد kitty پشتیبانی می‌کند. این قابلیت باعث می‌شود ترکیب‌های پیچیده کلیدی (مثل ctrl+1) مستقیماً به عامل برسند و توسط مالتی‌پلکسر متوقف یا رهگیری نشوند. این امر تضمین می‌کند که میان‌برهای خاص و پیچیده‌ای که در TUIهای پیشرفته هوش مصنوعی استفاده می‌شوند، همچنان کاربردی باقی بمانند.

یکپارچگی عمیق و شخصی‌سازی

به نقل از توسعه‌دهندگان HRDX، انعطاف‌پذیری این ابزار از طریق سیستم Harness فراهم شده است. در حالی که این ابزار به طور پیش‌فرض از عامل‌های اصلی پشتیبانی می‌کند، کاربران می‌توانند هر ابزار خط فرمانی (CLI) را از طریق یک فایل harness.json ثبت کنند. این فایل در دایرکتوری وضعیت قرار دارد (در macOS در ~/Library/Application Support/hrdx/، در لینوکس در $XDG_CONFIG_HOME/hrdx/ و در ویندوز در %AppData%\hrdx\). این قابلیت به مالتی‌پلکسر اجازه می‌دهد با اسکن کردن متن صفحه برای یافتن رشته‌های متنی (Substrings) خاص، تشخیص دهد که یک عامل سفارشی «مشغول» است و بر اساس آن اسپینر نوار کناری و صداهای اعلان را فعال کند.

تنظیمات سفارشی Harness شامل موارد زیر است:

  • باینری و آرگومان‌ها: تعریف فایل اجرایی و پارامترهای ثابت (مثلاً --no-auto-commits برای Aider). اگر باینری حذف شود، به طور پیش‌فرض از شناسه kind استفاده می‌شود.
  • منطق بازیابی (Resume Logic): تعیین آرگومان‌هایی برای بازگرداندن تاریخچه چت هنگام اجرای مجدد پنل. فیلد resume_first می‌تواند این آرگومان‌ها را قبل از آرگومان‌های استاندارد برای زیردستوراتی مثل resume --last قرار دهد.
  • تشخیص وضعیت (Busy Detection): یک رشته متنی که اسپینر را به حرکت در می‌آورد، یا استفاده از idle_title و attention_title برای جایگزینی اسکن صفحه از طریق عنوان‌های ترمینال OSC. عنوان attention_title باعث نمایش نقطه نارنجی در حالت عدم فوکوس می‌شود.

قابلیت‌های فنی و پایداری

  • پایداری نشست‌ها: یک نگهدارنده نشست (Session Holder) سبک در پس‌زمینه، شل‌ها و عامل‌ها را حتی پس از بستن رابط کاربری زنده نگه می‌دارد. این نگهدارنده همان باینری hrdx است و منابع بسیار کمی مصرف می‌کند. با اجرای مجدد، تمام محیط‌های کاری، تب‌ها و نسبت‌های تقسیم صفحه دقیقاً به همان حالت قبلی باز می‌گردند. اگر نشست واقعاً از بین رفته باشد (مثلاً بعد از ریبوت)، عامل‌ها آخرین گفتگو را از ذخیره‌ساز نشست خود بازیابی می‌کنند. پایداری از طریق یک فایل وضعیت مدیریت می‌شود (پیش‌فرض: state.json در مسیرهای ذکر شده برای هر سیستم‌عامل). اگر مسیر خالی باشد، پایداری غیرفعال می‌شود.
  • رابط برنامه‌نویسی Socket API: یک API مبتنی بر JSON روی یونیکس ساکت (پیش‌فرض hrdx.sock) فراهم شده که به اسکریپت‌های خارجی یا ادیتورها اجازه می‌دهد نشست را هدایت کنند. پروتکل مورد استفاده، JSON با جداکننده خط جدید (newline-delimited) است. شما می‌توانید به صورت برنامه‌نویسی محیط کاری بسازید، متن به عامل‌ها بفرستید و با متدهایی مثل pane.send_text و pane.wait منتظر بمانید تا عامل به حالت «بیکار» برسد. این API روی یونیکس ساکت ارائه می‌شود که در ویندوز نیز از طریق AF_UNIX به صورت بومی پشتیبانی می‌شود.
  • اجرای از راه دور: به دلیل استفاده از PTYهای واقعی، HRDX می‌تواند عامل‌هایی را که داخل کانتینرهای داکر، پادهای کوبرنتیز یا سرورهای SSH اجرا می‌شوند، مدیریت کند. کاربران می‌توانند Harnessهای سفارشی برای اجرای دستورات ssh -tt یا docker exec -it یا kubectl exec -it مستقیماً از انتخاب‌گر تعریف کنند. نگهدارنده نشست، پروسه کلاینت محلی را در طول ری‌استارت‌ها زنده نگه می‌دارد، هرچند اگر اتصال شبکه یا میزبان راه دور قطع شود، نمی‌تواند دوباره متصل شود. جزئیات گیت برای این محیط‌ها از مسیر محلی خوانده می‌شود، نه از سیستم فایل راه دور.

جزئیات Socket API

اسکریپت‌ها می‌توانند با مدل درخواست-پاسخ و شناسه‌های (ID) متناظر با hrdx.sock تعامل داشته باشند. برای مثال، ارسال {"id": "1", "method": "status"} وضعیت فعلی تمام محیط‌های کاری و پنل‌ها را برمی‌گرداند. API به گونه‌ای طراحی شده که هر درخواست توسط حلقه به‌روزرسانی خود TUI پاسخ داده شود تا تضمین شود API دقیقاً همان چیزی را می‌بیند که روی صفحه است.

متدهای موجود در API شامل موارد زیر است:

  • ping: بررسی زنده بودن.
  • workspace.create: باز کردن یک دایرکتوری به عنوان محیط کاری (نیازمند مسیر و عامل اختیاری).
  • workspace.close: بستن محیط کاری بر اساس نام یا مسیر.
  • pane.create: افزودن پنل (نیازمند محیط کاری، نوع عامل و نوع تقسیم: راست، پایین یا تب).
  • pane.send_text: تایپ در پنل (نیازمند ID پنل، متن و مقدار boolean اختیاری برای Enter).
  • pane.read: بازگرداندن صفحه قابل مشاهده پنل به صورت متن ساده.
  • pane.wait: توقف تا زمانی که عامل پنل بیکار یا مشغول شود (نیازمند وضعیت هدف و timeout_ms اختیاری).
  • pane.close: بستن پنل با ID.
  • events.subscribe: باز نگه داشتن اتصال برای دریافت رویدادهای زنده مانند pane.busy_changed یا workspace.created.

خطاها به صورت JSON با کدهایی مثل not_found ،invalid_params ،unknown_method ،timeout و error بازگردانده می‌شوند. ترکیب pane.wait و pane.send_text به توسعه‌دهندگان اجازه می‌دهد خط لوله‌های (Pipeline) ساده‌ای بسازند: به عامل دستور دهند، منتظر اتمام کار بمانند و نتیجه را بخوانند.

رابط کاربری و کنترل

ناوبری در این ابزار از سیستم پیشوند (Prefix) مشابه tmux با کلید ctrl+b استفاده می‌کند. کاربران می‌توانند پنل‌ها را به صورت افقی یا عمودی تقسیم کنند، محیط‌های کاری جدید با درخواست دایرکتوری بسازند و با استفاده از جست‌وجوی سریع (Fuzzy Finding) بین تب‌ها جابه‌جا شوند.

دستورات رایج پیشوند عبارت‌اند از:

  • c یا C: تقسیم صفحه به راست/پایین (باز کردن انتخاب‌گر عامل/شل).
  • a یا A: تقسیم صفحه با عامل پیش‌فرض به صورت مستقیم.
  • s یا S: تقسیم صفحه با یک پنل شل جدید (پشتیبانی از % ،\ ،| و / را نیز دارد).
  • w: ایجاد محیط کاری جدید با درخواست دایرکتوری و تکمیل خودکار (Tab Completion).
  • t: ایجاد تب جدید در محیط کاری فعلی.
  • n/p و [/]: جابه‌جایی بین تب‌ها و محیط‌های کاری. shift+tab بین پنل‌ها جابه‌جا می‌شود.
  • f: جست‌وجوی سریع (Fuzzy Finder) روی تمام محیط‌ها، تب‌ها و پنل‌ها.
  • r: تغییر نام پنل متمرکز.
  • m: باز کردن منوی زمینه (Context Menu) پنل.
  • =: یکسان‌سازی اندازه تمام تقسیمات.
  • u یا d (یا pgup/pgdown): اسکرول تاریخچه پنل متمرکز.
  • esc یا G: بازگشت به خروجی زنده و پاک کردن انتخاب.
  • ,: باز کردن پنجره تنظیمات.
  • x: بستن پنل (پنل مجاور جای آن را می‌گیرد).
  • X: بستن محیط کاری.
  • q: خروج.

کلیدهای پیشوند از طریق فایل keys.json قابل تغییر هستند. حتی اکشن prefix می‌تواند خودِ کلید ctrl+b را تغییر دهد. رابط کاربری از طریق فایل‌های تم JSON کاملاً قابل شخصی‌سازی است و اجازه می‌دهد کاربران رنگ‌های ANSI 256 یا کدهای Hex را برای رنگ‌های تاکیدی (Accents) و پس‌زمینه تعریف کنند. تم‌ها در دایرکتوری themes/ ذخیره شده و از طریق پنجره تنظیمات فوراً اعمال می‌شوند.

جزئیات تم و اعلان‌ها

تم‌ها از یک ساختار JSON استفاده می‌کنند که نقش‌های خاصی را تعریف می‌کند:

  • accent: فریم‌های پنل متمرکز، هایلایت‌ها و لوگو.
  • alt: نشان (Badge) پیشوند و شمارنده پشت نوار کناری.
  • muted: متن‌های ثانویه و نام پنل‌های بیکار.
  • faint: لبه‌های پنل غیرفعال و جداکننده‌های نوار کناری.
  • good: نقاط در حال اجرا و نشان‌های ورودی.
  • busy: اسپینرهای مشغول و نشانگرهای کار تکمیل شده.
  • attention: نقطه نارنجی برای وظایف تکمیل شده در حالت عدم فوکوس.
  • bad: خطاها و نقاط خروجی (Exited).
  • bar_bg / bar_fg: رنگ‌های نوار هدر و فوتر.
  • ink: متن روی پس‌زمینه‌های تاکیدی.

اعلان‌ها بدون نیاز به دیمون‌های سیستمی مدیریت می‌شوند. HRDX از زنگ ترمینال (Terminal Bell) برای فعال کردن نشانگرهای توجه بومی سیستم‌عامل استفاده می‌کند؛ مثلاً پرش آیکون در Dock در macOS، نشانگر فوریت (Urgency Hint) در لینوکس، یا چشمک‌زن در Taskbar در Windows Terminal (بسته به تنظیم bellStyle). کاربران همچنین می‌توانند فایل‌های صوتی خود را از طریق پیکربندی sounds.json تعریف کنند.

در ویندوز، فقط فایل‌های WAV از طریق SoundPlayer پاورشل پشتیبانی می‌شوند؛ در macOS از afplay و در لینوکس از paplay/aplay استفاده می‌شود. فایل‌های صوتی مفقود در فوتر گزارش شده و نادیده گرفته می‌شوند.

تحلیل: تغییر در رابط کاربری عامل‌ها

HRDX نشان‌دهنده یک تغییر در نحوه درک ما از «IDE هوش مصنوعی» است. به جای انتقال عامل به یک GUI اختصاصی، HRDX محیط گرافیکی را به دور محیط بومی عامل می‌برد. با تمرکز بر PTY به جای یک پوشش API، از باگ‌های رایج «شناسایی قابلیت» که در آن TUIها در داخل یک مالتی‌پلکسر به درستی رندر نمی‌شوند، جلوگیری می‌کند.

برای یک توسعه‌دهنده حرفه‌ای، این به معنای کاهش شدید هزینه «تغییر زمینه» (Context Switch) است. دیگر لازم نیست به خاطر بسپارید کدام تب در حال اجرای عامل تست و کدام در حال اجرای عامل بازنویسی است؛ نوار کناری یک نقشه بصری و دائمی از کل وضعیت عامل‌محور یک پروژه ارائه می‌دهد.

نصب و اجرا

کاربران می‌توانند ابزار را از طریق curl -fsSL https://www.hrdx.dev/install.sh | bash (مک/لینوکس) یا irm https://www.hrdx.dev/install.ps1 | iex (ویندوز ۱۰ ۱۸۰۹ به بالا / ۱۱ از طریق ConPTY) نصب کنند. به‌روزرسانی‌ها از طریق hrdx update انجام می‌شود.

برای اجرا، کاربران می‌توانند چندین پروژه را هم‌زمان با فلگ --cwd باز کنند:
hrdx --cwd ~/Developer/api --cwd ~/Developer/web

فلگ‌های اضافی کنترل دقیق‌تری ارائه می‌دهند:

  • --agent ID: تنظیم عامل پیش‌فرض (zot, pi, claude, codex). پیش‌فرض zot است.
  • --provider ID, --model ID, --reasoning LEVEL: پیکربندی‌های خاص برای پنل‌های zot.
  • --continue: بازیابی آخرین نشست هر پروژه.
  • --codex-bin, --claude-bin, --pi-bin, --zot-bin: تعیین مسیر باینری‌های خاص هر عامل.
  • --shell PATH: تعیین شل برای پنل‌های شل (پیش‌فرض $SHELL یا powershell.exe).
  • --state PATH: فایل وضعیت سفارشی برای پایداری محیط کاری (رشته خالی پایداری را غیرفعال می‌کند).
  • --fresh: نادیده گرفتن محیط‌های ذخیره شده برای شروع تازه.
  • --api: ارائه API کنترل روی یونیکس ساکت (پیش‌فرض فعال است، --api=false آن را غیرفعال می‌کند).
  • --persist=false: غیرفعال کردن نگهدارنده نشست، که باعث می‌شود پنل‌ها با بستن TUI بسته شوند.

در ویندوز، یک hrdx.exe بومی که از Git Bash اجرا شود، اگر مقدار SHELL یک مسیر مخصوص MSYS باشد، به %COMSPEC% باز می‌گردد. برای استفاده صریح از Git Bash، کاربران باید مسیر بومی را پاس دهند، مانند: hrdx --shell "C:/Program Files/Git/bin/bash.exe".

گام بعدی شما

  • اگر از ابزارهایی مثل Claude Code یا Aider استفاده می‌کنید، HRDX را نصب کنید تا از جابه‌جایی بین تب‌های ترمینال خلاص شوید.
  • فایل harness.json را برای ابزارهای داخلی شرکتتان تنظیم کنید تا وضعیت مشغول/بیکار بودن آن‌ها را بصری کنید.
  • از Socket API برای ساخت یک خط لوله (Pipeline) ساده که ابتدا از یک عامل کد می‌گیرد و سپس آن را به عامل تست می‌فرستد، استفاده کنید.

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

چرا این موضوع مهم است؟

این ابزار با استانداردسازی مدیریت نشست‌های عامل‌محور، بهره‌وری توسعه‌دهندگانی را که از چندین مدل زبانی هم‌زمان استفاده می‌کنند افزایش می‌دهد. اعتبار این رویکرد در استفاده از PTYهای واقعی است که مانع از شکست رندرینگ در ابزارهای TUI پیشرفته می‌شود.

تأثیر برای ایران

این ابزار به دلیل متن‌باز بودن و اجرا روی محیط‌های محلی، برای توسعه‌دهندگان ایرانی که با محدودیت‌های API یا تحریم‌های ابزارهای ابری روبرو هستند، راهکاری عالی برای مدیریت عامل‌های محلی (Local Agents) است.

·نگاه ما
تحریریه دات‌هوش

HRDX به جای تلاش برای جایگزینی IDEها با یک رابط گرافیکی پیچیده، محیط بومی عامل‌ها (یعنی ترمینال) را تقویت کرده است. این رویکرد نشان می‌دهد که آینده ابزارهای توسعه، نه در حذف ترمینال، بلکه در لایه‌بندی هوشمندانه آن برای مدیریت جریان‌های کاری موازی است. در واقع، HRDX هزینه «تغییر زمینه» (Context Switch) ذهنی برنامه‌نویس را با بصری کردن وضعیت عامل‌ها به شدت کاهش می‌دهد.

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.