التوفير
يتتبع PRECC التوفير المقدر في الرموز من كل اعتراض. استخدم precc savings لمعرفة مقدار الهدر الذي منعه PRECC.
ملخص سريع
$ 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 spent | cost.total_cost_usd | تكلفة الجلسة التراكمية المُبلَّغ عنها من قِبل Claude Code | نعم |
1.2M in/out | total_input_tokens + total_output_tokens | رموز الإدخال غير المخزنة مؤقتاً + الإخراج عبر الجلسة | نعم |
📊 last cmd: −1.2K | قياس PRECC لأحدث أمر Bash | التوفير الحقيقي المُقاس من إعادة تشغيل الأصلي | لا (يستمر عبر الجلسات) |
PRECC: 7 fixes | metrics.log | عدد التصحيحات في هذه الجلسة — العدد فقط، بدون تقدير زائف للرموز | نعم |
5.8ms avg | زمن استجابة PRECC hook p50 | الوقت الذي قضاه PRECC في معالجة كل استدعاء أداة | نعم |
bash 18% of total | post_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 إظهار الجزء المرئي فقط (غير المؤقت).
في الجلسات الطويلة التي تحتوي على إعادة قراءة كثيفة للملفات، قد تصل قراءات الذاكرة المؤقتة إلى 10 أضعاف عدد الرموز المرئية. لهذا السبب سيكون اقترانهما كنسبة مضللاً — يعرضهما PRECC كمقاطع مستقلة بدلاً من ذلك.
لماذا لا يحسب PRECC التكلفة
رقم التكلفة موثوق. يقرأ PRECC cost.total_cost_usd حرفياً من JSON الذي يضخّه Claude Code عبر stdin إلى أمر الحالة. وهو نفس الرقم الذي يخصمه Claude Code من اشتراكك/ميزانية استخدامك. يمكنك التحقق منه في أي وقت باستخدام الأمر المائل المدمج /cost — يجب أن يتطابقا.
ما الذي يقود التكلفة
بالنسبة لـ Claude Opus 4.6:
| Token type | Standard (≤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” الأحداث منذ بداية الجلسة المُحفوظة، التي تُكتب إلى ~/.local/share/precc/sessions/<session_id>.start عند أول تحديث للـ statusline في كل جلسة. هذا يجعل العدّ رتيباً — لا يمكن أن ينخفض في منتصف الجلسة حتى لو كان cost.total_duration_ms مفقوداً في تحديث معين.
لقطة العمر الكلي المحدّثة تلقائياً
يقرأ المقطع lifetime: من ~/.local/share/precc/.lifetime_summary.json، الذي يُعاد كتابته في كل قياس PostToolUse وفي كل استدعاء لـ precc savings. يقرأ المقطع this session: نفس ملف العمر لكنه يطرح خط أساس لكل جلسة محفوظ في أول تحديث لكل جلسة. لا حاجة للتحديث اليدوي — تتحدث الملفات تلقائياً.
إخفاء شريط الحالة
إذا كنت تفضل الاحتفاظ بشريط الحالة الحالي، فعيّن أمر statusLine الخاص بك في ~/.claude/settings.json. سيكتشف مثبّت PRECC القيمة المخصصة ويتركها كما هي في التحديثات اللاحقة.
لإخفاء سطر 📊 PRECC لكل تفاعل فقط (في additionalContext)، عيّن PRECC_QUIET=1 في بيئة الشِل لديك.
Related research
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-ctxwrapping) — 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.