Grove: مدیر ورکتریهای گیت و سرورهای dev
خلاصهٔ کاملتر
Grove یک ابزار خط فرمان (نوشتهشده به Go) برای کسیه که همزمان روی چند برنچ کار میکنه. مدلش worktree-firstـه: بهجای اینکه مدام برنچها رو تو یک دایرکتوری چکاوت کنی، هر برنچ ورکتری خودش رو داره — و Grove هم مدیریت ورکتریها، هم راهانداختن سرورهای dev اونها، هم آدرسهای تمیز localhost رو یکجا جمع کرده.
سمت گیت، grove clone مخزن رو با ساختار مناسب ورکتری کلون میکنه (یک پوشهٔ .bare مشترک و یک ورکتری برای برنچ اصلی). بعدش با grove new ورکتری تازه میسازی، با grove switch تو تب ترمینال جدید میری توش، با grove discover ورکتریهای پراکنده رو پیدا میکنی و با grove prune قدیمیها رو پاک میکنی.
grove new feature-auth
grove switch myapp-feature-auth
grove startسمت سرور، grove start هر دستوری رو قبول میکنه — Rails، Node، Python، Go یا هر چیز دیگه. جذابترین تیکهاش تخصیص پورت بر پایهٔ هشه: یک ورکتری مشخص همیشه همون پورت قبلی رو میگیره، پس آدرسی که بوکمارک کردی فردا هم همون آدرسه. grove ls وضعیت همه رو نشون میده، grove logs -f لاگها رو با هایلایت سینتکس دنبال میکنه و grove attach یک سروری رو که خودت جداگونه بالا آوردی به رجیستری اضافه میکنه. health check و توقف خودکار سرورهای بیکار هم داره.
دو حالت آدرسدهی داره: حالت پیشفرض port که همون ساده و بدون کانفیگه، و حالت subdomain که آدرسهایی مثل میسازه — این یکی به یک ریورسپروکسی (grove proxy start) نیاز داره و HTTPS رو با گواهی محلی راه میندازه.
برای دیدن وضعیت، هم داشبورد ترمینالی (TUI) با آپدیت لحظهای داره، هم داشبورد وب روی پورت ۳۰۹۹ با WebSocket، هم انتخابگر fuzzy شبیه fzf، و هم یک اپ منوبار نیتیو مک با جستوجو و نوتیفیکیشن. با grove ls --full وضعیت CI و لینک PR هر ورکتری رو هم کنار اسمش میبینی.
بخشی که این روزها جذابتره، سمت ایجنتهاست: grove agents سشنهای فعال Claude Code رو بین ورکتریها پیدا میکنه و نشون میده کجا ایجنت مشغوله، و grove review صف بازبینی میسازه از ورکتریهایی که تغییر کامیتنشده دارن. خود Grove هم با grove mcp install بهعنوان سرور MCP به Claude Code وصل میشه تا ایجنت مستقیم سرورها رو ببینه و بالا و پایین کنه. هوکهای اختیاریش هم ایجنت رو هل میدن که بهجای دستور خام git worktree add از grove new استفاده کنه.
پیکربندی هم دو لایهست: یک .grove.yaml تو ریشهٔ پروژه برای دستور اجرا، پورت، متغیرهای محیطی، health check و هوکهای قبل/بعد از استارت؛ و یک کانفیگ سراسری برای حالت آدرس، بازهٔ پورتها و نوتیفیکیشنها. تقریباً همهٔ فرمانها هم --json دارن که خروجی ماشینخوان برای اسکریپتنویسی میده.
نکات کلیدی:
- Grove ورکتریهای گیت و سرورهای dev اونها رو یکجا مدیریت میکنه (CLI + TUI + منوبار مک)
- پورت هر ورکتری بر اساس هش تخصیص داده میشه، پس آدرس سرور همیشه ثابت میمونه
- حالت subdomain آدرسهایی مثل با HTTPS محلی میده
- grove agents سشنهای فعال Claude Code رو بین ورکتریها پیدا میکنه
- با grove mcp install خودش سرور MCP میشه و ایجنت میتونه سرورها رو مدیریت کنه




