تشغيل Claude Code في التيرمنال
Claude Code أداة بتشتغل جوه فولدر مشروعك: بتقرا الملفات، تعدّل الكود، تشغّل أوامر، وتتكلم معاها بالعربي عادي.
-
اتأكد إن معاك اشتراك
محتاج اشتراك Claude (Pro أو Max أو Team أو Enterprise)، أو حساب Claude Console بـ API. الاشتراك هو الأنسب، وكمان ضروري لو عايز تستخدم إضافة Chrome بعدين.
-
ثبّت Claude Code
macOS / Linux / WSL
curl -fsSL https://claude.ai/install.sh | bash
Windows PowerShellirm https://claude.ai/install.ps1 | iex
أو لو بتستخدم Homebrew / WinGetbrew install --cask claude-code winget install Anthropic.ClaudeCode
على ويندوز يُفضّل تنزّل Git for Windows عشان Claude يقدر يستخدم Bash. اتأكد إن التثبيت تمام:
claude --version
-
ادخل فولدر المشروع وشغّله
cd path/to/my-website claude
أول مرة هيفتح المتصفح عشان تسجّل دخول. لو عايز تغيّر الحساب بعدين اكتب
/loginجوه الجلسة. -
خليه يفهم المشروع الأول
قبل أي تعديل، اسأله يستكشف. هو بيقرا الملفات لوحده، مش محتاج تلزق له كود.
المشروع ده بيعمل إيه؟ واشرحلي هيكل الفولدراتإيه التقنيات المستخدمة هنا؟ وفين نقطة البداية؟وبعدها اكتب
/initعشان يعمل ملفCLAUDE.mdفيه ملخص المشروع وأوامره، وده بيتقري في كل جلسة جديدة. -
ابدأ اشتغل
كلّمه زي زميل: كن محدد. بدل «صلّح البج» قول «صلّح مشكلة إن صفحة اللوجين بتبقى فاضية لما الباسورد يبقى غلط». لما يطلب إذن قبل تعديل، وافق أو ارفض. اضغط
Shift+Tabعشان تبدّل وضع الأذونات (مثلاً Plan mode اللي بيخطط من غير ما يعدّل).
أهم الأوامر
| الأمر | بيعمل إيه |
|---|---|
claude | يبدأ جلسة تفاعلية |
claude "task" | يبدأ الجلسة بطلب جاهز |
claude -p "query" | سؤال واحد ويخرج (مفيد في السكربتات) |
claude -c | يكمّل آخر محادثة في الفولدر ده |
claude -r | تختار محادثة قديمة ترجع لها |
/clear | يمسح المحادثة ويبدأ على نضيف |
/help | يعرض كل الأوامر، واكتب / لوحدها تشوف الأوامر والسكيلز المتاحة |
/exit | خروج |
ربط 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.
--chrome. وكمان الربط مش مدعوم جوه WSL، فشغّل Claude Code من ويندوز نفسه.-
نزّل الإضافة وسجّل دخول بنفس الحساب
من Chrome Web Store، وبعد التثبيت اقفل Chrome وافتحه تاني.
-
شغّل Claude Code مع Chrome
claude --chrome
أول مرة هتظهر رسالة تعريفية، اضغط Enter. ولو Claude احتاج المتصفح ومش لاقي الإضافة، هيعرض عليك يثبتها ويكمّل في نفس الجلسة.
-
اتأكد من الاتصال
/chrome
المفروض تشوف
Status: EnabledوExtension: Installed. من نفس القايمة تقدر تختار «Enabled by default» عشان متكتبش--chromeكل مرة (بس خلي بالك إنه بيستهلك context أكتر). -
جرّب
افتح localhost:3000 وجرّب فورم التسجيل ببيانات غلط، وقولي رسائل الخطأ بتظهر صح ولا لأافتح صفحة الداشبورد وشوف فيه أخطاء في الـ Console وقت التحميل، وصلّح سببها في الكود
Claude بيفتح تابات جديدة في مجموعة خاصة بالجلسة، وبيستخدم نفس تسجيلات الدخول اللي عندك. لما يقابل صفحة لوجين أو CAPTCHA بيقف ويطلب منك تعملها بإيدك. الصلاحيات لكل موقع بتتحدد من إعدادات الإضافة نفسها.
إضافة سكيلز للمشروع
السكيل ببساطة ملف 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 بيقراها عشان يقرر يستخدم السكيل إمتى، فاكتبها واضحة). وتحتها التعليمات نفسها بالماركداون.
-
اعمل الفولدر
mkdir -p .claude/skills/site-audit
-
اكتب الملف (المثال ده جاهز لتحليل موقعك، عدّله على مزاجك)
.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
-
استخدمها
افتح جلسة جديدة (
claude --chrome) واكتب/هتلاقيها في القايمة. نادِها مباشرة:/site-audit https://mysite.com
أو قول «حلّل الموقع» وهو هيختارها لوحده بناءً على الـ description.
CLAUDE.md. أي إجراء بخطوات (تحليل، ديبلوي، إنشاء صفحة) خليه سكيل. ميزة السكيل إن محتواها مش بيتحمّل غير لما تتستخدم، فمش بتاكل من الـ context.أفكار لسكيلز تانية
أيوه، ممكن تطلب من Claude نفسه يكتبلك السكيل ويحطها في المكان الصح.
سيناريو كامل: حلّل موقعي وصلّحه
كل حاجة فوق مع بعض، من أول ما تفتح التيرمنال لحد ما التعديلات تتعمل.
- افتح الجلسة في فولدر الموقع
cd my-website claude --chrome
- اطلب التحليل
/site-audit https://mysite.com
هتشوف Chrome بيفتح تاب وبيتنقل في الموقع قدامك.
- راجع التقرير واختار
ابدأ بالمشكلة الأولى والتانية بس، ووريني التعديل قبل ما تحفظهبعد التصليح افتح الصفحة تاني واتأكد إن الخطأ اختفى من الـ Console
- احفظ الشغل
اعمل 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/**.مثال جاهز لمشروع موقع
{
"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)
| الوضع | بيعمل إيه |
|---|---|
default | Manual: يسألك أول مرة لكل أداة |
acceptEdits | يقبل تعديل الملفات وأوامر زي mkdir وmv لوحده |
plan | يقرا ويخطط من غير ما يعدّل ملفاتك |
auto | يوافق لوحده مع فحص أمان في الخلفية |
dontAsk | أي حاجة مش في allow بتترفض على طول بدل ما يسألك |
bypassPermissions | مش بيسأل خالص. استخدمه بس جوه container أو VM |
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) واذكرها في تعليمات السكيل |
# 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.
-
اعمل اسم مختصر للسيرفر
~/.ssh/config
Host mysite-staging HostName 203.0.113.10 User deploy IdentityFile ~/.ssh/id_ed25519واستخدم يوزر على السيرفر صلاحياته محدودة (زي
deploy) مش root، ويُفضّل سيرفر staging الأول. -
اقفل قراية المفاتيح وخلي أوامر السيرفر بإذن
{ "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 نفسه بيقراها عادي، وده بالظبط اللي عايزينه. أي أمر تاني على السيرفر هيسألك الأول، وأمر قراية اللوج اللي بتستخدمه كتير سمحنا بيه بالنص. -
عرّفه في CLAUDE.md
اكتب سطر زي: «سيرفر الـ staging اسمه mysite-staging، اللوجات في /var/log/nginx، ممنوع أي تعديل على production». ودلوقتي تقدر تقوله: «ادخل السيرفر وشوف آخر أخطاء في اللوج وقارنها بالكود».
٤. API keys وباسووردات
متلزقهاش في الشات ولا في CLAUDE.md. عندك طريقتين:
{
"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، وخلي الكود هو اللي يقراها وقت التشغيل.
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 بحساب الاشتراك |