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

تحلیل JSONL: حذف هزینه‌های پیش‌بینی‌نشده در محیط ترمینال با Claude Pulse

·۳۱ خرداد ۱۴۰۵۸ دقیقه مطالعه۱ بازدید
داشبورد محلی بدون وابستگی برای Claude Code: ردیابی توکن زنده، بازیابی نشست، جستجوی متنی و تأیید ابزار از موبایل.
داشبورد محلی بدون وابستگی برای Claude Code: ردیابی توکن زنده، بازیابی نشست، جستجوی متنی و تأیید ابزار از موبایل.
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

نخستین پیاده‌سازی عملی از یک پل تایید (Approval Bridge) بین محیط CLI و موبایل برای Claude Code — که اجازه می‌دهد تایید اجرای ابزارها از طریق Push-Notification و خارج از شبکه Wi-Fi محلی رخ دهد.

تصور کنید یک بازسازی گسترده در کدتان به جریان افتاده و شما دور از میز کار هستید، اما می‌خواهید بدانید آیا عامل هوش مصنوعی در حال سوزاندن بودجه شماست یا خیر. در ۲۰ ژوئن ۲۰۲۶، توسعه‌دهنده‌ای این خلأ را با معرفی Claude Pulse پر کرد؛ داشبوردی محلی که محیط متنی (CLI) را به یک مرکز فرماندهی بصری تبدیل می‌کند تا کاربران بتوانند اجرای ابزارها را مستقیماً از طریق اعلان‌های موبایل تایید کنند.

همان‌طور که در پوشش پیشین ما درباره‌ی مقیاس‌بندی Claude Code در مهندسی برنامه‌نویسی اشاره کردیم، اصلی‌ترین چالش کاربران، «جعبه سیاه» مصرف توکن‌ها و اجبار به حضور در ترمینال برای تایید عملیات است. در حالی که محیط CLI قدرتمند است، اما لایه‌ای برای نظارت بصری دائمی ندارد. Claude Pulse با تبدیل سیستم فایل محلی به یک پایگاه‌داده، این شکاف را پر می‌کند. این رویکرد در راستای تکاملی است که ابزارهای توسعه را از محیط‌های سنتی دور می‌کند، مشابه آنچه در سازوکار vibeOS برای حذف محیط‌های برنامه‌نویسی مشاهده کردیم تا تجربه ساخت اپلیکیشن‌ها یکپارچه‌تر شود.

معماری بدون وابستگی

به نقل از مخزن گیت‌هاب این پروژه، Pulse به‌صورت «فقط خواندنی» عمل می‌کند. این ابزار بر حریم خصوصی شدید تمرکز دارد: بدون نیاز به حساب کاربری، بدون تله‌متری و بدون تماس‌های شبکه‌ای. این سامانه لاگ‌های جلسات ذخیره‌شده در مسیر ~/.claude/projects/ را به عنوان فایل‌های JSONL می‌خواند و به‌روزرسانی‌های زنده را از طریق Server-Sent Events (SSE) به مرورگر می‌فرستد. چون این ابزار روی 127.0.0.1 اجرا می‌شود و هیچ نیازی به اکانت یا تله‌متری ندارد، هیچ داده‌ای هرگز از دستگاه محلی خارج نمی‌شود.

داشبورد محلی بدون وابستگی برای Claude Code: ردیابی توکن زنده، بازیابی نشست، جستجوی متنی و تأیید ابزار از موبایل.

ردیابی لحظه‌ای هزینه‌ها و زمینه

یکی از حیاتی‌ترین قابلیت‌ها، شفاف‌سازی هزینه‌های معادل 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 از اجرای ابزارهای بیشتر است.

داشبورد محلی بدون وابستگی برای Claude Code: ردیابی توکن، بازیابی نشست، جستجوی متنی و تأیید ابزار از موبایل.

بازیابی جلسه و جست‌وجو

کرش کردن ترمینال‌ها اغلب باعث از دست رفتن زمینه فعال توسعه‌دهندگان می‌شود. 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). این روشی آرام و جذاب برای نظارت بر پیشرفت هوش مصنوعی است بدون اینکه مجبور باشید به یک ترمینال در حال اسکرول خیره شوید.

داشبورد محلی بدون وابستگی برای Claude Code: ردیابی توکن، بازیابی نشست، جستجوی متنی و تأیید ابزار از موبایل.

پیاده‌سازی فنی و هوک‌ها

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 مراجعه کنید.

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

این ابزار با کاهش وابستگی کاربر به ترمینال و فراهم کردن شفافیت هزینه، ریسک مالی و فنی استفاده از عامل‌های هوش مصنوعی را پایین می‌آورد. اعتبار این راهکار در معماری Local-first آن است که اجازه می‌دهد توسعه‌دهندگان بدون نگرانی از نشت داده‌های حساس، کنترل کامل کنسول را در اختیار بگیرند.

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

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

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

جداسازی لایه‌ی نظارت از لایه‌ی اجرا، گامی عملی در جهت تبدیل AI Agentها از «ابزارهای تعاملی» به «همکارهای پس‌زمینه» است. این رویکرد نشان می‌دهد که گلوگاه پذیرش عامل‌های هوش مصنوعی در محیط‌های عملیاتی، نه فقط دقت مدل، بلکه «اعتماد و کنترل‌پذیری» در مقیاس است. مدل‌های استدلالی هرچه مستقل‌تر شوند، نیاز به رابط‌های مدیریتی غیرمتنی (Out-of-band) برای نظارت بر رفتار آن‌ها بیشتر می‌شود.

منابع

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

گفتگو

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

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

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

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

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

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

دات‌هوش

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

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