ابزار Wake یک ابزار ضبط ترمینال است که به Claude Code امکان میدهد تا به تاریخچه جلسات توسعه دسترسی داشته باشد. این ابزار به توسعهدهندگان کمک میکند تا به جای کپی-پیست کردن پیامهای خطا یا توضیح آنچه که اجرا کردهاند، Claude Code بتواند تاریخچه کامل ترمینال آنها را مشاهده کند.
مشکل اصلی این بود که Claude Code نمیتوانست آنچه در ترمینال رخ میدهد را فراتر از دستوراتی که مستقیماً اجرا میکند، ببیند. شکستهای ساخت، پیامهای خطا و جلسات اشکالزدایی همگی نامرئی بودند و توسعهدهندگان مجبور به کپی-پیست کردن لاگها یا توضیح آنچه اتفاق افتاده بودند. این ابزار با هدف رفع این مشکل و کاهش جابجاییهای زمینه (context switching) ساخته شده است.
ابزار Wake از دو رویکرد استفاده میکند: هوکهای شل (shell hooks) که مرزهای دستور را فراهم میکنند اما خروجی واقعی (stdout/stderr) را از دست میدهند، و یک پوشش ترمینال شبه (pseudo-terminal wrapper) که هر بایت را در هر دو جهت ضبط میکند. Wake هر دو را ترکیب میکند، هوکهای شل ساختار را فراهم میکنند (شروع/پایان دستور، کدهای خروج) در حالی که لایه PTY خروجی را ضبط میکند. این دو بخش از طریق سوکتهای یونیکس با یکدیگر ارتباط برقرار میکنند.
این ابزار با استفاده از زبان Rust و کتابخانههای portable-pty برای مدیریت ترمینالهای شبه و tokio برای I/O ناهمزمان ساخته شده است. دادهها به صورت خام (با کدهای ANSI) و متن ساده ذخیره میشوند و خروجی به طور پیشفرض در حجم 5 مگابایت کوتاه میشود. تمام دادهها به صورت محلی در SQLite (~/.wake/) ذخیره میشوند. Wake همچنین از طریق پروتکل Model Context Protocol (MCP) ابزارهایی را برای لیست جلسات ترمینال اخیر، بازیابی دستورات از یک جلسه و جستجو در تاریخچه ترمینال ارائه میدهد.
مشاهده مطلب اصلی