تصور کنید یک بازسازی گسترده در کدتان به جریان افتاده و شما دور از میز کار هستید، اما میخواهید بدانید آیا عامل هوش مصنوعی در حال سوزاندن بودجه شماست یا خیر. در ۲۰ ژوئن ۲۰۲۶، توسعهدهندهای این خلأ را با معرفی Claude Pulse پر کرد؛ داشبوردی محلی که محیط متنی (CLI) را به یک مرکز فرماندهی بصری تبدیل میکند تا کاربران بتوانند اجرای ابزارها را مستقیماً از طریق اعلانهای موبایل تایید کنند.
همانطور که در پوشش پیشین ما دربارهی مقیاسبندی Claude Code در مهندسی برنامهنویسی اشاره کردیم، اصلیترین چالش کاربران، «جعبه سیاه» مصرف توکنها و اجبار به حضور در ترمینال برای تایید عملیات است. در حالی که محیط CLI قدرتمند است، اما لایهای برای نظارت بصری دائمی ندارد. Claude Pulse با تبدیل سیستم فایل محلی به یک پایگاهداده، این شکاف را پر میکند. این رویکرد در راستای تکاملی است که ابزارهای توسعه را از محیطهای سنتی دور میکند، مشابه آنچه در سازوکار vibeOS برای حذف محیطهای برنامهنویسی مشاهده کردیم تا تجربه ساخت اپلیکیشنها یکپارچهتر شود.
معماری بدون وابستگی
به نقل از مخزن گیتهاب این پروژه، Pulse بهصورت «فقط خواندنی» عمل میکند. این ابزار بر حریم خصوصی شدید تمرکز دارد: بدون نیاز به حساب کاربری، بدون تلهمتری و بدون تماسهای شبکهای. این سامانه لاگهای جلسات ذخیرهشده در مسیر ~/.claude/projects/ را به عنوان فایلهای JSONL میخواند و بهروزرسانیهای زنده را از طریق Server-Sent Events (SSE) به مرورگر میفرستد. چون این ابزار روی 127.0.0.1 اجرا میشود و هیچ نیازی به اکانت یا تلهمتری ندارد، هیچ دادهای هرگز از دستگاه محلی خارج نمیشود.

ردیابی لحظهای هزینهها و زمینه
یکی از حیاتیترین قابلیتها، شفافسازی هزینههای معادل API است. Pulse توکنهای ورودی، خروجی و کش را بهصورت ساعتی، روزانه و هفتگی تجمیع میکند.
- نظارت بر بودجه: کاربران میتوانند بودجههای سفارشی برای بازههای زمانی مختلف (مثلاً پنجساعته، روزانه یا هفتگی) تعریف کنند.
- هشارهای فعال: سیستم زمانی یک هشدار به گوشی میفرستد که یک پنجره زمانی متحرک (Rolling Window) به ۸۰٪ و سپس ۱۰۰٪ آن حد نصاب برسد.
- شفافیت زمینه: داشبورد میزان پر شدن پنجره زمینه (Context Window) — که مثل میز کاری است که جا برای چند ورق دارد و نه کل کتابخانه — را در لحظه نمایش میدهد.
- مقایسه مدلها: هزینهها بر اساس مدل و پروژه ردیابی میشوند تا دید شفافی از الگوهای مصرف توکن به دست آید.
طبق مستندات، از آنجا که Anthropic محدودیتهای دقیق اشتراک را منتشر نمیکند، Pulse از قیمتهای عمومی API به عنوان یک پروکسی برای ردیابی استفاده میکند. پیشفرضهای "pro", "max5" و "max20" نقاط شروعی هستند که کاربران میتوانند بر اساس محدودیتهای مشاهدهشده خود آنها را تنظیم کنند. همچنین میتوان در فایل تنظیمات، مقدار contextLimit (مثلاً ۲۰۰,۰۰۰ توکن) و idleMinutes (مثلاً ۱۰ دقیقه) را برای دقت بیشتر در ردیابی فعالیتهای جلسه تغییر داد.
تاییدات موبایلی و پل ntfy
دیگر نیازی نیست برای تایید فراخوانی ابزارها به کیبورد زنجیر شده باشید. Pulse با اتصال سه هوک (Hook) خاص در ~/.claude/settings.json (یعنی Notification، Stop و PreToolUse)، درخواستها را رهگیری میکند.
- اعلانهای Push: با استفاده از اپلیکیشن رایگان ntfy، Pulse اعلانهایی با دکمههای «اجازه بده» (Allow)، «اجازه به همه» (Allow all) و «رد کن» (Deny) میفرستد. این سازوکار از هر جایی، حتی با استفاده از دادههای تلفنی (Cellular Data) و بدون نیاز به تنظیم Wi-Fi، پیکربندی IP یا باز کردن پورتها کار میکند.
- اجرای راه دور: با ضربه زدن روی یک دکمه، پاسخ از طریق یک موضوع (Topic) خصوصی ntfy به نمونه محلی بازمیگردد و سپس به Claude Code فرمان میدهد تا عملیات را ادامه دهد.
- نردههای ایمنی: Pulse تنها زمانی پاسخ را میپذیرد که واقعاً منتظر همان درخواست خاص باشد؛ این یعنی یک اعلان قدیمی (Stale) نمیتواند بهطور تصادفی یک اقدام جدید را تایید کند.
- دسترسی شبکه محلی: اگر
bindLan: trueفعال باشد، کاربران در یک Wi-Fi میتوانند از صفحه اختصاصی/phoneبرای مشاهده جزئیات بیشتر استفاده کنند، که شامل دکمه توقف/شروع (Pause/Resume) برای بازداشتن Claude از اجرای ابزارهای بیشتر است.

بازیابی جلسه و جستوجو
کرش کردن ترمینالها اغلب باعث از دست رفتن زمینه فعال توسعهدهندگان میشود. Pulse با ثبت خودکار عکسبرداری (Snapshot) از هر جلسه فعال در مسیر ~/.claude-pulse/exports/snapshots/ از این اتفاق جلوگیری میکند. این وضعیت تنها هنگام تغییر جلسه بازنویسی میشود تا آخرین حالت همیشه روی دیسک باشد. کاربران میتوانند این قابلیت را با قرار دادن snapshotMinutes روی ۰ در فایل ~/.claude-pulse.json غیرفعال کنند.
- دستور Recover: با اجرای یک دستور ساده
claude-pulse recoverمیتوان آخرین جلسه را به صورت یک متن خواندنی Markdown بازگرداند. - بازیابی منعطف: کاربر میتواند با دستور
claude-pulse recover 2جلسه قبلی یا با دستورclaude-pulse recover <id>یک جلسه خاص با شناسه مشخص را هدف قرار دهد. - فشردهسازی دادهها: این فرآیند بسیار بهینه است؛ یک لاگ JSONL با حجم ۱۵ مگابایت به یک فایل Markdown سبک حدود ۱۸۰ کیلوبایتی تبدیل شده و در مسیر
~/.claude-pulse/exports/ذخیره میشود. - خروجی کلی: دستور
claude-pulse export-allتمام جلسات را در یک فایل gzipped markdown کوچک ذخیره میکند. متناوباً، کاربران میتوانند از دکمه "download all history" در صفحه Sessions استفاده کنند.
علاوه بر این، داشبورد دارای جستوجوی متنی کامل (Full-text search) در تمامی جلسات ذخیرهشده روی دیسک است. با یک کلیک، کاربر از نتیجه جستوجو مستقیماً به متن جلسه هدایت میشود. این قابلیت در هر دو محیط دسکتاپ و موبایل کار میکند و به توسعهدهندگان اجازه میدهد دقیقاً به بخشی از تاریخچه بروند که یک تغییر منطقی یا رفع باگ خاص در آن رخ داده است. این قدرت تحلیل تاریخچه، یادآور روشهای پیشرفتهای است که توسعهدهندگان برای استخراج اطلاعات از کدهای پیچیده به کار میبرند، مانند رمزگشایی از APIهای پنهان DuckDB با استفاده از GitHits در محیط Claude Code.
تجربه «دفتر کار محیطی»
برای کسانی که نمایشگر دوم دارند، Pulse حالت Ambient Office را ارائه میدهد. در این حالت تمامصفحه، یک نماد (Mascot) بصری نشان میدهد که آیا Claude در حال کار است، استراحت میکند یا منتظر ورودی کاربر است، به همراه تخمینی از زمان باقیمانده (ETA). این روشی آرام و جذاب برای نظارت بر پیشرفت هوش مصنوعی است بدون اینکه مجبور باشید به یک ترمینال در حال اسکرول خیره شوید.

پیادهسازی فنی و هوکها
Pulse به عنوان یک لایه میانافزار (Middleware) عمل میکند. Claude Code لاگهای JSONL را روی دیسک مینویسد؛ Pulse اینها را بهصورت «فقط خواندنی» میخواند و برای جلوگیری از تجزیه مجدد فایلهای تغییرنیافته، آنها را بر اساس زمان تغییر (Modification Time) کش میکند و دادهها را روی پورت ۴۳۱۷ سرو میکند.
برای فعالسازی اعلانها و تاییدات، کاربر باید هوکها را نصب کند. این کار از طریق دستور claude-pulse install-hooks انجام میشود که فایل ~/.claude/settings.json را اصلاح میکند. این دستور امن است زیرا ابتدا از تنظیمات پشتیبان میگیرد و سپس موارد را بدون ایجاد تکرار ادغام میکند.
- هوک Notification: هنگام نیاز به توجه کاربر، یک بنر و اعلان دسکتاپ فعال میکند. این هوک رویداد Notification را به اسکریپت
notify-hook.jsمتصل میکند. - هوک Stop: وقتی یک نوبت به پایان میرسد (با تأخیر یا Debounce ۳۰ ثانیهای برای جلوگیری از اسپام)، از طریق
stop-hook.jsاعلان میفرستد. - هوک PreToolUse: فراخوانی ابزارها را از طریق
permission-hook.jsرهگیری میکند تا کارت تایید (Approval card) نمایش داده شود.
ایمنی استاندارد در سیستم تعبیه شده است: ابزارهای «فقط خواندنی» بهطور خودکار عبور میکنند. اگر Pulse اجرا نشود یا کاربر در بازه approvalTimeoutMs (پیشفرض ۶۰ ثانیه) پاسخ ندهد، سیستم به پرامپت عادی ترمینال بازمیگردد. در صورتی که کاربر داشبورد را نادیده بگیرد، هیچ چیزی در روند عادی کار مختل نمیشود.
راهاندازی و پیشنیازها
نصب این ابزار به Node 18+ نیاز دارد. کاربران میتوانند فوراً با دستور npx pulse-for-claude-code آن را اجرا کنند یا مخزن گیتهاب را کلون کرده (https://github.com/nikitadoudikov/claude-pulse.git) و دستور node bin/cli.js را در دایرکتوری اجرا نمایند. هر دو روش داشبورد را در آدرس http://127.0.0.1:4317 باز میکنند.
دستورات کنترلی:
claude-pulse start: فرآیند را بهصورت جداگانه (Detached) اجرا میکند تا با بستن ترمینال متوقف نشود.claude-pulse status: وضعیت اجرای فعلی داشبورد را بررسی میکند.claude-pulse stop: نمونه فعال را میبندد.claude-pulse restart: سرویس را متوقف و دوباره اجرا میکند.
در macOS، کاربران میتوانند دستور claude-pulse install-service را اجرا کنند تا Pulse هنگام ورود به سیستم (Login) بهطور خودکار اجرا شود و در صورت کرش کردن، دوباره اسپان شود. برای حذف این سرویس از claude-pulse uninstall-service استفاده کنید.
برای فعالسازی اعلانهای موبایل، کاربر باید یک ntfyTopic تصادفی (مثلاً "ntfyTopic": "claude-pulse-9f3a7c") در فایل پیکربندی ~/.claude-pulse.json تعریف کند. گزینههای اضافی شامل --port برای تغییر پورت پیشفرض ۴۳۱۷ و --no-open برای جلوگیری از باز شدن خودکار مرورگر است.
امنیت و حریم خصوصی
Pulse رویکرد «ابتدا محلی» (Local-first) دارد و استفاده از آن اختیاری است. بهطور پیشفرض فقط به 127.0.0.1 متصل میشود و هیچ تماس خروجی (Outbound call) ندارد. تمامی وضعیتهای زمان اجرا، توکنهای دستگاه و پیکربندیها در دایرکتوری خانگی تحت مسیر ~/.claude-pulse/ ذخیره میشوند و هرگز در جایی کامیت یا ارسال نمیشوند.
دو قابلیت اختیاری وجود دارند که این پروفایل حریم خصوصی را تغییر میدهند:
- Push موبایل: مسیریابی از طریق
ntfyTopicاز رله عمومیntfy.shمیگذرد. چون هر کسی با داشتن نام موضوع (Topic) میتواند اعلانها را بخواند، توصیه میشود از نامهای طولانی و تصادفی استفاده کنید یا ntfy را بهصورت شخصی (Self-host) میزبانی کنید. - دسترسی LAN: فعال کردن
bindLan: trueسرور را برای کل شبکه محلی باز میکند. این اجازه میدهد دستگاههای دیگر داشبورد و تاریخچهها را بخوانند، بنابراین باید تنها در شبکههای مورد اعتماد فعال شود. لازم به ذکر است که این گزینه برای تاییدات ntfy ضروری نیست.
این تغییر از CLI خالص به یک ساختار ترکیبی GUI/Mobile، رابطه توسعهدهنده با عاملهای هوش مصنوعی را تغییر میدهد. با جداسازی «اجرا» (ترمینال) از «نظارت و تایید» (داشبورد/گوشی)، عامل به یک فرآیند پسزمینه تبدیل میشود، نه وظیفهای در پیشزمینه که نیاز به توجه دائمی دارد.
برای یک مهندس، این یعنی «هزینه کنجکاوی» (Cost of Curiosity) کاهش مییابد. میتوانید یک بازسازی پیچیده را به عامل بسپارید و در حالی که دور از میز هستید، وقتی یک فراخوانی ابزار حساس نیاز به تایید انسانی دارد، روی مچ دست خود (Smartwatch) یا گوشی اعلان دریافت کنید.
برای شروع بهینهسازی هزینههای عامل خود، داشبورد را اجرا کرده و از طریق صفحه تحلیل هزینهها شناسایی کنید که کدام پروژهها بیشترین توکنها را میسوزانند.
گام بعدی شما
- نصب Pulse و بررسی صفحه تحلیل هزینهها برای شناسایی پروژههایی که بیشترین توکن را مصرف میکنند.
- پیکربندی یک
ntfyTopicمنحصربهفرد برای تایید عملیات از راه دور. - استفاده از دستور
recoverبرای تبدیل جلسات طولانی به Markdown و مستندسازی تغییرات کد.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو