المحتويات
- 1. ما تعرضه الشاشات الرسمية، وما لا تعرضه
- 2. الجواب في سجلات المحادثة على جهازك
- 3. اجمعها كما هي تحصل على قرابة الضعف: أربعة أفخاخ
- 4. سكربت التجميع
- 5. القياس: جلسة واحدة من 29 استهلكت قرابة الثلث
- 6. كيف تقرأ الأرقام، وأين تتوقّف دلالتها
- 7. لتواصل المتابعة من الآن فصاعدًا، استخدم OpenTelemetry
- الأسئلة الشائعة
شغّل عدّة جلسات من Claude Code بالتوازي، وستجد حدّك الأسبوعي ينفد أسرع ممّا تتوقّع. تريد أن تعرف أيّ جلسة تلتهمه، لكن فتح /usage لن يخبرك.
الجواب المختصر: حتى سبتمبر 2026، لا توجد شاشة رسمية تعرض حصّة كل جلسة من استهلاكك. يعطيك /usage أرقام الجلسة الحالية، إضافةً إلى استهلاك الخطة كلها مقسّمًا بنسب مئوية بحسب المهارة والوكيل الفرعي والإضافة وخادم MCP. فإن أردته بحسب الجلسة، فعليك أن تجمع بنفسك سجلات المحادثة المحفوظة على جهازك.
لكنّ عدّ تلك السجلات بسذاجة يوقعك في الخطأ. فحين قستُ سجلات آخر 7 أيام على جهازي، بلغ مجموع الأسطر كما هي 2.06 ضعف القيمة الصحيحة. والأسوأ أنّ حجم ذلك الخطأ تفاوت، حتى بين أثقل 12 جلسة وحدها، من 1.30 إلى 3.02 ضعف، فتبدّل الترتيب. يتناول هذا المقال ما تعرضه الشاشات الرسمية فعلًا، والطريقة الصحيحة للعدّ، وسكربت تجميع من نحو 50 سطرًا، وما خرجتُ به من القياس.
أيّ الجلسات استهلكت آخر 7 أيام
29 جلسة على جهازي، موزونة بحسب أسعار API. الشاشات الرسمية لا تعرض هذا التفصيل
المصدر: قياساتي الخاصة (آخر 7 أيام حتى 15 سبتمبر 2026؛ جلسات شُغّلت في تطبيق سطح المكتب على Windows، وحُسبت بـسكربت التجميع في هذا المقال)
1. ما تعرضه الشاشات الرسمية، وما لا تعرضه
هذه أبرز الأماكن الرسمية التي تُبلغ عن الاستهلاك (حتى سبتمبر 2026). لا يعرض أيٌّ منها حصّة كل جلسة. وأقربها تفصيل الخطة في /usage، لكنّ محوره هو الميزة التي ذهب إليها الاستهلاك، لا الجلسة التي استهلكته.
| أين تنظر | ما يعرضه | الحصّة بحسب الجلسة |
|---|---|---|
/usage، قسم Session | عدد التوكنات والتكلفة التقديرية للجلسة الحالية (بحسب النموذج). يعود إلى 0 مع /clear. وتنبّه الوثائق إلى أنه «مخصّص لمستخدمي API»، وأنّ «رقم تكلفة الجلسة لا صلة له بأغراض الفوترة» لمشتركي Claude Max وPro | ✕ الجلسة الحالية فقط |
/usage، تفصيل استهلاك الخطة (Pro وMax وTeam وEnterprise) | الاستهلاك خلال آخر 24 ساعة أو 7 أيام، بنسب مئوية بحسب المهارة والوكيل الفرعي والإضافة وخادم MCP. يُبدَّل بينهما بـd وw. ومنذ v2.1.242 يضيف كذلك «صفًّا لكل واحدة من أثقل مهام /loop أو غيرها من المهام المجدولة التي عملت مؤخرًا، مرتّبةً بحسب إجمالي التوكنات» | ✕ بحسب الميزة والمهمة المجدولة، لا بحسب الجلسة |
| حلقة الاستهلاك في تطبيق سطح المكتب | استهلاك نافذة السياق لتلك الجلسة، واستهلاك الخطة خلال الفترة. وتقول الوثائق إنّ «استهلاك الخطة مشترك بين كل واجهات Claude Code» | ✕ رقم على مستوى الخطة كلها |
| Settings > Usage في claude.ai | أشرطة تقدّم لـ«حدَّي استهلاك الجلسة ذات الخمس ساعات والاستهلاك الأسبوعي»، مع موعد إعادة ضبط كلٍّ منهما | ✕ رقم على مستوى الخطة كلها |
/insights | تقرير HTML يحلّل الجلسات الأخيرة على هذا الجهاز (في أيّ المشاريع تعمل وعلى ماذا، وأين تعثّرت). وتصفه الوثائق بأنه «تقرير عن طريقة عملك لا عن عدد التوكنات التي استهلكتها» | ✕ بلا أعداد توكنات |
| تحليلات Team وEnterprise، وClaude Console | الإنفاق بحسب المستخدم وبحسب النموذج | ✕ لكل مستخدم |
| OpenTelemetry (تصدير بيانات المراقبة) | مقاييس التوكنات والتكلفة تحمل معرّف الجلسة افتراضيًا | ✓ لكن عليك تجهيز مكان يجمعها |
المصدر: وثائق Claude Code الرسمية «Manage costs effectively» (/usage، /insights، لوحات المؤسسات)، وثائق Claude Code الرسمية «Desktop» (حلقة الاستهلاك)، مركز مساعدة Claude «Usage limit best practices» (صفحة الاستهلاك في الإعدادات)، وثائق Claude Code الرسمية «Monitoring» (OpenTelemetry)
«حدّ الجلسة» الرسمي لا علاقة له بجلسات المحادثة
في صفحة الاستهلاك على claude.ai، تعني «الجلسة» نافذة الاستهلاك ذات الخمس ساعات. ولا صلة لها بجلسات المحادثة المنفردة التي تفتحها في Claude Code. وحيثما قال هذا المقال «جلسة» فهو يقصد الثانية: كل مُدخَل مُدرَج في الشريط الجانبي.
وعن تفصيل الخطة في /usage، تقول الوثائق أمرًا مهمًّا آخر: «الأرقام تقريبية وتُحسب من سجلّ الجلسات المحلي على هذا الجهاز، فلا يُحتسب فيها الاستهلاك من أجهزة أخرى أو من claude.ai». بعبارة أخرى، حتى التفصيل الرسمي مصدره في النهاية سجلاتك المحلية. اقرأ تلك السجلات نفسها بنفسك، وستستطيع تجميعها على المحور الذي تغفله الشاشات الرسمية: الجلسة. وإن كنت قد بلغت الحدّ بالفعل وتريد معرفة ما تبقّى، فانظر Claude Code: معنى «usage limit reached» وكيف تتابع العمل.
2. الجواب في سجلات المحادثة على جهازك
يحفظ Claude Code السجلّ الكامل لكل محادثة بصيغة JSONL (كائن JSON واحد في كل سطر)، بملف واحد لكل جلسة. والوثائق تخبرك أين توجد.
كل شيء يدخل فيه: الرسائل، واستدعاءات الأدوات، وحتى نتائج الأدوات. وعلى Windows يكون في C:\Users\<username>\.claude\projects
تُحفظ محادثات الوكلاء الفرعيين في ملفات منفصلة عن الملف الرئيسي. وتُحذف مع سجلّ الجلسة الأم حين يتقادم
تُحذف الجلسات المستعملة في الطرفية بعد تجاوزها cleanupPeriodDays (30 يومًا افتراضيًا). أما الجلسات التي بدأتها أو واصلتها آخر مرة في تطبيق سطح المكتب (أو Cowork) فتُحفظ مهما قدُم عهدها منذ v2.1.248
المصدر: وثائق Claude Code الرسمية «Explore the .claude directory»
على جهازي، كان اسم مجلد <project> هو المسار المطلق لمجلد العمل بعد استبدال رموزه بـ- (فالمسار D:\work\site-a يصبح D--work-site-a). والجلسات التي شُغّلت من تبويب Code في تطبيق سطح المكتب كُتبت في المكان نفسه، مع تسجيل "entrypoint":"claude-desktop" في كل سطر.
ما تجمعه هو حقل usage المرفق بالأسطر التي تسجّل ردود Claude ("type":"assistant"). وهذا سطر حقيقي واحد، مختزلًا إلى الحقول التي يستعملها التجميع وحدها (مع حجب المعرّفات).
{"type":"assistant","requestId":"req_…","timestamp":"2026-07-25T00:16:37.822Z",
"message":{"id":"msg_…","model":"claude-opus-5",
"content":[{"type":"text","text":"…"}],
"usage":{"input_tokens":2,"output_tokens":255,
"cache_read_input_tokens":33775,"cache_creation_input_tokens":17265,
"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":17265}}}}
الأرقام الأربعة في usage (الإدخال، والإخراج، والقراءة من التخزين المؤقت، والكتابة فيه) حقول رسمية في استجابات Claude API. أما صيغة ملف السجلّ نفسه، أي ما يُكتب في كل سطر، فليست موثّقة رسميًا. وقد تحقّقتُ من طريقة العدّ في هذا المقال على سجلاتي من v2.1.197 حتى v2.1.260، وقد تتوقّف عن العمل في إصدارات مقبلة.
وتنصّ الوثائق صراحةً على تحذير آخر: «سجلات المحادثات والتاريخ غير مشفّرة أثناء التخزين، وأذونات ملفات نظام التشغيل هي الحماية الوحيدة». فإن قرأت أداةٌ ملف .env، انتهى محتواه في السجلّ أيضًا. ومشاركة النتائج المجمّعة مع الآخرين لا بأس بها، لكن احذر عند تسليم السجلات نفسها أو ترك أداة لا تعرفها جيدًا تقرؤها.
3. اجمعها كما هي تحصل على قرابة الضعف: أربعة أفخاخ
ابحث عن أسطر usage واجمعها كلها. إنها المقاربة الأوضح، لكنّ المجموع في سجلاتي جاء قرابة ضعف القيمة الصحيحة. ولذلك أربعة أسباب.
الفخ 1: الردّ الواحد يُكتب على عدّة أسطر
ردّ Claude الواحد (طلب API واحد) ليس بالضرورة سطرًا واحدًا في السجلّ. على جهازي، كُتبت كل كتلة محتوى، كالتفكير أو النص أو استدعاء أداة، في سطر مستقلّ (أكثر من 99.9% من الأسطر حملت كتلة واحدة بالضبط)، وكان كل سطر من تلك الأسطر يحمل usage. وما يميّز الردّ هو الزوج message.id وrequestId.
71,865 ردًّا. جمعها صحيح
69,810 ردًّا. جمعها يحسب كلًّا منها مرتين
53,060 ردًّا. جمعها يحسب كلًّا منها ثلاث مرات
19,475 ردًّا. جمعها يحسب كلًّا منها أربع مرات أو أكثر
المصدر: قياساتي الخاصة (سجلات من 30 مارس إلى 15 سبتمبر 2026؛ 476,404 سطرًا تحمل usage بلغت 214,210 ردًّا)
من بين 142,345 ردًّا كُتبت على سطرين أو أكثر، كان 76% منها يحمل usage متطابقًا تمامًا في كل سطر. وفي الـ24% الباقية اختلفت قيمة توكنات الإخراج من سطر إلى آخر. لذلك احتفظ لكل ردّ بسطر واحد فقط، هو صاحب أكبر عدد من توكنات الإخراج. وبمعزل عن ذلك، ظهر 1,903 ردًّا في ملف آخر أيضًا (0.95% من إجمالي التوكنات). لم أتتبّع سبب ذلك، لكنّ دمج كل شيء على المفتاح نفسه يمنع احتسابها مرتين هي الأخرى.
الفخ 2: سجلات الوكلاء الفرعيين في ملفات منفصلة
اقرأ ملفات .jsonl الرئيسية وحدها، ويسقط الوكلاء الفرعيون من الحساب كليًّا. وفي سجلاتي، هذه حصّة الوكلاء الفرعيين من المجاميع الصحيحة.
- الإدخال (غير المخزّن مؤقتًا): 42.9%
- الإخراج: 23.2%
- الكتابة في التخزين المؤقت: 10.8%
- القراءة من التخزين المؤقت: 6.9%
وعلى مستوى الجلسة يتّسع التفاوت أكثر: فخلال آخر 7 أيام، وبالوزن بحسب السعر، امتدّ من جلسات عند 0% إلى جلسة عند 54%. وكلّما أسندت الجلسة عملًا أكثر إلى الوكلاء الفرعيين، بدت أصغر حين تعدّ الملف الرئيسي وحده.
الفخ 3: الخطآن يُلغي أحدهما الآخر جزئيًا، لكن بصورة مختلفة في كل جلسة
اجمع الأسطر في الملفات الرئيسية كما هي، فيضخّم الفخ 1 العدد بينما يقلّصه الفخ 2. وخلال آخر 7 أيام بلغ المجموع 2.06 ضعف القيمة الصحيحة. ولو انحرفت كل جلسة بالمعامل نفسه، لبقيت الحصص صحيحة. لكنّ الواقع لم يكن كذلك.
| الجلسة | الحصّة الصحيحة (الترتيب) | الحصّة الساذجة (الترتيب) | الساذجة ÷ الصحيحة | حصّة الوكلاء الفرعيين |
|---|---|---|---|---|
| A | 31.7% (#1) | 27.4% (#1) | 1.79× | 21% |
| C | 12.7% (#2) | 12.0% (#3) | 1.96× | 2% |
| B | 11.4% (#3) | 15.0% (#2) | 2.71× | 9% |
| D | 8.6% (#4) | 5.4% (#5) | 1.30× | 39% |
| E | 5.4% (#5) | 6.8% (#4) | 2.60× | 39% |
| F | 4.6% (#6) | 4.1% (#8) | 1.85× | 0% |
| G | 3.2% (#9) | 4.7% (#6) | 3.02× | 5% |
المصدر: قياساتي الخاصة (آخر 7 أيام حتى 15 سبتمبر 2026. ولتسهيل المقارنة، يستعمل هذا الجدول وحده أعداد التوكنات غير الموزونة، بما في ذلك حصّة الوكلاء الفرعيين. وحروف الجلسات تطابق الشكل في أعلى المقال)
تبادل المركزان 2 و3 مكانيهما، وكذلك 4 و5، وصعدت G، وهي في الحقيقة التاسعة، إلى المركز السادس. وخروج D صغيرةً لأنها تعتمد على الوكلاء الفرعيين هو الفخ 2 بعينه، لكنّ E، التي تبلغ حصّة الوكلاء الفرعيين فيها 39% مثل D، سارت في الاتجاه المعاكس بمعامل 2.60. ويؤدّي عدد الأسطر التي ينقسم إليها كل ردّ (أي مقدار ما يحويه من تفكير واستدعاءات أدوات) دورًا أيضًا، فلا يمكنك التنبّؤ بالمعامل مسبقًا. وقاعدة «اقسم على اثنين وحسب» لا تنفع.
الفخ 4: 97% من التوكنات قراءات من التخزين المؤقت
حتى بعد أن تعدّ عدًّا صحيحًا، فإنّ مقارنة أعداد التوكنات الخام تُسيء تقدير ثقل كل جلسة. وهذا ما تكوّنت منه آخر 7 أيام.
تفصيل التوكنات (آخر 7 أيام، كل الجلسات معًا)
المصدر: قياساتي الخاصة (آخر 7 أيام حتى 15 سبتمبر 2026)
غير أنّ أسعار الوحدات أبعد ما تكون عن التساوي. ففي صفحة الأسعار الرسمية لـAnthropic، تُحتسب القراءة من التخزين المؤقت بمعامل 0.1 من سعر الإدخال الأساسي (و0.025 في Claude Fable 5.1 وClaude Mythos 5.1)، والكتابة في التخزين المؤقت لخمس دقائق بمعامل 1.25 ولساعة بمعامل 2، والإخراج بـ5 أضعاف سعر الإدخال في كل النماذج الحالية. والجلسة C، التي كانت تحمل 12.7% من التوكنات، صارت 10.4% بعد الوزن بهذه الأسعار.
وحجم الأرقام بحدّ ذاته يخبرك بشيء أيضًا. فمن بين أعلى 12 جلسة، قرأت الجلسات العشر عدا D وE في المتوسط ما بين نحو 410,000 و480,000 توكن من السياق في كل ردّ (أما D وE، اللتان تعتمدان على الوكلاء الفرعيين، فبلغ متوسطهما نحو 240,000 و310,000). «يرسل Claude Code المحادثة كاملة مع كل طلب»، ولذلك كلّما طال بقاء الجلسة مفتوحة ازداد ثقل كل طلب. ويشرح مقال ما الذي يلتهم سياق Claude Code فعلًا؟ هذه الآلية بالتفصيل.
4. سكربت التجميع
يأخذ سكربت التجميع هذا الأفخاخ الأربعة كلها في الحسبان. ويعمل بمكتبة Python 3 القياسية وحدها (اختبرتُه على 3.11). وهو يقرأ السجلات فقط، فلا يعدّل شيئًا ولا يرسل شيئًا. وإن كنت قد نقلت مجلد الإعدادات عبر متغيّر البيئة CLAUDE_CONFIG_DIR، فإنه يقرأ من هناك بدلًا من ذلك.
import json, os, sys
from collections import defaultdict
from datetime import datetime, timedelta, timezone
from pathlib import Path
DAYS = float(sys.argv[1]) if len(sys.argv) > 1 else 7
ROOT = Path(os.environ.get("CLAUDE_CONFIG_DIR") or Path.home() / ".claude") / "projects"
SINCE = datetime.now(timezone.utc) - timedelta(days=DAYS)
# USD per 1M input tokens (output = 5x). First match wins.
PRICES = [("sonnet-5", 2), ("sonnet", 3), ("haiku", 1), ("opus-4-1", 15),
("opus-4-2025", 15), ("opus", 5), ("fable", 10), ("mythos", 10)]
best = {} # one API response = one (message.id, requestId)
for path in ROOT.rglob("*.jsonl"): # also reads <session>/subagents/*.jsonl
project = path.relative_to(ROOT).parts[0]
with path.open(encoding="utf-8", errors="replace") as f:
for line in f:
if '"usage"' not in line:
continue
try:
row = json.loads(line)
except ValueError:
continue
msg = row.get("message") or {}
usage = msg.get("usage")
ts = row.get("timestamp")
if row.get("type") != "assistant" or not usage or not ts:
continue
if datetime.fromisoformat(ts.replace("Z", "+00:00")) < SINCE:
continue
key = (msg.get("id"), row.get("requestId"))
old = best.get(key)
if old is None or usage.get("output_tokens", 0) >= old[2].get("output_tokens", 0):
best[key] = (project, msg.get("model") or "", usage)
totals = defaultdict(lambda: [0, 0.0]) # [tokens, weight]
for project, model, u in best.values():
p = next((v for name, v in PRICES if name in model), 5)
read_rate = 0.025 if "5-1" in model and ("fable" in model or "mythos" in model) else 0.1
inp, out = u.get("input_tokens", 0), u.get("output_tokens", 0)
read, write = u.get("cache_read_input_tokens", 0), u.get("cache_creation_input_tokens", 0)
write_1h = (u.get("cache_creation") or {}).get("ephemeral_1h_input_tokens", 0)
totals[project][0] += inp + out + read + write
totals[project][1] += p * (inp + out * 5 + read * read_rate
+ (write - write_1h) * 1.25 + write_1h * 2)
all_tokens = sum(t for t, _ in totals.values()) or 1
all_weight = sum(w for _, w in totals.values()) or 1
print(f"last {DAYS:g} days: {len(best):,} responses")
print(f"{'weight':>7} {'tokens':>7} project")
for project, (t, w) in sorted(totals.items(), key=lambda kv: -kv[1][1]):
print(f"{w / all_weight:7.1%} {t / all_tokens:7.1%} {project}")
احفظه باسم مثل usage_by_session.py ومرّر عدد الأيام وسيطًا. وإن أغفلته حصلت على آخر 7 أيام.
python usage_by_session.py # آخر 7 أيام
python usage_by_session.py 1 # آخر 24 ساعة
python usage_by_session.py 30 # آخر 30 يومًا
تبدو المخرجات هكذا (مع حجب أسماء المجلدات). يمثّل weight الحصّة الموزونة بالسعر، ويمثّل tokens الحصّة بحسب العدد الخام للتوكنات.
last 7 days: 19,991 responses
weight tokens project
32.3% 31.7% D--work-project-a
11.1% 11.4% D--work-project-b
10.4% 12.7% D--work-project-c
7.7% 8.6% D--work-project-d
6.4% 5.4% D--work-project-e
ما الذي يفعله السكربت
- يقرأ المجلدات الفرعية بـ
rglob: فيلتقط أيضًا الملفات الموجودة تحتsubagents/ويضيفها إلى مشروع الجلسة الأم نفسه (الفخ 2) - يدمج الأسطر في ردّ واحد لكل زوج من
message.idوrequestId، محتفظًا بالسطر صاحب أكبر عدد من توكنات الإخراج (الفخ 1) - يزن بحسب سعر الوحدة: سعر إدخال النموذج مضروبًا في 5 للإخراج، و0.1 للقراءة من التخزين المؤقت، و1.25 أو 2 للكتابة فيه (الفخ 4). والأسعار تطابق صفحة الأسعار الرسمية حتى سبتمبر 2026، فحدّث
PRICESحين تتغيّر الأسعار - يجمّع بحسب مجلد المشروع: إن فتحت عدّة جلسات في المجلد نفسه، فاجمع بحسب اسم الملف بدلًا من
project(وللوكلاء الفرعيين، بحسب اسم مجلد الجلسة الذي يعلوsubagentsبمستوى واحد)، فتنقسم المجاميع بحسب معرّف الجلسة
5. القياس: جلسة واحدة من 29 استهلكت قرابة الثلث
خلال آخر 7 أيام، كانت 29 جلسة نشطة على جهازي. وكما يُظهر الشكل في أعلى المقال، تركّز الاستهلاك في حفنة قليلة منها.
جلسة واحدة، قرابة ثلث الإجمالي
ثلاث جلسات، أكثر من النصف
الجلسات الـ24 الباقية تتقاسم نحو الثلث
أكثر من نصف الجلسات الـ29
المصدر: قياساتي الخاصة (آخر 7 أيام حتى 15 سبتمبر 2026، موزونة بحسب أسعار API)
ووضعُ الأرقام جنبًا إلى جنب كشف ثلاثة أمور.
أولًا، الجلسات في القمة ثقيلة في كل طلب على حدة. فقد قرأت الجلسات الثلاث الأولى في المتوسط ما بين نحو 410,000 و480,000 توكن في كل ردّ. والأمر لا يقتصر على أنها أرسلت طلبات أكثر: فقد بقيت مفتوحة طوال اليوم وسياقها يتضخّم. وتشير الوثائق كذلك إلى أنّ الجلسة التي تُترك مفتوحة طويلًا يستدعي فيها حتى سؤال من سطر واحد استهلاكًا بحجم المحادثة كلها.
ثانيًا، الجلسات التي تعتمد على الوكلاء الفرعيين تبدو صغيرة من المحادثة الرئيسية. ففي D وE، شكّل الوكلاء الفرعيون 44% و54% على التوالي من الاستهلاك الموزون بالسعر. وحين تنظر إلى المحادثة الرئيسية في الشريط الجانبي، لا ترى ذلك الجزء أبدًا.
ثالثًا، أكثر من نصف الجلسات لم يستهلك شيئًا يُذكر. فحدّك لا ينفد أسرع لأنك تفتح جلسات كثيرة؛ بل تستنزفه جلسات ثقيلة قليلة. وإن كنت ستتصرّف، فيكفي أن تبدأ بتلك القليلة. أما ما تقصّه أولًا فتجده في توفير التوكنات في Claude Code والتكاليف الإضافية عند الحدّ.
6. كيف تقرأ الأرقام، وأين تتوقّف دلالتها
ما يستطيع هذا التجميع أن يخبرك به وما لا يستطيع
- 🟡 الأوزان تقدير مبنيّ على أسعار API. لم تنشر Anthropic أنّ حدود Pro وMax تنفد بهذه النسب. فهي تصلح مسطرةً لمقارنة الجلسات بعضها ببعض، لكنها لا تصلح لحساب النسبة المئوية المتبقّية لك
- يغطّي هذا الجهاز وحده. فالأجهزة الأخرى، والمحادثات على claude.ai، والجلسات التي تعمل في السحابة غير مشمولة. وتفصيل
/usageالرسمي يخضع للقيد نفسه - لا يمكنك الرجوع إلى أبعد من 30 يومًا في الجلسات المستعملة في الطرفية. وذلك لأن السجلات تُحذف بعد
cleanupPeriodDays(30 يومًا افتراضيًا). أما الجلسات التي بدأتها أو واصلتها آخر مرة في تطبيق سطح المكتب (أو Cowork) فتُحفظ مهما قدُم عهدها منذ v2.1.248 - 🟡 صيغة السجلّ ليست مواصفة رسمية. فتفاصيل مثل عدد الأسطر التي ينقسم إليها الردّ الواحد قد تتغيّر بين الإصدارات. وإن بدت الأرقام غير منطقية، فابدأ بمقارنة الأعداد قبل دمج المكرّرات وبعده
- الأسعار تتغيّر. فقد صار السعر التمهيدي لـClaude Sonnet 5 البالغ $2/$10 (للإدخال والإخراج لكل مليون توكن) سعرَه الرسمي (وأُلغيت الزيادة التي كانت مقرّرة في 1 سبتمبر)، وتُحتسب القراءة من التخزين المؤقت في Fable 5.1 بمعامل 0.025 من سعر الإدخال. فأبقِ
PRICESمتوافقًا مع صفحة الأسعار الرسمية
7. لتواصل المتابعة من الآن فصاعدًا، استخدم OpenTelemetry
ميزة تجميع السجلات أنك ترى الأيام الثلاثين الماضية فورًا. أما إن كنت تريد المتابعة من الآن فصاعدًا، فإنّ OpenTelemetry، ميزة المراقبة الرسمية، هو الأنسب.
بعد تفعيله، يصدّر Claude Code مقياسًا للتوكنات هو claude_code.token.usage (بالأنواع input وoutput وcacheRead وcacheCreation)، ومقياسًا للتكلفة هو claude_code.cost.usage. ويحمل كلاهما session.id افتراضيًا (OTEL_METRICS_INCLUDE_SESSION_ID، وقيمته الافتراضية true). ولأنّ ذلك لا يقرأ ملفات السجلّ، فالأسطر المكرّرة في الفخ 1 لا تدخل فيه أصلًا، ويُسجَّل استهلاك الوكلاء الفرعيين منفصلًا تحت query_source (main وsubagent وauxiliary).
ولتجرّبه محليًا أولًا، شغّل Claude Code مع ضبط المُصدِّر ليطبع في الطرفية، كما تبيّن الوثائق.
export CLAUDE_CODE_ENABLE_TELEMETRY=1
export OTEL_METRICS_EXPORTER=console
export OTEL_METRIC_EXPORT_INTERVAL=1000
claude
وللتجميع المستمر، اضبط OTEL_METRICS_EXPORTER=otlp وأرسل البيانات إلى وجهة تديرها بنفسك (خلفية مراقبة تقبل OTLP). عليك أن تجهّز تلك الوجهة، ولا يُسجَّل شيء ممّا سبق تفعيله: هذان هما الفرقان عن تجميع السجلات.
المصدر: وثائق Claude Code الرسمية «Monitoring» (أسماء المقاييس، والسمات، ومتغيّرات البيئة)
الأسئلة الشائعة
س1. ألا يكفي تفصيل الخطة في /usage؟
إنه يقيس على محور مختلف. فتفصيل الخطة يعرض، بنسب مئوية، المهارات والوكلاء الفرعيين والإضافات وخوادم MCP التي ذهب إليها الاستهلاك، ولا يعرض الجلسة التي استهلكته. ولتتبّع ما يستنزف حدّك من جهة الميزات، استخدم /usage؛ ومن جهة الجلسات، استخدم التجميع الوارد في هذا المقال.
س2. هل أستطيع استخدام أداة تجميع جاهزة؟
نعم. فالأداة غير الرسمية ccusage، مثلًا، تستطيع إخراج تقارير لكل جلسة من السجلات نفسها. تحقّق من أمرين قبل أن تستخدم أيًّا منها. أولًا، هل تبقى المعالجة كلها على جهازك: فالسجلات تحوي نتائج الأدوات بلا تشفير. ثانيًا، كيف تعدّ: ولتتأكّد من أنها تعالج الأسطر المكرّرة والوكلاء الفرعيين بالطريقة نفسها، قارن مخرجاتها بسكربت هذا المقال مرة واحدة.
س3. أريد أن أضمّ الاستهلاك من أجهزة أخرى ومن claude.ai.
السجلات لا تُحفظ إلا لكل جهاز على حدة، ولذلك تجمع على كل جهاز ثم تضيف النتائج بعضها إلى بعض. أما المحادثات على claude.ai فلا تُسجَّل في سجلات Claude Code. ولمعرفة ما تبقّى من خطتك إجمالًا، فأشرطة التقدّم تحت Settings > Usage في claude.ai هي المكان الموثوق للنظر.
س4. أريد الاحتفاظ بسجلاتي لأجمع الاستهلاك الأقدم أيضًا.
في الجلسات المستعملة في الطرفية، ارفع قيمة cleanupPeriodDays في settings.json فتُحفظ مدة أطول. أما الجلسات التي بدأتها أو واصلتها آخر مرة في تطبيق سطح المكتب (أو Cowork) فتُحفظ أصلًا مهما قدُم عهدها منذ v2.1.248 (ولوضع حدّ لها، استخدم desktopSessionCleanupPeriodDays). لكن انتبه إلى أنّ الوثائق تذكر خفض هذه القيم وسيلةً لتقليل انكشاف سجلاتك. فكلّما طال احتفاظك بها، طال بقاء سجلات غير مشفّرة على جهازك، فضع ذلك في حسبانك.
المصادر
- Claude Code Docs — Manage costs effectively (قسم Session وتفصيل استهلاك الخطة في
/usage، والتنبيه إلى أنّ الأرقام تُحسب من سجلّ هذا الجهاز، و/insights، ولوحات المؤسسات، وسبب تزايد الاستهلاك في الجلسات الطويلة) - Claude Code Docs — Explore the .claude directory (مكان تخزين السجلات، و
subagents/، والقيمة الافتراضية 30 يومًا لـcleanupPeriodDaysوطريقة التعامل مع جلسات تطبيق سطح المكتب، وغياب التشفير) - Claude Code Docs — Desktop (حلقة الاستهلاك)
- Claude Help Center — Usage limit best practices (ما تعرضه Settings > Usage)
- Claude Code Docs — Monitoring (أسماء مقاييس OpenTelemetry، و
session.id، ومتغيّرات البيئة) - Claude Platform Docs — Pricing (أسعار كل نموذج، ومعاملات التخزين المؤقت)
مقالات ذات صلة
- ما الذي يلتهم سياق Claude Code فعلًا؟ — لماذا يثقل كل ردّ
- Claude Code: معنى «usage limit reached» وكيف تتابع العمل — حين تبلغ الحدّ
- توفير التوكنات في Claude Code والتكاليف الإضافية عند الحدّ — بماذا تبدأ القصّ
- حدّ Claude Code الأسبوعي: حقيقة العودة المبكّرة — كيف يعمل الحدّ الأسبوعي