ساخت یک خط وضعیت سفارشی برای Claude Code

من بیشتر روزم را در Claude Code می‌گذرانم. این ابزار مانند برنامه‌نویس و بازبین من عمل می‌کند.

بعد از چند روز، متوجه مشکلی شدم. نمی‌دانستم چقدر توکن مصرف کرده‌ام. هزینه جلسه (session) را نمی‌دانستم. نمی‌دانستم چقدر از کانتکست (context) باقی مانده است.

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

بنابراین، یک خط وضعیت سفارشی ساختم.

من روی سه مورد اصلی تمرکز کردم:

  • هزینه جلسه: Claude Opus رایگان نیست. مشاهده لحظه‌ای هزینه به من کمک می‌کند تصمیم بگیرم چه زمانی یک تسک را تمام کنم.
  • پنجره کانتکست (Context Window): می‌خواهم درصد کانتکست باقی‌مانده را ببینم. این به من کمک می‌کند تصمیم بگیرم چه زمانی یک جلسه جدید را شروع کنم.
  • اطلاعات پروژه: نیاز دارم دایرکتوری فعلی، شاخه (branch) گیت و مدلی که استفاده می‌کنم را ببینم.

API خط وضعیت ساده است. شما Claude Code را به یک اسکریپت شل (shell script) متصل می‌کنید. این ابزار یک سند JSON را از طریق stdin به اسکریپت شما می‌فرستد. اسکریپت شما نتیجه را در stdout چاپ می‌کند.

این روش از هیچ SDK یا فریم‌ورکی استفاده نمی‌کند. فقط از stdin و stdout استفاده می‌کند. به صورت محلی اجرا می‌شود و هیچ هزینه‌ای ندارد.

نحوه راه‌اندازی:

  1. یک اسکریپت در مسیر ~/.claude/statusline.sh ایجاد کنید.
  2. از jq برای تجزیه داده‌های JSON استفاده کنید.
  3. خروجی را طوری فرمت کنید که مسیر، شاخه، مدل، توکن‌ها و هزینه را نشان دهد.
  4. اسکریپت را به فایل ~/.claude/settings.json خود اضافه کنید.

می‌توانید بازه زمانی به‌روزرسانی را روی ۱ ثانیه تنظیم کنید. این کار یک داشبورد لحظه‌ای به شما می‌دهد.

اگر نمی‌خواهید کدنویسی کنید، Claude Code یک میان‌بر دارد. این دستور را اجرا کنید: /statusline show me model, branch, token counts, context percentage, and cost

این دستور به طور خودکار یک خط برای شما ایجاد می‌کند.

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

منبع: https://dev.to/ndrone/building-a-custom-status-line-for-claude-code-5822

انجمن یادگیری اختیاری: https://t.me/GyaanSetuAi