فقط اضغط — بدون تثبيت أو بناء أو تسجيل.
English · Русский · Español · Français · 中文 · العربية
عارض HTML لسجلات جلسات Claude Code بصيغة JSONL. يعمل مباشرة في المتصفح — بدون خادم، بدون خطوة بناء، اعتمادية واحدة مُحزَّمة محليًا. يعمل دون اتصال فور الاستخدام.
يكتب Claude Code كل جلسة في ~/.claude/projects/<project>/<session-uuid>.jsonl — سطر واحد لكل سجل (رسالة المستخدم، رد النموذج، thinking، tool_use، tool_result، attachment، وما شابه). الملف الخام غير قابل للقراءة؛ الأوامر المدمجة مثل /resume تعرض المحادثة لكنها لا تسمح بتصديرها أو فحصها لاحقًا.
يحوّل هذا العارض ملف .jsonl إلى تدفق قابل للقراءة مع ألوان حسب الدور، وكتل خدمية قابلة للطي (thinking / tools / results)، ومرشّحات.
- user (أزرق) — رسائل المستخدم الحقيقية
- assistant (أخضر) — ردود Claude النصية
- thinking (بنفسجي) — التفكير الموسّع، مطويّ افتراضيًا
- tool_use (كهرماني) — استدعاءات الأدوات مع معاينة للمعاملات
- tool_result (سماوي / أحمر للأخطاء) — ردود الأدوات
- meta / task-note (أصفر) — حقن النظام و
<task-notification>من الوكلاء الفرعيين - system / attachment / ui-state — سجلات خدمية (مخفية افتراضيًا)
كل كتلة تظهر كصف منفصل مع شريط ملون على اليسار. لا توجد فقاعات محادثة: هذا سجلّ، وليس دردشة.
اختر ما يناسبك:
أ. تنزيل ملف واحد — الأسهل. خذ HTML المستقل من آخر إصدار، واضغط عليه ضغطة مزدوجة. ملف واحد، يعمل دون اتصال للأبد.
ب. نسخ المستودع — إذا أردت التعديل على الكود. تحتاج إلى index.html ومجلد lib/.
ج. استخدام العارض عبر الإنترنت — افتح https://hitmman55.github.io/claude-code-chat-viewer/. لا شيء للتنزيل.
بعد الفتح، اضغط منتقي الملفات (أو اسحب ملفًا، أو استخدم زر «جرّب مثالاً») واختر سجلّ .jsonl.
تُحفظ سجلات Claude Code في:
~/.claude/projects/<project-slug>/<session-uuid>.jsonl
حيث <project-slug> هو مجلد العمل لديك مع استبدال / بـ -. مثال: /home/user/myproj ← -home-user-myproj.
- منتقي الملفات — اضغط «اختيار ملف» واختر
.jsonl. - السحب والإفلات — أسقط الملف في أي مكان على الصفحة. حدّ متقطّع يُشير إلى المنطقة. المجلدات والسحوبات غير المتعلّقة بالملفات تُرفض بلطف.
- جرّب مثالاً — في الحالة الأولى (عند الاستخدام عبر الإنترنت) يظهر زرّ يُحمّل
demo.jsonlمضمّنًا يعرض جميع أنواع الكتل.
- وضع القراءة — مفتاح في الرأس يُخفي كل شيء باستثناء رسائل المستخدم الفعلية وردود المساعد النصية. بدون thinking، بدون استدعاءات أدوات، بدون سجلات خدمية.
- نسخ لكل رسالة — زرّ
📋في رأس كل مُدخل. ينسخ النصّ إلى الحافظة مع تأكيد✓لمدة 1.2 ثانية. يستخدمnavigator.clipboard.writeTextمع احتياطيdocument.execCommandلسياقاتfile://. - أسماء أدوات ودية — الأدوات المعروفة تحصل على أيقونات (مثل
📖 Read file،🖥️ Shell،📝 Edit file). الأدوات غير المعروفة / MCP →🔧 {raw_name}. - سمة تلقائية — يتبع العارض
prefers-color-schemeللنظام افتراضيًا. اضغط زرّ الشمس/القمر لتثبيت الاختيار؛ الاختيار المثبّت يستمرّ عبر الجلسات. - ست لغات للواجهة — English، Русский، Español، Français، 中文، العربية. تنتقل العربية تلقائيًا إلى RTL. يوجد منتقي في الرأس، ويُحفظ التفضيل.
- تحليل متدفّق — يُقرأ
.jsonlعبرfile.stream()+TextDecoderStream، ولا يُحمَّل الملف كسلسلة واحدة. - افتراضية أصلية —
content-visibility: autoعلى كل سجل: يتخطى المتصفح تخطيط ورسم السجلات خارج الشاشة. يتحمّل آلاف السجلات. - عرض بأجزاء — 500 سجل في كل جزء، وزر «عرض المزيد» لبقية السجلات.
- مرشّحات — خمسة مربعات اختيار (thinking / tools / results / system / ui-state)، تُبدّل الفئات عبر صنف CSS واحد على الحاوية (بدون إعادة تخطيط DOM).
- عرض آمن من XSS — تُهرَّب كل كتلة نصية قبل تمريرها إلى محلّل markdown. يتم تحييد صور Markdown (تظهر كنص خامل، لا تُجلب أبدًا). الروابط مقتصرة على
http(s)معrel="noopener noreferrer nofollow". - حدود للحجم — تُقصَّ كتل النص إلى 20 كيلوبايت، والكتل الخدمية إلى 5 كيلوبايت. عمليات النسخ ترث هذه الحدود — الصفحة لا ترسل ميغابايتات إلى الحافظة ولا يمكن أن تُعطّل المتصفح.
- احتياطي لـ
.json— إذا لم يكن الملف JSONL بل مصفوفة/كائن JSON عادية، يُحلَّل كقائمة سجلات.
- Chrome / Edge 85+
- Safari 18+
- Firefox 125+
كل هذا ضروري لدعم content-visibility: auto. على المتصفحات الأقدم يعمل العارض، لكن التمرير على الملفات الكبيرة سيصبح أبطأ بشكل ملحوظ.
واحدة فقط، مُحزَّمة محليًا في lib/:
- marked — markdown → HTML (~35 كيلوبايت)
بدون CDN، بدون شبكة، بدون Subresource Integrity. انسخ وشغِّل.
كل شيء يعمل محليًا في متصفحك. العارض نفسه لا يُرسل أي طلبات شبكية تلقائية — لا CDN، ولا تحليلات، ولا خطوط بعيدة. يتم تحييد صور Markdown المضمّنة في السجلات: تُعرض كنص خامل مع ظهور الرابط، لكن لا يتم جلبها. الروابط الخارجية (فقط http(s)) تُفتح في علامة تبويب جديدة فقط عند النقر عليها، مع rel="noopener noreferrer nofollow". تبقى سجلاتك على جهازك.
- الملفات التي تتجاوز حوالي 100 ميجابايت تحتاج إلى تحميل مفهرس حسب إزاحات الأسطر مع عرض نوافذ (غير مُنفَّذ).
- لا يوجد تصدير إلى Markdown/HTML (الهدف هو العرض لا التحويل).
- لا يوجد تلوين للصياغة في كتل الشيفرة (قرار مقصود للحفاظ على الحد الأدنى من الاعتماديات).
كل الشيفرة في ملف HTML واحد. حرِّره مباشرة — الأنماط في <style>، والمنطق في <script>، والترجمات في كائن I18N في بداية السكربت.
فحص صياغة JS بدون متصفح:
sed -n '/^<script>$/,/^<\/script>$/p' index.html | sed '1d;$d' | node --check /dev/stdinUnlicense — ملكية عامة. استخدمه كما تشاء دون الحاجة إلى إسناد.
