SSD Nodes Learn Hosting plans →
الأدلة Matt Connorبقلم Matt Connor · آخر تحديث في 2026-08-13

مقارنة أدوات تتبّع إنفاق Claude Code: أيها أدق؟

تعرّف إلى الفرق بين محلّلات سجلات Claude Code المحلية وشاشات الاستخدام المدمجة ومكدّس OpenTelemetry، وما الذي يستطيع كل مصدر حسابه فعلياً.

ما الذي يقرأه متتبّع إنفاق Claude Code فعلياً

يقرأ كل متتبّع لإنفاق Claude Code أحد ثلاثة مصادر للبيانات، ويحدّد المصدر السؤال الذي يمكنه الإجابة عنه. يقرأ محلّل السجلات ملفات نصوص الجلسات المخزّنة على قرصك أنت. وتقرأ لوحة المعلومات سجلات الاستخدام التي تحتفظ بها Anthropic لحسابك أو مؤسستك. أما مخزن المقاييس، فيقرأ تدفق OpenTelemetry (OTel) الذي يصدره Claude Code عند تفعيله. يمكن أن تكون المصادر الثلاثة صحيحة في الوقت نفسه، ومع ذلك تختلف نتائجها، لأنها تحسب أشياء مختلفة.

لا يعيد هذا الدليل شرح الرموز المميزة. يشرح كيفية احتساب Claude Code لاستخدام الرموز المميزة، بما في ذلك الإدخال والإخراج وعمليات كتابة ذاكرة التخزين المؤقت وقراءتها، ولن يكون لأي لوحة معلومات معنى كبير قبل فهم ذلك الجزء. السؤال هنا أضيق نطاقاً: ما الذي يمكن لكل نوع من الأدوات رؤيته، وما الذي لا يمكنه رؤيته مطلقاً؟

لماذا ظهرت 3 أدوات لتتبّع إنفاق Claude Code في يوم واحد

نُشرت 3 أدوات منفصلة لتتبّع إنفاق Claude Code في اليوم نفسه. لم تكن 3 إصدارات من الأداة نفسها، وهذه هي النقطة المفيدة. كانت إحداها تحلّل ملفات الجلسات المحلية. وكانت الثانية تعرض شاشات استخدام الحساب ضمن غلاف. أما الثالثة فكانت واجهة خلفية مستضافة للتتبّع تشغّلها بنفسك.

ظهرت هذه الأدوات معاً لأن تكلفة جلسة الوكيل لم تعد واضحة. تبلغ تكلفة المحادثة تقريباً ما يمكنك رؤيته على الشاشة. لكن الوكيل يقرأ 20 ملفاً، ويشغّل مجموعة الاختبارات، ويعيد إرسال المحادثة كاملة في كل دور. لذلك تتحدد الفاتورة بحسب سياق لم تكتبه بنفسك. وفي الاشتراك، لا يظهر مبلغ بالدولار إطلاقاً، بل يظهر شريط استخدام يفرغ بسرعة أكبر في بعض الأيام مقارنةً بأيام أخرى. وتسدّ كل أداة من الأدوات الثلاثة جزءاً مختلفاً من هذه الفجوة.

الطريقة 1: يخبرك محلل سجلات محلي بتكلفة اليوم

يخزّن Claude Code كل محادثة بصيغة JSON Lines (JSONL) في ~/.claude/projects/<project>/<session-id>.jsonl، حيث إنّ <project> هو مسار دليل العمل بعد استبدال المحارف غير الأبجدية الرقمية بـ-. يتضمن كل دور للمساعد في ذلك الملف أعداد الرموز المميزة الخاصة بطلبه. يجمع محلل السجلات هذه الأعداد ويحسب تكلفتها.

يصل معظم المستخدمين إلى ccusage. ولا يتطلب تثبيتاً:

npx ccusage@latest daily
npx ccusage@latest daily --breakdown
npx ccusage@latest blocks
npx ccusage@latest session --json

يعرض daily الإجماليات حسب التاريخ. ويقسّم --breakdown كل صف حسب النموذج، وبذلك تعرف أن فترة بعد الظهر واحدة باستخدام Opus قد تمثل معظم استخدام الأسبوع. ويجمع blocks البيانات حسب نافذة الساعات الخمس التي يُعاد فيها ضبط الاشتراك. ويحسب session الإجمالي لكل محادثة، بينما يجمع --instances البيانات حسب المشروع لتعرف أي مستودع هو الأعلى تكلفة. أضف --since و--until لتحديد نطاق التاريخ، وشغّل npx ccusage@latest daily --help لمعرفة تنسيق التاريخ الذي يتوقعه إصدارك. واعتباراً من August 2026، يقرأ الأداة أيضاً سجلات واجهات CLI أخرى للوكلاء، بما في ذلك Codex وOpenCode، وهذا مهم عند مقارنتها.

تأتي الأسعار من جدول أسعار النماذج، وتوفّر الأداة ثلاثة أوضاع لحساب التكلفة. يستخدم --mode auto قيمة costUSD التي كتبها Claude Code في الملف عند توفرها، ويحسب التكلفة من أعداد الرموز المميزة عند عدم توفرها. يحسب --mode calculate التكلفة دائماً من أعداد الرموز المميزة ويتجاهل أي تكلفة مسجلة. يعرض --mode display التكاليف المسجلة فقط، ويطبع $0.00 للصفوف التي لا تتضمن تكلفة مسجلة. إذا بدا أحد الإجماليات غير صحيح، شغّل التقرير نفسه باستخدام calculate ثم باستخدام display. تعني الفجوة الكبيرة بين النتيجتين أن معظم الإدخالات لا تتضمن تكلفة مسجلة، ولذلك فإن كل ما تقرأه هو تقدير.

يمكن أيضاً استخدام البيانات نفسها في موجهك. يطبع ccusage statusline سطراً مختصراً لشريط حالة Claude Code، بعد ربطه في ~/.claude/settings.json مثل أي أمر آخر لسطر الحالة. راجع إنشاء سطر حالة في Claude Code لمعرفة كتلة الإعدادات والحقول التي يتلقاها.

لا يستطيع محلل السجلات رؤية أي شيء لم يحدث على هذا الجهاز. فالحاسوب المحمول الثاني، والجلسة على claude.ai، وعمل أحد أعضاء الفريق، كلها محفوظة في السجلات الموجودة على أجهزتها. كما تُفقد البيانات القديمة، لأن النصوص تُنظَّف افتراضياً بعد 30 يوماً وفق إعداد cleanupPeriodDays، ولذلك يختفي الربع السابق ما لم تكن قد أرشفته.

يوجد خطر آخر، وهو خطر بنيوي. توضّح وثائق Anthropic أن تنسيق الإدخالات داخلي في Claude Code ويتغير بين الإصدارات، ولذلك يمكن أن تتعطل البرامج النصية التي تحلل هذه الملفات مباشرة مع أي إصدار جديد. وينطبق ذلك على كل أداة من هذا النوع. ولهذا أيضاً فإن كتابة سطر jq مخصص لتحليل JSONL تبدو فكرة أسوأ مما هي عليه: تتابع المحللات التي تتم صيانتها تغييرات التنسيق نيابةً عنك، بينما سيعرض سطر الأوامر الذي كتبته رقماً خاطئاً بثقة في اليوم الذي يُعاد فيه تسمية أحد الحقول.

وأخيراً، يحتاج الرقم بالدولار إلى توضيح عند استخدام اشتراك. فأنت لا تُحاسب حسب عدد الرموز المميزة في Pro أو Max، ولذلك يعبّر الرقم عن التكلفة التي كانت ستترتب على رموزك وفق أسعار API المعلنة. وهو يقيس مدى كثافة استخدامك، وليس قيمة فاتورتك. وإذا كان السؤال الفعلي هو الخطة التي ينبغي اختيارها، فهذه مقارنة مستقلة: راجع الفوترة عبر API مقارنة باشتراك Claude.

النمط 2: تخبرك شاشات الاستخدام المضمّنة بالنموذج الذي استهلك الميزانية

يأتي Claude Code مزوّداً بتقارير خاصة به، لكن معظم المستخدمين لا يفتحونها. شغّل /usage داخل جلسة. يعرض قسم Session في الأعلى عدد الرموز المميّز حسب النموذج، وقيمة بالدولار للجلسة الحالية، وتُحتسب محلياً من عدد الرموز وفق أسعار القائمة القياسية. لا تعكس هذه القيمة خصماً أو سعراً ترويجياً، لذلك قد تختلف عن فاتورتك. تُصفّر الإجماليات عند بدء /clear لمحادثة جديدة.

في خطط Pro وMax وTeam وEnterprise، تعرض الشاشة نفسها مقدار ما استخدمته من حد خطتك، وتنسب الاستخدام الأخير إلى المهارات والوكلاء الفرعيين والإضافات وخوادم MCP الفردية كنسبة مئوية من الإجمالي. وتضع علامة على السلوكيات التي تمثل 10% أو أكثر من الاستخدام الأخير، مثل السياق الطويل أو حالات فشل ذاكرة التخزين المؤقت. اضغط d أو w للتبديل بين آخر 24 ساعة وآخر 7 أيام. هذه الأرقام تقريبية، وتُحتسب من سجل الجلسات المحلي على هذا الجهاز، لذلك لا يُحتسب جهاز ثانٍ. عندما يكون الشريط فارغاً بدلاً من أن يكون منخفضاً فقط، تخبرك الشاشة بأن النافذة أُغلقت، لكنها لا تخبرك بكيفية مواصلة العمل، أما ما يجب فعله بعد بلوغ الحد فهو قرار منفصل يتعلق بالنموذج والسياق والخطة.

عند وجود أكثر من مطوّر واحد، تنتقل الأرقام إلى الحساب. تحصل مؤسسة API على صفحة الاستخدام في Console، ولوحة Claude Code تعرض الإنفاق والأسطر المقبولة لكل عضو، وواجهة Claude Code Analytics API التي تُرجع المقاييس اليومية نفسها لكل مستخدم باستخدام مفتاح admin. وتحصل خطتا Team وEnterprise على تقرير إنفاق في وحدة تحكم المسؤول مع إمكانية تصديره بصيغة CSV، ويُحدَّث يومياً، بينما تضيف Enterprise واجهة تحليلات API. يعتمد ما تراه على طريقة تسجيل دخول كل مطوّر، لذلك تقرأ المؤسسة المختلطة تقريرين وتجمعهما يدوياً.

لتقدير الميزانية، يبلغ الرقم المنشور في وثائق تكاليف Anthropic، حتى August 2026، متوسطاً يقارب $13 لكل مطوّر في يوم نشط، ومن $150 إلى $250 لكل مطوّر شهرياً، مع بقاء 90% من المستخدمين تحت $30 في اليوم النشط. تعامل مع ذلك على أنه معيار منشور من عمليات نشر مؤسسية، وليس توقعاً لفريقك. شغّل مجموعة تجريبية وقِس الاستخدام قبل التعميم.

لا تستطيع لوحات المعلومات رؤية أي شيء أدق من اليوم والمستخدم. ستخبرك بأن Opus كان مسؤولاً عن معظم استخدام يوم الثلاثاء. لكنها لن تخبرك بأي prompt أو مستودع أو مهمة CI تسببت في ذلك. كما أنها تتأخر، لأن تقارير المؤسسة تُحدَّث يومياً، ولذلك فهي أداة للمراجعة وليست وسيلة لاكتشاف وكيل منفلت في فترة بعد الظهر نفسها. يتطلب اكتشاف الوكيل المنفلت حدوداً، لا تقارير، وهذا هو موضوع ضبط تكاليف الوكلاء على VPS.

الشكل 3: تخبرك حزمة OpenTelemetry الخاصة بك بالتعليمات التي تراجعت نتائجها

يُصدر Claude Code المقاييس والأحداث عبر OpenTelemetry بعد ضبط متغير بيئة واحد، وهذا هو الخيار الوحيد الذي يرسل بيانات الرموز المميزة والتكلفة لكل مستخدم إلى نظام تتحكم فيه، شبه آني. تتضمن المقاييس claude_code.cost.usage بالدولار الأمريكي، وclaude_code.token.usage بالرموز المميزة، وclaude_code.session.count وclaude_code.active_time.total.

مقياس الرموز المميزة هو الأهم بسبب سماته. تحمل كل نقطة بيانات type، وهي input أو output أو cacheRead أو cacheCreation، إضافة إلى model وquery_source، وهي main أو subagent أو auxiliary. وتحمل أيضاً agent.name وskill.name وmcp_server.name وmcp_tool.name. يكفي ذلك للإجابة عن أسئلة لا يستطيع أي dashboard الوصول إليها: ما مقدار الفاتورة الناتج عن الوكلاء الفرعيين بدلاً من طلباتك أنت، وهل ضاعف أحد خوادم MCP رموز الإدخال، وهل انهارت قراءات الذاكرة المؤقتة بعد أن عدّل شخص ما CLAUDE.md. غالباً ما يكون سلوك الذاكرة المؤقتة هو مصدر المفاجأة، وتشرح متى تغطي ذاكرة التخزين المؤقت للمطالبات تكلفتها ما الذي تراه.

من المفيد إجراء تصحيح واحد، لأنه يتكرر في كل نقاش حول هذا الموضوع. يُعد Langfuse خلفية جيدة للتتبّع المستضاف ذاتياً، ويغطي استضافة Langfuse ذاتياً لتتبّع الوكلاء طريقة تشغيله على VPS. تقبل نقطة نهاية OTLP فيه آثار التتبّع فقط. يصدّر Claude Code المقاييس وأحداث السجل، لا المقاطع، لذلك فإن توجيه OTEL_EXPORTER_OTLP_ENDPOINT إلى Langfuse يترك المشروع فارغاً ولا يمنحك أي خطأ يستحق القراءة. يُعد Langfuse الأداة المناسبة للوكلاء الذين تبنيهم بنفسك على API، حيث ينشئ كودك كل مقطع مع مطالبته ونموذجه وتكلفته. أما في CLI الخاص بـClaude Code، فمخزن المقاييس هو الخيار المناسب.

إعداد تتبّع الإنفاق في Claude Code على VPS الخاص بك

تكفي خدمتان: جامع لاستقبال المقاييس، وPrometheus لتخزينها. أبقِ الخدمتين خارج الإنترنت العام، لأن منفذ OTLP المفتوح يقبل عمليات كتابة من أي جهة تعثر عليه. اكتب /opt/ccmetrics/compose.yaml:

services:
  collector:
    image: otel/opentelemetry-collector-contrib:latest
    command: ["--config=/etc/otel/config.yaml"]
    volumes:
      - ./collector.yaml:/etc/otel/config.yaml:ro
    ports:
      - "10.8.0.1:4318:4318"
    restart: unless-stopped
  prometheus:
    image: prom/prometheus:latest
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
      - prom-data:/prometheus
    ports:
      - "127.0.0.1:9090:9090"
    restart: unless-stopped

volumes:
  prom-data:

10.8.0.1 هو عنوان الخادم داخل نفق WireGuard، لذلك يمكن الوصول إلى الجامع من أجهزتك فقط، وليس من أي مكان آخر. العنوان الموضوع قبل المنفذ مهم فعلياً هنا، لأن منافذ Docker المنشورة لا يرشّحها ufw: راجع سبب تجاوز منافذ Docker المنشورة لـ ufw. أما إعداد النفق نفسه فموضح في شبكة WireGuard VPN على VPS الخاص بك.

/opt/ccmetrics/collector.yaml:

receivers:
  otlp:
    protocols:
      http:
        endpoint: 0.0.0.0:4318

processors:
  batch:

exporters:
  prometheus:
    endpoint: 0.0.0.0:8889

service:
  pipelines:
    metrics:
      receivers: [otlp]
      processors: [batch]
      exporters: [prometheus]

/opt/ccmetrics/prometheus.yml. لا يُنشر المنفذ 8889 على المضيف مطلقاً، لأن Prometheus يصل إلى الجامع عبر شبكة Compose باستخدام اسم الخدمة:

global:
  scrape_interval: 30s

scrape_configs:
  - job_name: claude-code
    static_configs:
      - targets: ["collector:8889"]
cd /opt/ccmetrics
docker compose up -d
docker compose logs collector

يجب أن ينتهي سجل الجامع بـ Everything is ready. Begin running and processing data.. إذا توقف السجل بسبب خطأ في الإعداد، فهذا يعني أن YAML لم يُحلَّل بنجاح، وستعيد الحاوية التشغيل في حلقة متكررة.

وجّه Claude Code إليه الآن. على كل جهاز يشغّل Claude Code، أضف ما يلي إلى ~/.claude/settings.json:

{
  "env": {
    "CLAUDE_CODE_ENABLE_TELEMETRY": "1",
    "OTEL_METRICS_EXPORTER": "otlp",
    "OTEL_LOGS_EXPORTER": "none",
    "OTEL_EXPORTER_OTLP_PROTOCOL": "http/protobuf",
    "OTEL_EXPORTER_OTLP_ENDPOINT": "http://10.8.0.1:4318",
    "OTEL_METRIC_EXPORT_INTERVAL": "10000"
  }
}

ابدأ جلسة، وأرسل مطالبة واحدة، وانتظر فترة التصدير، وهي 10 ثوانٍ هنا و60 ثانية افتراضياً، ثم اسأل Prometheus عمّا تعلّمه:

curl -s http://localhost:9090/api/v1/label/__name__/values | grep -o 'claude_code[a-z_]*'

يجب أن تحصل على عدة أسماء تبدأ بـ claude_code_. يعيد المصدّر كتابة النقاط إلى شرطات سفلية، ويضيف الوحدة، لذلك تعتمد السلاسل الدقيقة على إصدار الجامع لديك. تعني النتيجة الفارغة أن شيئاً لم يصل. تحقق من تطابق البروتوكول والمنفذ، لأن http/protobuf يستخدم المنفذ 4318، بينما grpc يستخدم المنفذ 4317، ويؤدي عدم التطابق إلى فشل صامت. شغّل claude --debug، وسيعرض سجل التصحيح أخطاء تصدير OTel.

إذا كان لديك جهاز واحد ولا يوجد خادم، فتجاوز كل ما سبق. اضبط OTEL_METRICS_EXPORTER=prometheus، وسيعرض Claude Code نقطة نهاية لجمع المقاييس على http://localhost:9464/metrics نفسه. عندما يكون prometheus هو المصدّر الوحيد المدرج، يحذف Claude Code وحدات USD وtokens وs من أسماء المقاييس، لكي يظل الجمع متوافقاً مع تنسيق نص Prometheus.

يتضمن هذا التصميم قراراً متعلقاً بالخصوصية. افتراضياً، تغادر الجهاز أعداد المقاييس فقط، ولا يغادر نص المطالبة أو مخرجات الأدوات. يغيّر OTEL_LOG_USER_PROMPTS=1 وOTEL_LOG_TOOL_CONTENT=1 ذلك، وعندها قد يحتوي خادم المقاييس لديك على شيفرة المصدر وأي محتوى آخر كان موجوداً في السياق. فعّل هذين الخيارين عن قصد، واقرأ أولاً إبقاء الأسرار خارج سياق الوكيل.

تتبّع الإنفاق على عمليات التشغيل البرمجية وعمليات CI

تتسبب عمليات التشغيل غير التفاعلية في مفاجأة المستخدمين، لأن لا أحد يراقب الشاشة. يعرض claude -p مع --output-format json تكلفة عملية التشغيل في حمولة النتيجة:

claude -p "summarise the failing tests" --output-format json | jq '.total_cost_usd'

تتضمن الحمولة total_cost_usd بالإضافة إلى تفصيل حسب كل نموذج، ولذلك يمكن لمهمة CI تسجيل إنفاقها ذاتياً من دون استخدام لوحة معلومات. ألحِق القيمة بملف، أو أرسلها كمقياس إلى الجامع المذكور أعلاه. هذا أبسط تتبّع مفيد للإنفاق، ولا يتطلب سوى استدعاء واحد إلى jq لكل عملية تشغيل.

أوضاع الفشل وما ستراه

التقرير فارغ. تعني طباعة npx ccusage@latest daily دون أي صفوف أنّه لا يقرأ الموقع الذي يكتب فيه Claude Code. ينقل CLAUDE_CONFIG_DIR هذا الموقع، ويجب إبلاغ المحلّل به. إذا كانت الصفوف موجودة لكنها تتوقف عند ما يقارب الشهر الماضي، فهذا يعني أنّ cleanupPeriodDays يعمل كما هو مصمّم: تُحذف النصوص المنسوخة بعد 30 يوماً افتراضياً.

تعرض آلتان إجماليين مختلفين. هذا متوقع، وليس خطأً. يقرأ كل من /usage وأي محلّل للسجلات سجل الجلسات المحلي فقط، لذلك لا يظهر الاستخدام من جهاز آخر أو من claude.ai في أيٍّ منهما.

لا يتطابق الإجمالي المحلي مع الفاتورة. تُحسب الأرقام المحلية من أعداد الرموز وفق أسعار القائمة القياسية. ولا تراعي هذه الأرقام الأسعار الترويجية أو الخصم المتعاقد عليه. وفي الاشتراك، لا تُحاسَب الرموز فردياً أصلاً. تُعد صفحة الاستخدام في Console المرجع المعتمد لفوترة API.

ارتفعت التكلفة رغم أنك نفذت العمل نفسه. افحص أعمدة الذاكرة المؤقتة أولاً. تعيد الجلسة الطويلة إرسال سجلها الكامل في كل دورة. تُحاسَب هذه البيانات بسعر الذاكرة المؤقتة ما دامت الذاكرة دافئة، وبسعر الإدخال الكامل بعد انتهاء صلاحية الذاكرة. لذلك تؤدي فترة توقف طويلة واحدة إلى معالجة المحادثة كاملة من جديد. يظهر ذلك كرقم إدخال كبير بجانب رقم إخراج صغير، وتشرح أسعار رموز الإدخال مقارنة برموز الإخراج سبب تحرك الرقمين بصورة مستقلة.

يبدو اليوم الذي استخدمت فيه الوكلاء الفرعيين غير معقول. يعمل كل وكيل فرعي ضمن نافذة سياق خاصة به، لذلك يزداد استخدام الرموز بحسب عدد الوكلاء الذين عملوا ومدة عمل كل منهم. تفصل بيانات OTel بينهم فقط، من خلال السمة query_source في claude_code.token.usage. سيعرض محلّل السجلات الإجمالي ويتركك تحاول معرفة التفاصيل.

FAQ

هل يعرض ccusage ما أدفعه فعلياً في خطة Max؟

لا. في الاشتراك، لا تُحاسَب حسب عدد الرموز، لذلك يسعّر محلّل السجلات رموزك وفق أسعار القائمة القياسية لواجهة API، ويعرض تكلفة تنفيذ العمل نفسه عبر واجهة API. وهذا مقياس نسبي جيد لمعرفة مدى كثافة يوم معين، كما يفيد في مقارنة المشاريع أو النماذج ببعضها. لمعرفة المبلغ المستحق عليك، تعرض صفحة استخدام Console فوترة واجهة API، بينما تعرض صفحة فوترة الخطة تكلفة الاشتراك.

أين يخزّن Claude Code ملفات الجلسات التي تقرؤها هذه الأدوات؟

في ~/.claude/projects/<project>/<session-id>.jsonl، حيث يمثّل <project> مسار دليل العمل بعد استبدال الأحرف غير الأبجدية الرقمية بـ -. كل سطر هو كائن JSON لرسالة واحدة أو لاستخدام أداة أو لإدخال بيانات وصفية. ينقل CLAUDE_CONFIG_DIR الدليل بأكمله، ويتحكم cleanupPeriodDays في settings.json في مدة الاحتفاظ البالغة 30 يوماً. توثّق Anthropic تنسيق الإدخالات باعتباره داخلياً وقابلاً للتغيير بين الإصدارات، لذلك حلّلها باستخدام أداة تتم صيانتها بدلاً من كتابة script خاص بك.

هل يمكنني إرسال بيانات القياس عن بُعد من Claude Code إلى Langfuse؟

ليس مباشرة. تقبل نقطة نهاية Langfuse الخاصة بـ OTLP الآثار، بينما يصدّر Claude Code المقاييس وأحداث السجل بدلاً من المقاطع، لذلك لا تجد البيانات وجهة لتخزينها. أرسل مقاييس Claude Code إلى مجمّع OpenTelemetry وخزّنها في Prometheus. استخدم Langfuse للوكلاء الذين تبنيهم بنفسك على واجهة API، حيث يصدر code الخاص بك مقاطع تحمل prompt والنموذج والتكلفة.

لماذا لا تتطابق الأرقام المحلية مع صفحة استخدام Console؟

لأنها تُحسَب بطرق مختلفة. تجمع /usage ومحلّلات السجلات أعداد الرموز من ملفات الجلسات على الجهاز الذي تعمل عليه، ثم تسعّرها وفق أسعار القائمة القياسية. تعرض Console ما فُرضت تكلفته فعلياً على مؤسستك، عبر جميع الأجهزة وجميع المفاتيح، بعد تطبيق أي خصم. عدم التطابق أمر طبيعي. وغالباً ما يعني الفرق الكبير جداً وجود جهاز ثانٍ أو مشغّل CI أو عضو آخر في الفريق يحمّل التكلفة على الحساب نفسه.

كيف أتتبع تكلفة تشغيل claude -p في CI؟

شغّله باستخدام --output-format json واقرأ total_cost_usd من النتيجة، مثلاً باستخدام claude -p "..." --output-format json | jq '.total_cost_usd'. وتتضمن الحمولة نفسها تفصيلاً حسب النموذج ومعرّف الجلسة. سجّل هذه القيمة لكل مهمة، وستحصل على إنفاق كل pipeline من دون agent أو لوحة معلومات أو خدمة إضافية.