Claude في التيرمنال، بيفتح موقعك في Chrome، وبيشتغل بطريقتك

دليل عملي بالمصري: هتثبّت Claude Code، توصّله بإضافة Claude in Chrome عشان يشوف موقعك بعينه، وبعدين تعلّمه سكيلز خاصة بمشروعك عشان يعمل الشغل اللي انت محتاجه كل مرة بنفس الجودة.

~/my-website
الجزء الأول

تشغيل Claude Code في التيرمنال

Claude Code أداة بتشتغل جوه فولدر مشروعك: بتقرا الملفات، تعدّل الكود، تشغّل أوامر، وتتكلم معاها بالعربي عادي.

  1. اتأكد إن معاك اشتراك

    محتاج اشتراك Claude (Pro أو Max أو Team أو Enterprise)، أو حساب Claude Console بـ API. الاشتراك هو الأنسب، وكمان ضروري لو عايز تستخدم إضافة Chrome بعدين.

  2. ثبّت Claude Code
    macOS / Linux / WSL
    curl -fsSL https://claude.ai/install.sh | bash
    Windows PowerShell
    irm https://claude.ai/install.ps1 | iex
    أو لو بتستخدم Homebrew / WinGet
    brew install --cask claude-code
    winget install Anthropic.ClaudeCode

    على ويندوز يُفضّل تنزّل Git for Windows عشان Claude يقدر يستخدم Bash. اتأكد إن التثبيت تمام:

    claude --version
  3. ادخل فولدر المشروع وشغّله
    cd path/to/my-website
    claude

    أول مرة هيفتح المتصفح عشان تسجّل دخول. لو عايز تغيّر الحساب بعدين اكتب /login جوه الجلسة.

  4. خليه يفهم المشروع الأول

    قبل أي تعديل، اسأله يستكشف. هو بيقرا الملفات لوحده، مش محتاج تلزق له كود.

    المشروع ده بيعمل إيه؟ واشرحلي هيكل الفولدرات
    إيه التقنيات المستخدمة هنا؟ وفين نقطة البداية؟

    وبعدها اكتب /init عشان يعمل ملف CLAUDE.md فيه ملخص المشروع وأوامره، وده بيتقري في كل جلسة جديدة.

  5. ابدأ اشتغل

    كلّمه زي زميل: كن محدد. بدل «صلّح البج» قول «صلّح مشكلة إن صفحة اللوجين بتبقى فاضية لما الباسورد يبقى غلط». لما يطلب إذن قبل تعديل، وافق أو ارفض. اضغط Shift+Tab عشان تبدّل وضع الأذونات (مثلاً Plan mode اللي بيخطط من غير ما يعدّل).

أهم الأوامر

الأمربيعمل إيه
claudeيبدأ جلسة تفاعلية
claude "task"يبدأ الجلسة بطلب جاهز
claude -p "query"سؤال واحد ويخرج (مفيد في السكربتات)
claude -cيكمّل آخر محادثة في الفولدر ده
claude -rتختار محادثة قديمة ترجع لها
/clearيمسح المحادثة ويبدأ على نضيف
/helpيعرض كل الأوامر، واكتب / لوحدها تشوف الأوامر والسكيلز المتاحة
/exitخروج
بتحب VS Code؟ فيه إضافة Claude Code لـ VS Code وJetBrains بنفس الإمكانيات، ونسخة Desktop ونسخة ويب. التيرمنال بيفضل الأساس، وكل اللي تحت ده بيشتغل فيهم.
الجزء التاني

ربط Claude Code بإضافة Claude in Chrome

من غير الإضافة، Claude شايف الكود بس. بالإضافة بيفتح موقعك فعلاً في المتصفح: يضغط، يملا فورمز، يقرا أخطاء الـ Console، ياخد سكرين شوت، ويرجع يصلّح الكود اللي عمل المشكلة.

المتطلبات

متصفح Chrome أو Edge (أو Brave وArc وVivaldi وOpera)، وإضافة Claude in Chrome إصدار 1.0.36 أو أحدث، واشتراك Anthropic مباشر (Pro أو Max أو Team أو Enterprise)، وتكون داخل بـ /login.

مهم: لو داخل بـ API key، الربط مع Chrome هيفضل مقفول حتى لو كتبت --chrome. وكمان الربط مش مدعوم جوه WSL، فشغّل Claude Code من ويندوز نفسه.
  1. نزّل الإضافة وسجّل دخول بنفس الحساب

    من Chrome Web Store، وبعد التثبيت اقفل Chrome وافتحه تاني.

  2. شغّل Claude Code مع Chrome
    claude --chrome

    أول مرة هتظهر رسالة تعريفية، اضغط Enter. ولو Claude احتاج المتصفح ومش لاقي الإضافة، هيعرض عليك يثبتها ويكمّل في نفس الجلسة.

  3. اتأكد من الاتصال
    /chrome

    المفروض تشوف Status: Enabled وExtension: Installed. من نفس القايمة تقدر تختار «Enabled by default» عشان متكتبش --chrome كل مرة (بس خلي بالك إنه بيستهلك context أكتر).

  4. جرّب
    افتح localhost:3000 وجرّب فورم التسجيل ببيانات غلط، وقولي رسائل الخطأ بتظهر صح ولا لأ
    افتح صفحة الداشبورد وشوف فيه أخطاء في الـ Console وقت التحميل، وصلّح سببها في الكود

Claude بيفتح تابات جديدة في مجموعة خاصة بالجلسة، وبيستخدم نفس تسجيلات الدخول اللي عندك. لما يقابل صفحة لوجين أو CAPTCHA بيقف ويطلب منك تعملها بإيدك. الصلاحيات لكل موقع بتتحدد من إعدادات الإضافة نفسها.

في VS Code: مش محتاج أي flag، طالما الإضافة متثبتة، أدوات المتصفح بتبقى متاحة.
الجزء التالت

إضافة سكيلز للمشروع

السكيل ببساطة ملف SKILL.md فيه تعليمات لشغلانة معينة. بدل ما تلزق نفس الخطوات كل مرة، تكتبها مرة واحدة، وClaude يستخدمها لوحده لما تبقى مناسبة، أو تناديها انت بـ /اسم-السكيل.

تحطها فين؟

النوعالمسارمتاحة في
سكيل المشروع.claude/skills/<name>/SKILL.mdالمشروع ده بس، وتترفع مع الكود على Git لفريقك
سكيل شخصية~/.claude/skills/<name>/SKILL.mdكل مشاريعك
من Plugin<plugin>/skills/<name>/SKILL.mdمكان ما البلجن مفعّل

شكل المشروع بعد الإضافة

my-website/
├── CLAUDE.md                  ← معلومات عامة عن المشروع (بتتقري دايماً)
├── .claude/
│   └── skills/
│       ├── site-audit/
│       │   ├── SKILL.md       ← تحليل الموقع
│       │   └── checklist.md   ← ملف مساعد اختياري
│       └── new-page/
│           └── SKILL.md       ← إنشاء صفحة بنفس ستايل الموقع
└── src/ ...

تركيب ملف SKILL.md

جزئين: فوق بين علامتين --- فيه name (بيبقى اسم الأمر) وdescription (Claude بيقراها عشان يقرر يستخدم السكيل إمتى، فاكتبها واضحة). وتحتها التعليمات نفسها بالماركداون.

  1. اعمل الفولدر
    mkdir -p .claude/skills/site-audit
  2. اكتب الملف (المثال ده جاهز لتحليل موقعك، عدّله على مزاجك)
    .claude/skills/site-audit/SKILL.md
    ---
    name: site-audit
    description: تحليل شامل لموقع ويب: الأداء، السيو، الأخطاء، الموبايل، وسهولة الاستخدام. استخدمها لما المستخدم يطلب يحلل أو يراجع أو يفحص الموقع.
    ---
    
    # تحليل الموقع
    
    ## الخطوات
    1. افتح الرابط اللي المستخدم إداه في Chrome (لو مفيش رابط، شغّل المشروع محلياً وافتح localhost).
    2. اقرا أخطاء وتحذيرات الـ Console في الصفحة الرئيسية وأهم ٣ صفحات.
    3. راجع السيو: title و meta description و h1 واحد لكل صفحة و alt للصور.
    4. جرّب الموقع بعرض موبايل وخد سكرين شوت لأي حاجة مكسورة.
    5. جرّب أهم رحلة للمستخدم (تسجيل، شراء، تواصل) وسجّل أي خطوة بتعطّل.
    6. ارجع للكود واعرف سبب كل مشكلة.
    
    ## شكل التقرير
    - ابدأ بأخطر ٣ مشاكل.
    - لكل مشكلة: فين، ليه بتحصل، الملف المسؤول، والحل المقترح.
    - متعدّلش أي كود غير لما المستخدم يوافق.
    - اكتب التقرير بالعربي في ملف reports/audit-تاريخ-اليوم.md
  3. استخدمها

    افتح جلسة جديدة (claude --chrome) واكتب / هتلاقيها في القايمة. نادِها مباشرة:

    /site-audit https://mysite.com

    أو قول «حلّل الموقع» وهو هيختارها لوحده بناءً على الـ description.

إمتى CLAUDE.md وإمتى سكيل؟ الحقائق الثابتة (الستاك، أوامر التشغيل، قواعد الكود) مكانها CLAUDE.md. أي إجراء بخطوات (تحليل، ديبلوي، إنشاء صفحة) خليه سكيل. ميزة السكيل إن محتواها مش بيتحمّل غير لما تتستخدم، فمش بتاكل من الـ context.

أفكار لسكيلز تانية

اعملّي سكيل اسمها new-page تعمل صفحة جديدة بنفس ستايل وكومبوننتات الموقع
اعملّي سكيل تراجع أي تعديل قبل الـ commit: أخطاء، أمان، وتوافق مع الموبايل

أيوه، ممكن تطلب من Claude نفسه يكتبلك السكيل ويحطها في المكان الصح.

الجزء الرابع

سيناريو كامل: حلّل موقعي وصلّحه

كل حاجة فوق مع بعض، من أول ما تفتح التيرمنال لحد ما التعديلات تتعمل.

  1. افتح الجلسة في فولدر الموقع
    cd my-website
    claude --chrome
  2. اطلب التحليل
    /site-audit https://mysite.com

    هتشوف Chrome بيفتح تاب وبيتنقل في الموقع قدامك.

  3. راجع التقرير واختار
    ابدأ بالمشكلة الأولى والتانية بس، ووريني التعديل قبل ما تحفظه
    بعد التصليح افتح الصفحة تاني واتأكد إن الخطأ اختفى من الـ Console
  4. احفظ الشغل
    اعمل commit للتعديلات برسالة واضحة
    حدّث CLAUDE.md بأي حاجة اتعلمناها عن المشروع النهارده
الجزء الخامس

الصلاحيات: تسمح بإيه وتمنع إيه

بتقول لـ Claude Code يعمل إيه لوحده، يسألك قبل إيه، ويرفض إيه خالص، على مستوى الملفات والمسارات والأوامر والمواقع. القواعد دي Claude Code نفسه هو اللي بينفذها، مش مجرد تعليمات للموديل.

ملفات الإعدادات فين؟

الملفبيطبّق علىبيترفع على Git؟
~/.claude/settings.jsonكل مشاريعك على الجهازلأ
.claude/settings.jsonالمشروع ده، لكل الفريقأيوه
.claude/settings.local.jsonالمشروع ده، ليك انت بسلأ (وهنا بيتحفظ «Yes, and don't ask again»)

وأسهل طريقة تشوف وتعدّل: اكتب /permissions جوه الجلسة، هيعرضلك كل القواعد وكل قاعدة جاية من أنهي ملف.

التلات قوايم

allow: يعملها من غير ما يسألك. ask: يسألك كل مرة. deny: ممنوعة. الترتيب دايماً deny ثم ask ثم allow، وأول واحدة تنطبق هي اللي بتكسب. يعني لو فيه deny على حاجة، مفيش allow يقدر يستثنيها، ولو اتمنعت في أي ملف إعدادات محدش يقدر يسمح بيها من ملف تاني.

كتابة القواعد

القاعدةمعناها
Bashكل أوامر التيرمنال (في deny بتشيل الأداة خالص)
Bash(npm run *)أي npm run بعدها أي حاجة
Bash(git push *)أي git push
Read(./.env)قراية ملف .env في الفولدر الحالي
Read(secrets/**)أي فولدر اسمه secrets وكل اللي جواه
Edit(/src/**)تعديل أي ملف جوه src في جذر المشروع
WebFetch(domain:example.com)فتح صفحات من الدومين ده
mcp__githubكل أدوات سيرفر MCP اسمه github

المسارات في Read وEdit: //path مسار كامل من جذر الجهاز، ~/path من الهوم، /path من جذر المشروع (في إعدادات المشروع)، وpath أو ./path من الفولدر الحالي. * جوه فولدر واحد، و** في كل الفولدرات اللي تحت.

فخ مشهور: Read(/Users/me/secret) مش مسار كامل، الشرطة الواحدة معناها «من جذر المشروع». المسار الكامل بشرطتين: Read(//Users/me/secret). وعلى ويندوز: //c/Users/me/**.

مثال جاهز لمشروع موقع

.claude/settings.json
{
  "permissions": {
    "allow": [
      "Bash(npm run *)",
      "Bash(npm install *)",
      "Bash(git status)",
      "Bash(git diff *)",
      "Bash(git commit *)",
      "Edit(/src/**)",
      "Edit(/public/**)",
      "WebFetch(domain:mysite.com)"
    ],
    "ask": [
      "Bash(git push *)",
      "Bash(ssh *)",
      "Edit(/package.json)"
    ],
    "deny": [
      "Read(.env)",
      "Read(.env.*)",
      "Read(secrets/**)",
      "Read(~/.ssh/**)",
      "Read(~/.aws/**)",
      "Bash(rm -rf *)",
      "Bash(sudo *)",
      "Bash(curl *)",
      "Bash(wget *)"
    ],
    "additionalDirectories": ["../shared-assets"],
    "defaultMode": "default"
  }
}

منعنا curl وwget وسبنا WebFetch لدومين موقعك بس، عشان التحكم في الشبكة يبقى من مكان واحد. وخلي بالك: قواعد allow اللي في إعدادات المشروع مش بتشتغل غير لما توافق على رسالة «trust this folder» أول مرة تفتح المشروع.

أوضاع الأذونات (defaultMode أو Shift+Tab)

الوضعبيعمل إيه
defaultManual: يسألك أول مرة لكل أداة
acceptEditsيقبل تعديل الملفات وأوامر زي mkdir وmv لوحده
planيقرا ويخطط من غير ما يعدّل ملفاتك
autoيوافق لوحده مع فحص أمان في الخلفية
dontAskأي حاجة مش في allow بتترفض على طول بدل ما يسألك
bypassPermissionsمش بيسأل خالص. استخدمه بس جوه container أو VM
حدود لازم تعرفها: قواعد Read وEdit بتغطي أدوات Claude وأوامر زي cat وhead، لكن مش بتمنع سكربت Python أو Node يفتح الملف بنفسه. وقاعدة Bash(rm *) مش هتمسك /bin/rm أو sh -c 'rm ...'. لو عايز منع حقيقي على مستوى نظام التشغيل فعّل الـ Sandboxing جنب الصلاحيات. وكتابة «متقراش .env» في CLAUDE.md توجيه للموديل، مش حماية.
الجزء السادس

تديله بيانات: ملفات، خدمات، SSH، ومفاتيح

القاعدة الذهبية: ادّي Claude القدرة إنه يستخدم الحاجة، مش الحاجة نفسها. يعني يوصل للسيرفر من غير ما يشوف المفتاح، ويستخدم الـ API key من غير ما تلزقه في الشات.

١. ملفات وداتا يشتغل عليها

أي حاجة جوه فولدر المشروع بيقدر يقراها. عشان توجهه لحاجة معينة:

عايزاعمل كده
يستخدم ملف في طلب واحداكتب @ واسم الملف في رسالتك: «حلّل @data/sales.csv»
يعرف حاجة في كل جلسةضيفها في CLAUDE.md أو اعمل import: @docs/brand-guide.md
فولدر بره المشروعclaude --add-dir ../assets، أو /add-dir جوه الجلسة، أو additionalDirectories في الإعدادات
داتا مرجعية لسكيل معينةحطها جنب SKILL.md في نفس الفولدر (زي checklist.md) واذكرها في تعليمات السكيل
CLAUDE.md
# My Website
- Stack: Next.js + Tailwind
- Run: npm run dev (port 3000)

## مراجع
@docs/brand-guide.md
@docs/seo-keywords.md
@data/products-schema.json

الملفات المستوردة بتتحمّل في كل جلسة وبتاكل من الـ context، فخليها مختصرة. الداتا الكبيرة (CSV ضخم مثلاً) متعملهاش import، اذكر مكانها بس وهو يقراها لما يحتاج.

٢. خدمات خارجية: قاعدة بيانات، Notion، GitHub…

الطريقة الصح هي سيرفر MCP، بيدّي Claude أدوات جاهزة للخدمة بدل ما تدّيله باسووردات:

claude mcp add my-service --transport http https://example.com/mcp

وبعدها تتحكم فيه بالصلاحيات: "allow": ["mcp__my-service__search"] للقراية، و"ask": ["mcp__my-service"] لأي حاجة تانية. اكتب /mcp عشان تشوف السيرفرات المتوصلة وأدواتها.

٣. SSH للسيرفر

متدّيش Claude المفتاح الخاص (id_rsa أو id_ed25519) أبداً. جهّز الاتصال عندك، وهو يستخدم أمر ssh زيك بالظبط، والمفتاح يفضل مع برنامج ssh.

  1. اعمل اسم مختصر للسيرفر
    ~/.ssh/config
    Host mysite-staging
        HostName 203.0.113.10
        User deploy
        IdentityFile ~/.ssh/id_ed25519

    واستخدم يوزر على السيرفر صلاحياته محدودة (زي deploy) مش root، ويُفضّل سيرفر staging الأول.

  2. اقفل قراية المفاتيح وخلي أوامر السيرفر بإذن
    {
      "permissions": {
        "allow": [
          "Bash(ssh mysite-staging 'tail -n 200 /var/log/nginx/error.log')"
        ],
        "ask": ["Bash(ssh *)", "Bash(scp *)", "Bash(rsync *)"],
        "deny": ["Read(~/.ssh/**)"]
      }
    }

    Read(~/.ssh/**) بتمنع أدوات Claude تفتح ملفات المفاتيح، لكن برنامج ssh نفسه بيقراها عادي، وده بالظبط اللي عايزينه. أي أمر تاني على السيرفر هيسألك الأول، وأمر قراية اللوج اللي بتستخدمه كتير سمحنا بيه بالنص.

  3. عرّفه في CLAUDE.md

    اكتب سطر زي: «سيرفر الـ staging اسمه mysite-staging، اللوجات في /var/log/nginx، ممنوع أي تعديل على production». ودلوقتي تقدر تقوله: «ادخل السيرفر وشوف آخر أخطاء في اللوج وقارنها بالكود».

٤. API keys وباسووردات

متلزقهاش في الشات ولا في CLAUDE.md. عندك طريقتين:

.claude/settings.local.json (على جهازك بس، مش بيترفع)
{
  "env": {
    "STAGING_API_URL": "https://staging.mysite.com/api",
    "STAGING_API_KEY": "sk_test_xxxxxxxx"
  }
}

المتغيرات دي بتبقى متاحة للأوامر اللي Claude بيشغلها، فالسكربتات بتاعتك تستخدم process.env.STAGING_API_KEY وخلاص. أو سيب المفاتيح في .env زي ما هي، وامنع قرايتها بـ Read(.env) في deny، وخلي الكود هو اللي يقراها وقت التشغيل.

بصراحة: أي أمر Claude بيشغّله يقدر يوصل للمتغيرات دي (مثلاً printenv)، والـ deny بيقلل الوصول مش بيلغيه. فاستخدم مفاتيح test أو staging بصلاحيات محدودة وتقدر تلغيها بسهولة، وخلي مفاتيح production بعيد عن أي جلسة.
الجزء السابع

لو حاجة مشتغلتش

المشكلةالحل
«Browser extension is not connected»اقفل Chrome وClaude Code وافتحهم تاني، وبعدين /chrome ← Reconnect extension
الإضافة «Not detected»اتأكد إنها متفعلة من chrome://extensions. أول مرة بتربط لازم تعمل ريستارت لـ Chrome
الاتصال بيقع بعد وقت طويلالإضافة بتنام لوحدها، اعمل Reconnect من /chrome
أوامر المتصفح وقفت فجأةغالباً فيه popup (alert) في الصفحة، اقفله بإيدك وقول لـ Claude يكمّل
Claude مش شايف السكيلاتأكد إن اسم الملف SKILL.md بالظبط وإنه جوه فولدر باسم السكيل، وافتح جلسة جديدة
قاعدة allow مش شغالة وبيسألني برضهغالباً فيه قاعدة ask أو deny بتنطبق قبلها. افتح /permissions وشوف كل قاعدة جاية منين. ولو في إعدادات المشروع، اتأكد إنك وافقت على trust للفولدر
مسار مطلق في Read/Edit مش بيتطبقاستخدم شرطتين //Users/... مش شرطة واحدة
ملف مستورد في CLAUDE.md مش بيتحمّللو المسار جوه backticks مش بيتعمله import. ولو الملف بره المشروع، لازم توافق على رسالة الـ external imports
الـ Chrome مقفول رغم --chromeانت غالباً داخل بـ API key. اعمل /login بحساب الاشتراك