Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

صرفه‌جویی

PRECC صرفه‌جویی تخمینی توکن‌ها را از هر رهگیری پیگیری می‌کند. از precc savings برای مشاهده میزان اتلاف جلوگیری‌شده استفاده کنید.

خلاصه سریع

$ precc savings
Session Token Savings
=====================
Total estimated savings: <span data-stat="session_tokens_saved">8,741</span> tokens

Breakdown:
  Pillar 1 (cd prepends):         <span data-stat="session_p1_tokens">3,204</span> tokens  (<span data-stat="session_p1_count">6</span> corrections)
  Pillar 4 (skill activations):   <span data-stat="session_p4_tokens">1,560</span> tokens  (<span data-stat="session_p4_count">4</span> activations)
  RTK rewrites:                   <span data-stat="session_rtk_tokens">2,749</span> tokens  (<span data-stat="session_rtk_count">11</span> rewrites)
  Lean-ctx wraps:                 <span data-stat="session_lean_tokens">1,228</span> tokens  (<span data-stat="session_lean_count">2</span> wraps)

جزئیات کامل (Pro)

$ precc savings --all
Session Token Savings (Detailed)
================================
Total estimated savings: <span data-stat="session_tokens_saved">8,741</span> tokens

Command-by-command:
  #  Time   Command                          Saving   Source
  1  09:12  cargo build                      534 tk   cd prepend (cargo-wrong-dir)
  2  09:14  cargo test                       534 tk   cd prepend (cargo-wrong-dir)
  3  09:15  git status                       412 tk   cd prepend (git-wrong-dir)
  4  09:18  npm install                      824 tk   cd prepend (npm-wrong-dir)
  5  09:22  find . -name "*.rs"              387 tk   RTK rewrite (output truncation)
  6  09:25  cat src/main.rs                  249 tk   RTK rewrite (lean-ctx wrap)
  7  09:31  cargo clippy                     534 tk   cd prepend (cargo-wrong-dir)
  ...

Pillar Breakdown:
  Pillar 1 (context resolution):   <span data-stat="session_p1_tokens">3,204</span> tokens  <span data-stat="session_p1_pct">36.6</span>%
  Pillar 2 (GDB debugging):            0 tokens   0.0%
  Pillar 3 (mined preventions):        0 tokens   0.0%
  Pillar 4 (automation skills):    <span data-stat="session_p4_tokens">1,560</span> tokens  <span data-stat="session_p4_pct">17.8</span>%
  RTK rewrites:                    <span data-stat="session_rtk_tokens">2,749</span> tokens  <span data-stat="session_rtk_pct">31.5</span>%
  Lean-ctx wraps:                  <span data-stat="session_lean_tokens">1,228</span> tokens  <span data-stat="session_lean_pct">14.1</span>%

نحوه تخمین صرفه‌جویی

هر نوع اصلاح دارای هزینه تخمینی توکن بر اساس آنچه بدون PRECC رخ می‌داد است:

نوع اصلاحصرفه‌جویی تخمینیدلیل
cd prepend~500 tokensخروجی خطا + استدلال Claude + تلاش مجدد
فعال‌سازی مهارت~400 tokensخروجی خطا + استدلال Claude + تلاش مجدد
RTK rewrite~250 tokensخروجی طولانی که Claude باید بخواند
Lean-ctx wrap~600 tokensمحتوای فایل بزرگ فشرده شده
پیشگیری استخراج‌شده~500 tokensالگوی شکست شناخته‌شده اجتناب شد

اینها تخمین‌های محتاطانه هستند. صرفه‌جویی واقعی اغلب بیشتر است زیرا استدلال Claude درباره خطاها می‌تواند طولانی باشد.

صرفه‌جویی تجمعی

صرفه‌جویی‌ها در پایگاه داده PRECC بین جلسات باقی می‌مانند. با گذشت زمان، می‌توانید تأثیر کلی را پیگیری کنید:

$ precc savings
Session Token Savings
=====================
Total estimated savings: <span data-stat="session_tokens_saved">8,741</span> tokens

Lifetime savings: <span data-stat="total_tokens_saved">142,389</span> tokens across <span data-stat="total_sessions">47</span> sessions

نوار وضعیت

پس از نصب، PRECC یک ورودی statusLine در ~/.claude/settings.json اضافه می‌کند تا نوار وضعیت Claude Code معیارهای زنده جلسه را نشان دهد:

$0.42 spent | 1.2M in/out | 📊 last cmd: −1.2K | PRECC: 7 fixes | 5.8ms avg | this session: 320 saved over 7 cmds (~$0.05) | lifetime: 8.9K saved over 217 cmds (~$2.85)

PRECC_LANG را تنظیم کنید تا برچسب‌ها به زبان شما نمایش داده شوند — به فصل بومی‌سازی مراجعه کنید.

هر بخش:

بخشمنبعمعنیبا راه‌اندازی مجدد جلسه بازنشانی می‌شود؟
$0.42 spentcost.total_cost_usdهزینه تجمعی جلسه گزارش‌شده توسط Claude Codeبله
1.2M in/outtotal_input_tokens + total_output_tokensتوکن‌های ورودی غیرکش‌شده + خروجی در طول جلسهبله
📊 last cmd: −1.2Kاندازه‌گیری PRECC برای آخرین دستور Bashصرفه‌جویی واقعی اندازه‌گیری‌شده از اجرای مجدد دستور اصلیخیر (در بین جلسات حفظ می‌شود)
PRECC: 7 fixesmetrics.logتعداد اصلاحات در این جلسه — فقط تعداد، بدون تخمین جعلی توکنبله
5.8ms avgتأخیر hook PRECC در p50زمانی که PRECC صرف پردازش هر فراخوانی ابزار کرده استبله
bash 18% of totalpost_observations.logسهم توکن‌های جلسه که از خروجی Bash می‌آیند — توضیح می‌دهد چرا صرفه‌جویی PRECC طبیعتاً کسری از کل هزینه است (PRECC فقط خروجی Bash را بهینه می‌کند)بله
this session: 320 saved over 7 cmds (~$0.05).lifetime_summary.json − baselineدلتای واقعی هر جلسه. هنگامی که دلتا صفر است پنهان می‌شود (شروع جلسه)بله (خط مبنا دوباره ضبط می‌شود)
lifetime: 8.9K saved over 217 cmds (~$2.85).lifetime_summary.jsonمجموع توکن‌های صرفه‌جویی‌شده و دستورات اندازه‌گیری مجدد از زمان نصب اولیه PRECC، به‌علاوه ارزش تقریبی به دلار با نرخ فعلی هر توکنخیر

بخش lifetime: در انتها قرار می‌گیرد تا اگر رابط Claude Code نوار را از لبه راست برش دهد، اولین موردی باشد که حذف می‌شود.

چرا هزینه و تعداد توکن قابل تقسیم نیستند

1.2M in/out نمایش‌داده‌شده مخرج کسری نیست که $0.42 spent را تولید کرده باشد. cost.total_cost_usd از Claude Code از تفکیک کامل توکن‌های API محاسبه می‌شود — ورودی پایه، خروجی، به‌علاوه خواندن کش و ایجاد کش. تعداد توکن‌های تجمعی کش در کل جلسه در طرح statusline ارائه نمی‌شود، بنابراین PRECC فقط می‌تواند بخش قابل‌مشاهده (غیرکش) را نمایش دهد.

در جلسات طولانی با خواندن مکرر فایل‌ها، خواندن کش می‌تواند ۱۰ برابر تعداد توکن قابل‌مشاهده باشد. به همین دلیل جفت‌کردن آن‌ها به‌صورت نسبت گمراه‌کننده خواهد بود — PRECC در عوض آن‌ها را به‌عنوان بخش‌های مستقل نمایش می‌دهد.

چرا PRECC هزینه را محاسبه نمی‌کند

عدد هزینه معتبر است. PRECC مقدار cost.total_cost_usd را به‌صورت کلمه‌به‌کلمه از JSON که Claude Code از طریق stdin به دستور وضعیت می‌فرستد می‌خواند. این همان عددی است که Claude Code از بودجه اشتراک/استفاده شما کسر می‌کند. می‌توانید هر زمان با دستور اسلش داخلی /cost آن را بررسی کنید — هر دو باید مطابق باشند.

چه چیزی هزینه را تعیین می‌کند

برای Claude Opus 4.6:

Token typeStandard (≤200k context)1M context tier
Input$15 / MTok$30 / MTok
Output$75 / MTok$150 / MTok
Cache write$18.75 / MTok$37.50 / MTok
Cache read$1.50 / MTok$3 / MTok

بزرگ‌ترین عوامل در جلسات طولانی معمولاً توکن‌های خروجی (گران‌ترین نوع در هر توکن، به‌ویژه در سطح زمینه 1M)، خواندن‌های مکرر کش (به‌تنهایی ارزان اما در طول چندین نوبت به‌سرعت انباشته می‌شوند) و ایجاد کش (یک‌بار به ازای هر خواندن فایل با نرخ ~1.25× نرخ پایه ورودی) هستند. PRECC با فشرده‌سازی خروجی Bash هزینه توکن‌های قابل‌مشاهده را کاهش می‌دهد (بخش 📊 last cmd: صرفه‌جویی به ازای هر دستور را نشان می‌دهد)، اما نمی‌تواند خواندن‌های کش از فایل‌هایی را که Claude قبلاً بارگذاری کرده کاهش دهد.

شمارش‌های پایدار جلسه

بخش “PRECC: N fixes” رویدادها را از شروع پایدارشده جلسه می‌شمارد که در اولین به‌روزرسانی statusline هر جلسه در ~/.local/share/precc/sessions/<session_id>.start نوشته می‌شود. این باعث می‌شود شمارش یکنواخت باشد — حتی اگر cost.total_duration_ms در یک به‌روزرسانی خاص وجود نداشته باشد، در میانه جلسه کاهش نمی‌یابد.

عکس فوری مادام‌العمر با به‌روزرسانی خودکار

بخش lifetime: فایل ~/.local/share/precc/.lifetime_summary.json را می‌خواند که در هر اندازه‌گیری PostToolUse و در هر فراخوانی precc savings بازنویسی می‌شود. بخش this session: همان فایل lifetime را می‌خواند اما یک خط پایه به‌ازای هر جلسه را که در اولین به‌روزرسانی هر جلسه پایدار شده، کسر می‌کند. نیازی به به‌روزرسانی دستی نیست — فایل‌ها خودشان به‌روز می‌شوند.

حذف نوار وضعیت

اگر ترجیح می‌دهید نوار وضعیت فعلی خود را نگه دارید، دستور statusLine خود را در ~/.claude/settings.json تنظیم کنید. نصب‌کننده PRECC مقدار سفارشی را تشخیص می‌دهد و در به‌روزرسانی‌های بعدی آن را دست‌نخورده باقی می‌گذارد.

برای حذف فقط خط 📊 PRECC در هر تعامل (در additionalContext)، PRECC_QUIET=1 را در محیط شل خود تنظیم کنید.

PRECC’s three savings mechanisms each have a counterpart in the recent literature. These are related work — the ideas PRECC’s design draws on. Their reported figures are their measurements, not PRECC’s: PRECC only ever quotes numbers measured on your own machine (see “measured, not estimated”, above).

  • Output/trajectory trimming (PRECC’s diet + bash-output compression) — Reducing Cost of LLM Agents with Trajectory Reduction (AgentDiet), FSE 2026, arXiv:2509.23586. Removes redundant/expired trajectory content post-hoc; reports −39.9–59.7% input tokens. PRECC applies the same idea pre-execution and deterministically (no extra LLM call).
  • Skills as programs (PRECC’s mined + builtin rewrite skills) — Harnessing LLM Agents with Skill Programs, arXiv:2605.17734. Frames reusable agent skills as executable program functions — the same analogy behind PRECC’s command-rewrite skills (a pattern → a deterministic rewrite).
  • Context compression (PRECC’s compress + lean-ctx wrapping) — Compress the Context, Keep the Commitments: A Formal Framework for Verifiable LLM Context Compression, arXiv:2605.17304. Recent work on compressing context without losing required information — the property PRECC’s deterministic, cache-stable rewrites aim to preserve.