Claude Code — الـAI Agent اللي بيسكن التيرمنال بتاعك 🖥️

"مش chatbot بتسأله فيرد. ده مهندس صغير بيعيش في الترمنال بتاعك — بيقرأ الكود، بيعدّله، بيشغّل الـtests، بيفتح PR، وبيرجعلك يقولك: خلّصت. تحب تشوف؟"

Section1. تعال نتفق على حاجة الأول

تخيّل معايا المشهد: الساعة اتناشر بالليل، عندك feature لازم تخلص، والـcodebase كبير ومش إنت اللي كاتبه، وكل مرة تفتح ملف تلاقي نفسك ضايع بين عشر ملفات تانية. تفتح الـChatGPT، تنسخ كود، تلزقه، يرجّعلك حاجة، تنسخها تاني، تجرّبها، تطلع غلط… وترجع من الأول. الحلقة دي بتاكل وقتك وطاقتك.

دلوقتي تخيّل بديل: تكتب في الترمنال جملة واحدة — "زوّد endpoint جديد للـusers، اكتبله test، وشغّل الـsuite" — وحد يقرأ الـrepo بتاعك بالكامل، يفهم الـconventions اللي إنت ماشي عليها، يعدّل الملفات الصح، يشغّل الـtests، ولو طلع فيه غلط يصلّحه، وبعدين يقوللك "جاهز، تحب أعمل commit؟". ده مش خيال — ده Claude Code.

تقوللي: "طب ده زي أي AI assistant تاني." أقولك: لأ. الفرق إن ده مش بيقترح — ده بيتصرّف. ليه إيدين: بيقرا الملفات فعلاً، بيكتب فيها فعلاً، بيشغّل أوامر shell فعلاً، وبيتكلم مع أدوات خارجية فعلاً. والأهم — إنت اللي ماسك زمام الأذونات: هو مش بيلمس حاجة من غير القواعد اللي إنت حاططها.

هات كوباية القهوة وركّز معايا، لأننا هنمشي من أول لحظة تنصيب لحد ما تبقى بتفوّض له مهام كاملة وهو بيشتغل لوحده بأمان. خطوة خطوة.

Section2. إيه هو Claude Code بالظبط

بالبلدي كده: Claude Code هو الأداة الرسمية من Anthropic اللي بتحط موديل Claude كـagent جوه الترمنال بتاعك. مش plugin في الـIDE بيكمّل سطر، ولا صفحة ويب بتنسخ منها وتلزق. ده برنامج بيشتغل في الـshell، وبيدّي Claude "إيدين وعينين" على المشروع بتاعك.

الأساسيات في سطور

  • بيشتغل بموديلات Claude — عيلة Opus وSonnet وHaiku — وتقدر تبدّل بينهم في أي لحظة بـ/model. كل واحد ليه مكانه: Opus للمهام الصعبة، Sonnet للشغل اليومي، Haiku للحاجات السريعة والرخيصة.
  • بيقرا ويكتب في الملفات ويشغّل أوامر shell — بأذونات إنت اللي بتحددها.
  • Subagents & Delegation — يقدر يفوّض شغل لـagents متخصصة، كل واحدة في context مستقل بتاعها.
  • MCP — يتوصل بأي خدمة خارجية (GitHub, database, Slack…) عن طريق بروتوكول موحّد.
  • Hooks — نقاط تدخّل بتخليك تتحكم في سلوكه بشكل حتمي (deterministic)، مش مجرد رجاء في الـprompt.
  • Permission Modes — من "اسألني قبل كل حاجة" لحد "اشتغل لوحدك" — إنت اللي بتقرر مستوى الثقة.
  • بيشتغل في كذا مكان: الترمنال، إضافة VS Code وJetBrains، تطبيق Desktop، وعلى الويب في claude.ai/code.

معمارية Claude Code — إنت في الترمنال، والـAgent Loop في النص، وتحته الأدوات والـMCP والأذونات والذاكرة

بصّ للرسمة فوق كده. إنت فوق، بتكلّم الـAgent Loop — ده القلب. الـLoop ده بيفكّر، بيقرر يستخدم أداة، ينفّذها، يشوف النتيجة، يفكّر تاني… لحد ما يخلّص المهمة. وعلى الجناحين: الأذونات بتحرس كل خطوة، والـSubagents بيستنّوا لو المهمة كبرت. وتحت: الأدوات، والـMCP، والذاكرة (CLAUDE.md). كل اللي جاي في المقال ده مجرد تكبير لكل صندوق في الرسمة دي.

Section3. التنصيب — من صفر لأول جلسة

خلينا نبدأ صح. عندك أكتر من طريقة، وكلها بتنزّل نفس الـbinary في الآخر.

bash
# macOS / Linux / WSL — الطريقة المنصوح بيها (native installer)
curl-fsSLhttps://claude.ai/install.sh|bash

# Windows PowerShell
irmhttps://claude.ai/install.ps1|iex

# Homebrew (مش بيعمل auto-update)
brewinstall--caskclaude-code

# Windows بـWinGet
wingetinstallAnthropic.ClaudeCode

# npm — بيحتاج Node.js 22+ (وبينزّل نفس الـnative binary)
npminstall-g@anthropic-ai/claude-code

ملحوظة: الـnative installer بيعمل auto-update لوحده في الخلفية. أما Homebrew وWinGet وnpm فلازم تحدّثهم يدوي. ومتستخدمش sudo npm install -g أبداً — بيجيبلك مشاكل صلاحيات.

بعد التنصيب، اتأكد إن كل حاجة تمام:

تثبيت Claude Code والتأكد
➜ ~ curl -fsSL https://claude.ai/install.sh | bash
التنصيب بياخد ثواني معدودة...
➜ ~ claude --version
2.1.211 (Claude Code)
➜ ~ claude doctor
فحص read-only للتنصيب والإعدادات — من غير ما يفتح جلسة
➜ ~ claude
➜ بيفتح الجلسة التفاعلية وتبدأ تكتب طلبك
➜ ~⏎ نفّذ · ⌫ امسح

الدخول (Authentication)

أول ما تكتب claude، هيطلب منك تسجّل دخول. Claude Code محتاج حساب Pro أو Max أو Team أو Enterprise أو Console — الخطة المجانية من claude.ai مش بتديك access. عندك كذا طريق:

  • حساب الاشتراك (Pro/Max): تكتب claude، يفتحلك المتصفح، تسجّل دخول، خلاص.
  • مفتاح API: لو محطوط ANTHROPIC_API_KEY في البيئة، Claude هيسألك مرة واحدة يوافق عليه بدل ما يفتح متصفح — مناسب للـservers.
  • Enterprise: تقدر توصّله بـAmazon Bedrock أو Google Vertex AI أو Microsoft Foundry.
  • CI/سكربتات: claude setup-token بيطلّعلك OAuth token طويل العمر تستخدمه في الأتمتة.

نصيحة: الأوامر claude --version وclaude doctor هما أول حاجة تعملها لو حسّيت إن فيه حاجة مش مظبوطة. doctor بيقولك على مشاكل التنصيب والإعدادات من غير ما يبوّظ أي حاجة.

Section4. أول جلسة — وأهم فكرة هتتعلمها: الـPermission Modes

هنا النقطة اللي بتفرّق Claude Code عن أي chatbot. إنت مش بتسيب الـagent يعمل اللي هو عايزه — إنت بتحدد مستوى الثقة. وده بيتحكم فيه حاجة اسمها Permission Modes، وبتبدّل بينها بضغطة واحدة: Shift+Tab.

أوضاع الأذونات الأربعة وبتلف بينها بـShift+Tab

الوضعبيعمل إيهإمتى تستخدمه
defaultبيسألك أول مرة يستخدم كل أداةالبداية الآمنة — لما لسه بتتعرّف على المشروع
acceptEditsبيوافق تلقائي على تعديلات الملفات (لسه بيسأل في أوامر shell الخطيرة)لما تكون واثق وعايز تمشّي بسرعة
planread-only — بيخطّط ويشرح ومش بيعدّل حاجة لحد ما توافقلما تبغى تفهم الـscope الأول من غير أي مخاطرة
bypassPermissionsمفيش أي سؤال — بينفّذ كل حاجةخطر! بس في بيئة معزولة أو CI وإنت واثق 100%

Plan Mode — أنا بحبّه، وهقولك ليه

تقوللي: "أنا خايف الـagent يعدّل حاجة غلط في كود مهم." رد منطقي جداً. عشان كده فيه Plan Mode. فيه، Claude مش بيلمس ولا ملف — بيقرا، بيحلّل، ويطلّعلك خطة: "هعدّل الملفات دي، هضيف الـfunction دي، هشغّل الـtest ده". إنت تقرا الخطة، لو عجبتك توافق، لو لأ تعدّلها. يعني إنت شايف الفيلم قبل ما يحصل. ده الوضع اللي بستخدمه لما أدخل على codebase جديد أو مهمة حسّاسة.

وتبدّل بينهم كلهم بـShift+Tab — ضغطة ورا ضغطة بتلفّ على الأوضاع. جرّبها من أول جلسة وهتحس بالفرق.

Section5. الـSlash Commands — لوحة التحكم بتاعتك

الجلسة مش مجرد محادثة — دي control panel كامل. كل أمر بيبدأ بـ/. مش هعدّهم كلهم هنا (ده شغل الـcheat sheet)، بس تعال ناخد نكهة المجموعات:

أوامر الجلسة والمحادثة

  • /clear — يبدأ محادثة جديدة نضيفة (بيحافظ على ذاكرة المشروع). context نضيف = نتائج أحسن.
  • /compact — يضغط المحادثة الطويلة في ملخص عشان يفضّي مكان في الـcontext من غير ما تفقد الخيط.
  • /resume — يرجّعك لمحادثة قديمة، و/rewind — يرجّع الكود والمحادثة لنقطة checkpoint سابقة (ده الـundo السحري بتاعك).
  • /context — يوريك الـcontext window ماشي فين، إيه اللي واخد مكان.

أوامر الشغل والمراجعة

  • /init — يعمل ملف CLAUDE.md للمشروع (هنتكلم عنه بعد شوية).
  • /diff — يعرض التعديلات اللي لسه متعملهاش commit.
  • /code-review — يراجع الـdiff بتاعك ويطلّعلك bugs وتحسينات. و/security-review — يفحص ثغرات أمنية. و/simplify — ينضّف الكود بس من غير ما يدوّر على bugs.
  • /agents — يدير الـsubagents (ده الموضوع الكبير الجاي).
  • /mcp — يدير سيرفرات MCP. و/hooks — يوريك إعدادات الـhooks.

أوامر مبنية جوّاه (Bundled Skills)

Claude Code جاي معاه skills جاهزة زي /plan و/debug و/deep-research (بيبحث على الويب ويطلّعلك تقرير موثّق) و/loop (يكرّر أمر على فترات) و/goal (يفضل شغّال لحد ما شرط يتحقق). دي مش أوامر عادية — دي workflows كاملة متغلّفة.

نصيحة: اكتب / لوحدها وسيبها تفلتر — هتلاقي كل الأوامر المتاحة قدامك بأسمائها ووصفها. وفي متعرفش أمر، ده أسرع من أي documentation.

Section6. الـDelegation والـSubagents — قلب الموضوع ★

يبقى وصلنا لأهم جزء، والجزء اللي بيخلّي Claude Code يشتغل على مشاريع كبيرة من غير ما "يتوه". تقوللي: "طب الـagent الواحد مش بيكفّي؟" قولك: يكفّي لحد ما المهمة تكبر. ساعتها بيحصل حاجة اسمها context pollution — الـagent بيتلخبط لأن الـcontext بتاعه اتملى بنتايج بحث وlogs وملفات مش هيرجعلها تاني. الحل؟ التفويض (Delegation).

التفويض — orchestrator واحد بيوزّع على workers متخصصين، وكل واحد في context مستقل، وبيرجع الملخص بس

الفكرة في جملة

الـagent الرئيسي بيبقى المايسترو (orchestrator). لما تيجي مهمة فرعية كبيرة — "دوّر في الـcodebase كله على كل استخدامات الـfunction دي" — بدل ما يعملها بنفسه ويملّي دماغه، بيفوّضها لـsubagent. الـsubagent ده بيشتغل في context window مستقل تماماً بتاعه، بيخلّص، وبيرجّع الملخص بس — مش كل الزبالة اللي لقاها في الطريق. النتيجة: الـcontext الرئيسي بيفضل نضيف، والـagent بيفضل مركّز.

إزاي بيقرّر يفوّض؟

دي النقطة الجميلة: إنت بتعرّف الـsubagent بـوصف (description)، وClaude بيقرا الوصف ده وبيقرّر لوحده إمتى يستعمله. أو تجبره إنت: "استخدم الـcode-reviewer subagent يراجع تعديلاتي".

بتعرّف الـsubagents في ملفات:

  • على مستوى المشروع: .claude/agents/<name>.md — بيتشارك مع الفريق عبر git.
  • على مستواك إنت: ~/.claude/agents/<name>.md — بيمشي معاك في كل مشاريعك.

وكل ملف فيه frontmatter بسيط:

markdown
---
name: code-reviewer
description: خبير مراجعة كود. استخدمه PROACTIVELY بعد أي كتابة أو تعديل في الكود.
tools: Read, Grep, Glob, Bash
model: sonnet
---
إنت senior code reviewer. أول ما تشتغل: اعمل git diff، ركّز على الملفات المتغيّرة،
راجع القراءة والـbugs والأمان. رتّب ملاحظاتك حسب الأولوية.

شايف الـfields؟ name اسمه، description (وده أهم حاجة — منه Claude بيعرف إمتى يناديه، فاكتبه كويس)، tools (الأدوات المسموح بيها — لو سيبته، بيورّث كل الأدوات)، وmodel (تقدر تحطّه على haiku عشان المهام الرخيصة، أو sonnet/opus، أو inherit).

الفايدة الحقيقية

  1. بيحافظ على الـcontext — الاستكشاف بيحصل بعيد عن محادثتك الرئيسية.
  2. بيفرض قيود — تقدر تقصّر أدوات الـsubagent على القراءة بس مثلاً.
  3. بيوفّر فلوس — توجّه المهام البسيطة لـHaiku الرخيص السريع.
  4. قابل لإعادة الاستخدام — تعرّفه مرة، تستخدمه في كل مشاريعك.

وأكتر من كده: Background Agents

الـsubagents بيشتغلوا جوّه الجلسة الواحدة. بس لو عايز تشغّل كذا جلسة مستقلة بالتوازي وتراقبهم من مكان واحد، فيه claude agents (لوحة مراقبة للجلسات الخلفية) و--bg عشان تطلق agent في الخلفية ويرجعلك. ولو بتبني حاجة برمجية، فيه Claude Agent SDK (بـTypeScript وPython) بيدّيك نفس القدرة على التفويض جوّه الكود بتاعك.

Section7. أوامرك إنت — Custom Commands & Skills

تقوللي: "أنا ببعت نفس التعليمات كل يوم، تعبت أكتبها." قولك: بلاش. اعملها skill مرة، ونادِها بـ/.

الفكرة: تعمل ملف markdown، والاسم بتاع الملف بيبقى اسم الأمر. .claude/commands/deploy.md بيبقى /deploy. (والـskills الأحدث بتبقى في .claude/skills/deploy/SKILL.md وبتعمل نفس الحاجة — بس بتحمّل محتواها بس لما تحتاجه، يعني رخيصة على الـcontext).

مثال عملي — أمر بيعمل commit:

markdown
---
description: يعمل git commit
argument-hint: [message]
allowed-tools: Bash(git add:*), Bash(git commit:*)
model: claude-haiku-4-5
---
## السياق
- الحالة الحالية: !`git status`
- الـdiff الحالي: !`git diff HEAD`
## المهمة
اعمل commit واحد بالرسالة: $ARGUMENTS

خد بالك من ٣ حاجات سحرية في الـbody:

  • $ARGUMENTS — بيتحطّ مكانها اللي إنت كتبته بعد الأمر (وفيه $1 و$2 للـarguments بالترتيب).
  • ! قبل أمر — بيشغّله ويحطّ الـoutput بتاعه في السياق (زي !git status`` فوق). طبعاً لازم الأداة تكون في allowed-tools.
  • @path/file — بيلزق محتوى ملف كامل.

وتقدر تنظّمهم في مجلدات: /frontend:lint و/backend:deploy. وأجمل حاجة إن الـskill ممكن Claude ينادِيها لوحده لما يلاقيها مناسبة، مش لازم إنت.

Section8. الذاكرة — CLAUDE.md وإزاي Claude "بيفتكر"

تقوللي: "كل جلسة جديدة لازم أشرح المشروع من الأول؟" قولك: لأ خالص. ده دور CLAUDE.md.

الملف ده عبارة عن تعليمات دايمة بتتحمّل تلقائي أول كل جلسة. تكتب فيه: "المشروع ده بـReact 19 وTypeScript، الـtests بـVitest، متلمسش مجلد legacy/". وClaude بيمشي عليها. وأحلى حاجة إن فيه هرمية بتتجمّع فوق بعض:

  • إعدادات المؤسسة (managed) — على مستوى الشركة.
  • ~/.claude/CLAUDE.md — بتاعك إنت، بيمشي في كل مشاريعك.
  • ./CLAUDE.md — بتاع المشروع، بيتشارك مع الفريق عبر git.
  • ./CLAUDE.local.md — شخصي، مش بيتعمله commit.

أوامر مفيدة:

  • /init — يعملّك أول CLAUDE.md للمشروع تلقائي.
  • /memory — يفتح ملفات الذاكرة تعدّلها.
  • # في أول السطر — تكتب حاجة عايز Claude يفتكرها، وهو بيضيفها للذاكرة على طول.
  • @path/to/file.md جوّه CLAUDE.md — بيستورد ملف تاني (لحد 5 مستويات).

وفيه كمان auto-memory: Claude بيكتب لنفسه ملاحظات في ~/.claude/projects/<project>/memory/ وبتفضل عايشة حتى بعد /compact. يعني بيتعلّم من تصحيحاتك.

نصيحة: خلي الـCLAUDE.md قصير ومركّز — حقائق وقواعد، مش مقالات. الملف الطويل بيضيّع الأهم.

وكل ده تحت مظلة settings.json — فيه هرمية بردو (managed → command-line → local → project → user)، وبتحط فيه model وpermissions وenv وhooks وغيرهم.

Section9. الـHooks — التحكم الحتمي، مش الرجاء

خلّيني أوريك الفرق. لو كتبت في الـprompt "من فضلك متمسحش ملفات" — ده رجاء، والموديل ممكن يلتزم أو لأ. لكن لو عملت hook — ده قانون حتمي بيتنفّذ برّه الموديل، مفيش نقاش.

دورة حياة الـHooks — نقاط تدخّل عند كل حدث، والـPreToolUse hook بيقدر يسمح أو يمنع

الـHooks عبارة عن سكربتات (أو HTTP calls) بتتنفّذ عند أحداث معيّنة في دورة حياة الجلسة. أهمها:

  • SessionStart — أول ما الجلسة تبدأ (setup، فحص البيئة).
  • UserPromptSubmit — قبل ما Claude يشوف طلبك.
  • PreToolUse — قبل ما أي أداة تشتغل — وهنا بتقدر تسمح أو تمنع.
  • PostToolUse — بعد ما الأداة تخلّص.
  • Stop — لما Claude يخلّص رده.
  • SubagentStart / SubagentStop — حوالين الـsubagents.
  • PreCompact / SessionEnd — قبل الضغط وعند نهاية الجلسة.

بتحطّهم في settings.json. مثال: hook بيمنع أي rm خطير:

json
{
  "hooks": {
    "PreToolUse": [
      { "matcher": "Bash",
        "hooks": [
          { "type": "command",
            "if": "Bash(rm *)",
            "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.sh",
            "args": [] }
        ]
      }
    ]
  }
}

والسكربت نفسه بيتحكم بالـexit code: يرجّع 0 يعني تمام، يرجّع 2 يعني امنع (والرسالة في stderr بترجع لـClaude يفهم ليه اتمنع). أو يطلّع JSON فيه permissionDecision بقيمة allow أو deny أو ask.

تقوللي: "ده مش كتير؟" أقولك: ده الفرق بين agent بتثق فيه في الـproduction، وagent ممكن يعمل حاجة متبقاش عايزها في تانية. الـHooks هي حزام الأمان.

Section10. الـMCP — وصّله بأي حاجة

الـModel Context Protocol (MCP) هو البروتوكول الموحّد اللي بيخلّي Claude Code يتكلم مع العالم الخارجي — GitHub، database، Slack، أي service. بدل ما كل أداة تعمل تكامل مخصوص، الكل بيتكلم MCP.

بتضيف server بأمر واحد:

bash
# server بيشتغل بـstdio
claudemcpaddgithub--npx-y@modelcontextprotocol/server-github

# server على HTTP أو SSE
claudemcpadd--transporthttplinearhttps://mcp.linear.app/mcp

# من JSON جاهز، أو من إعدادات Claude Desktop
claudemcpadd-jsonweather'{"command":"...","args":["..."]}'
claudemcpadd-from-claude-desktop

# تشوف وتدير
claudemcplist
claudemcpgetgithub
claudemcpremovegithub

وفيه scopes بتحدد مين يشوف الـserver:

  • local (الافتراضي) — المشروع ده بس.
  • project — بيتشارك مع الفريق عبر ملف .mcp.json في الـrepo.
  • user — كل مشاريعك.

شكل .mcp.json:

json
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": { "GITHUB_TOKEN": "..." }
    }
  }
}

وجوّه الجلسة، /mcp بيوريك السيرفرات وحالتها وبيعمل الـOAuth login. وتقدر تستخدم موارد الـserver في الـprompt بالـ@server:resource، وبعض السيرفرات بتضيف slash commands خاصة بيها.

Section11. الأذونات بالتفصيل — Allow / Ask / Deny

اتكلمنا عن الـmodes. دلوقتي التفاصيل الدقيقة. في settings.json تحت permissions عندك 3 قوايم: allow وask وdeny. والـsyntax مرن جداً:

json
{
  "permissions": {
    "allow": [
      "Bash(npm run test:*)",
      "Read(./src/**)",
      "Edit(./src/**)"
    ],
    "ask": [
      "Bash(git push:*)"
    ],
    "deny": [
      "Read(./.env)",
      "Read(./secrets/**)",
      "Bash(rm *)"
    ]
  }
}

خد بالك:

  • Bash(npm run test:*) — بادئة (prefix)، يعني أي npm run test... مسموح.
  • Read(./src/**) و**Edit(./src/**)** — بالـglob patterns.
  • deny بتغلب — تقدر تمنع Claude يقرا .env أو secrets/ نهائياً، حتى لو الـmode بتاعك متساهل.
  • أدوات الـMCP بتتكتب mcp__server__tool.

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

Section12. الوضع البرمجي (Headless) — Claude في السكربتات والـCI

Claude Code مش بس جلسة تفاعلية — ده كمان أداة برمجية. الفلاج -p (أو --print) بيخلّيه ينفّذ ويطبع ويخرج:

bash
# سؤال سريع بيخرج بالنتيجة
claude-p"لخّصلي آخر 10 commits"

# مخرجات JSON منظّمة (result, cost, session_id...)
claude-p"list all TODOs in this repo"--output-formatjson

# pipe — تديله input من أمر تاني
caterror.log|claude-p"what's the root cause?"

# مخرجات streaming للتكاملات
claude-p"..."--output-formatstream-json

وللأتمتة الآمنة عندك ضمانات:

  • --max-turns N — تحدّد أقصى عدد خطوات.
  • --max-budget-usd X — يقف لو التكلفة عدّت المبلغ ده.
  • --allowedTools و**--permission-mode** — تتحكم في صلاحياته.
  • claude setup-token — توثيق طويل العمر للـCI.

وده بيفتح باب لـCI/CD pipelines وgit hooks وcron jobs. ولو عايز تبني عليه بجد، Claude Agent SDK بيغلّف كل ده في مكتبة TypeScript/Python.

Section13. اختصارات الكيبورد والإدخال — سرعة الاحتراف

فيه بادئات (prefixes) في أول السطر بتوفّر عليك وقت كتير:

  • / — slash command أو skill.
  • ! — تشغّل أمر shell مباشرة من غير ما تخرج.
  • @ — تشير لملف (مع autocomplete للمسار).
  • # — تضيف حاجة للذاكرة.

وأهم المفاتيح:

المفتاحبيعمل إيه
Shift+Tabيلفّ على الـpermission modes
Escيقاطع Claude أو يقفل نافذة
Esc Escيفتح قائمة الـrewind/checkpoints
Ctrl+C / Ctrl+Dيلغي / يخرج
Ctrl+Lيمسح الشاشة (بيحافظ على الجلسة)
Ctrl+Rبحث في الـhistory / verbose
Ctrl+Vيلزق صورة (Claude بيحللها!)

وللسطر المتعدد: \ وبعدها Enter، أو Option/Alt+Enter. وتقدر تفعّل Vim mode من /config لو إنت من عشّاق hjkl.

Section14. المقارنة — Claude Code وسط المنافسين

سؤال لازم يتسأل: طيب ليه Claude Code مش Copilot CLI أو OpenCode؟ خليني أكون منصف وأحطّهم جنب بعض:

المحورClaude CodeGitHub Copilot CLIOpenCode
الصانعAnthropicGitHubمجتمع (مفتوح المصدر)
الموديل الافتراضيClaude (Opus/Sonnet/Haiku)Claude Sonnet 4.5قابل للتهيئة
اختيار الموديلعيلة Claude + Bedrock/Vertex/Foundryمتعدد (Claude, GPT-5)أي provider
Delegation/Subagents.claude/agents/ + /agents✅ subagents + rubber-duck✅ primary + sub
أوامر مخصصة✅ skills / .claude/commands/✅ skills
Hooks✅ دورة حياة غنية✅ 9 أنواع
MCP✅ stdio/SSE/HTTP + scopes✅ (+GitHub MCP مدمج)
Permission modes✅ default/accept/plan/bypass✅ Allow/Ask/Deny
Checkpoints/Rewind/rewind, Esc Esc/rewindجزئي
Headless / SDK-p + Agent SDK-p
Background agentsclaude agents, --bg/delegate cloud
إضافات IDE✅ VS Code + JetBrains
التكلفةPro $20 / Max / APIاشتراك Copilot $10–39مجاني + مفاتيحك
المصدرBinary (مغلق)مغلق (رخصة CLI: MIT)مفتوح المصدر

فين Claude Code بيتألّق؟

  1. عمق التفويض والـsubagents — نموذج نضيف بيخلّيه يشتغل على مشاريع كبيرة من غير ما يتوه.
  2. عيلة موديلات Claude — Opus للمهام الصعبة فعلاً بيفرق.
  3. الـHooks والأذونات الغنية — تحكّم حتمي بمستوى production.
  4. Agent SDK — لو عايز تبني منتجك فوقه.
  5. يشتغل في كل مكان — ترمنال، IDE، Desktop، ويب.

بصراحة كده، لو الـcodebase بتاعك كبير ومعقّد وعايز agent يفضل مركّز، أو بتحب تبني أتمتة فوق الأداة — Claude Code اختيار قوي جداً. ولو محتاج تكامل GitHub جاهز من غير setup، Copilot CLI ليه ميزة هناك. ولو مفتوح المصدر شرط عندك، OpenCode.

Section15. الخلاصة — وإنت رايح تجرّب

طيب، مشينا من صفر — أول curl للتنصيب — لحد ما بقيت تعرف تفوّض مهام كاملة لـsubagents بتشتغل لوحدها بأمان، وتحطّ hooks تحرس الـproduction، وتوصّل الأداة بأي service عبر MCP، وتشغّلها في CI من غير ما تقعد قدامها.

الفكرة الكبيرة اللي عايزك تمشي بيها: Claude Code مش بيستبدلك — بيرفعك مستوى. إنت بقيت المايسترو. بتحدد النية، بتفصّل الأذونات، بتفوّض الشغل، وبتراجع النتيجة. والـagent بيعمل الشغل التقيل المتكرر وإنت مركّز على القرارات.

  • مبتدئ؟ ابدأ بـclaude وplan mode، وسيبه يشرحلك المشروع قبل ما يعدّل حاجة.
  • متوسّط؟ اعمل CLAUDE.md كويس، عرّف skill أو اتنين لشغلك المتكرر، واتعلّم Shift+Tab.
  • محترف؟ عرّف subagents متخصصة، حطّ hooks للأمان، وابنِ أتمتة بـ-p والـAgent SDK.

السؤال اللي هسيبهولك: لو عندك مهندس صغير موهوب مستعد يقعد جنبك في الترمنال، يشتغل بالساعات، ومايزهقش، وإنت اللي ماسك زمام الأمان بالكامل — إيه اللي يمنعك تجرّبه دلوقتي؟ 🚀