Claude Code فيه مجموعة ميزات متقدمة المستخدمين المحترفين بيحتاجوها في الشغل المعقّد أو اللي فيه مخاطرة. وضع التخطيط، التفكير الموسّع، الوضع التلقائي، الـ sandboxing، والتشغيل البرمجي — كل واحد من دول بيغيّر طريقة شغل Claude بشكل جوهري. الموديول ده بيشرح كل واحد بالتفصيل.
وضع التخطيط والتفكير الموسّع
وضع التخطيط بيفصل التفكير عن التنفيذ. لما تفعّله، Claude بيعمل بحث في الكود الأول ويعمل خطة تنفيذ مفصّلة. أنت بتراجع الخطة وممكن تعدّل عليها، وبعدين Claude ينفّذها. ده بيمنع المشكلة الشائعة إن Claude يبدأ يكتب كود قبل ما يفهم المشكلة كويس.
فعّله بأمر /plan <description>، أو flag الـ --permission-mode plan في الـ CLI، أو Shift+Tab عشان تتنقل بين الأوضاع. استخدم Ctrl+G عشان تفتح الخطة الحالية في الـ editor الخارجي بتاعك وتعدّل عليها بالتفصيل قبل ما توافق. الـ alias opusplan بيوجّه التخطيط لـ Opus والتنفيذ لـ Sonnet:
claude --model opusplan "redesign the database schema for multi-tenancy"
التفكير الموسّع بيدي Claude وقت أكتر يفكّر قبل ما يرد. فعّله وقفّله بـ Option+T (على macOS) أو Alt+T. أمر /effort بيحدد عمق التفكير: low، medium، high، xhigh، أو max (للجلسة الحالية بس). ضبطه للجلسة كلها بـ export CLAUDE_CODE_EFFORT_LEVEL=high. لو عايز أعلى مستوى تفكير، اكتب كلمة “ultrathink” في الـ prompt — دي بتفعّل وضع التفكير العميق بغض النظر عن إعداد الـ effort الحالي.
تخيّل إنك بتاخد قرار معماري كبير — الجمع بين وضع التخطيط ومستوى effort عالي بيديك أحسن نتيجة:
claude --permission-mode plan --effort high --model opusplan "migrate from REST to GraphQL"
Ultraplan: التخطيط في الـ Cloud
Ultraplan بيوسّع وضع التخطيط عن طريق إنه يبعت الخطة لجلسة Claude Code على الويب. Claude بيعمل draft للخطة في الـ cloud وأنت الـ terminal بتاعك فاضي. بعدين تفتحها في المتصفح وتعلّق على أجزاء معينة، تطلب تعديلات، وتختار فين تنفّذها.
تلات طرق تشغّلها: أمر /ultraplan <prompt>، أو اكتب كلمة “ultraplan” في أي prompt عادي، أو اختار “Refine with Ultraplan on the web” من حوار خطة محلية خلصت.
بعد ما تشغّلها، بيظهر مؤشر حالة عند الـ prompt: ◇ ultraplan وهو بيحضّر، ◇ ultraplan needs your input لما Claude عنده أسئلة، و◆ ultraplan ready لما الخطة جاهزة. افتح لينك الجلسة على claude.ai عشان تراجع — تقدر تعلّق inline على أقسام معينة وتطلب تعديلات قبل ما توافق.
لما توافق، عندك مسارين:
- نفّذ على الويب — Claude بينفّذ الخطة في الـ cloud، وأنت تراجع الـ diff وتفتح PR من المتصفح
- ارجع للـ terminal — الخطة بتترحّل للـ CLI بتاعك عشان تنفّذها محلي
/ultraplan migrate the auth service from sessions to JWTs
Ultraplan محتاج اشتراك claude.ai و GitHub repository متوصّل. مش متاح على Bedrock أو Vertex AI أو Foundry.
الوضع التلقائي والتحكم في الصلاحيات
الوضع التلقائي (Auto Mode) هو وضع صلاحيات تجريبي بيستخدم classifier أمان في الخلفية عشان يقرر إذا كانت الأدوات آمنة تشتغل من غير ما يسألك. مصمّم للشغل اللي محتاج autonomy أعلى مع الحفاظ على حواجز الأمان.
بتستخدمه زي أي وضع صلاحيات تاني: اختار auto في إعدادات الصلاحيات أو اتنقل ليه بـ Shift+Tab. المؤسسات تقدر تضبط إيه اللي Auto Mode بيعتبره بنية تحتية موثوقة من خلال block الـ autoMode في الإعدادات.
Auto Mode بشكل افتراضي بيكون حذر مع الحاجات اللي شكلها exfiltration بيانات، تنفيذ shell خطر، أو تغييرات تأثر على الـ production. لما الـ permission check يعلق، الـ spinner بيتحول للأحمر — ده بيخلّي واضح إن فيه check في_progress مش أداة شغّالة. لو فريقك عنده repos موثوقة، domains داخلية، أو خدمات معينة عايز Auto Mode يتعامل معاها عادي، عرّفها في autoMode.environment.
لما تخصّص autoMode.allow أو autoMode.soft_deny أو autoMode.environment، ضيف التوكن الخاص "$defaults" عشان تحافظ على القواعد المدمجة وتضيف قواعدك جنبها. من غير "$defaults"، المصفوفة بتاعتك بتحل محل الافتراضيات بالكامل:
{
"autoMode": {
"allow": ["$defaults", "Bash(terraform *)"],
"environment": ["$defaults", "Internal API: api.corp.example.com"]
}
}
أوضاع الصلاحيات بتتراوح من الأقل للأكتر حرية. default بيقرأ بحرية بس بيسألك قبل أي action تاني. acceptEdits بيوافق تلقائيًا على تعديلات الملفات في الجلسة، ما عدا الكتابة في المجلدات المحمية. plan بيدخل وضع التخطيط الأول. auto بيستخدم الـ classifier. dontAsk بيشغّل بس الأدوات المعتمدة مسبقًا. bypassPermissions بيتخطى الصلاحيات بما فيها الكتابة في .claude/ و.git/ و.vscode/ وملفات الـ shell (أوامر الحذف الكارثية زي rm -rf / لسه بتطلب تأكيد كشبكة أمان). استخدم --dangerously-skip-permissions كـ CLI flag للسلوك نفسه. الـ hooks اللي بتشتغل في السياقات دي تاخد مستوى الجهد الحالي من متغير البيئة $CLAUDE_EFFORT.
ابدأ الجلسة في أي وضع بـ flag الـ --permission-mode <mode>. الـ flag بيقبل default وacceptEdits وplan وauto وdontAsk وbypassPermissions، وبيتقدّم على defaultMode اللي في إعداداتك للجلسة دي تحديدًا — يعني تقدر تثبّت وضع أكتر صرامة لـ automation معينة من غير ما تعدّل ملف الإعدادات. نفس الـ flag بيشتغل مع -p للتشغيل غير التفاعلي، وdontAsk بيتفعّل بس عن طريق الـ flag ده (مش موجود في دورة Shift+Tab):
claude --permission-mode plan "draft the migration"
claude -p "audit dependencies" --permission-mode dontAsk
اضبط افتراضي في الإعدادات عشان أغلب الجلسات تبدأ في الوضع اللي عايزه من غير ما تمرّر الـ flag:
{
"permissions": {
"defaultMode": "acceptEdits"
}
}
عشان تخصّص Auto Mode لبيئتك:
{
"autoMode": {
"environment": [
"Source control: github.example.com/acme-corp and all repos under it",
"Trusted internal domains: *.corp.example.com, api.internal.example.com"
]
}
}
التشغيل البرمجي والـ Sandboxing
لما تشغّل Claude برمجيًا بـ claude -p "your prompt" ده بيشغّله بدون تفاعل. الـ output بيروح لـ stdout، وده بيخلّيه قابل للتركيب مع pipelines الـ shell وأنظمة الأتمتة. ادمجه مع --output-format json عشان output منظّم. استخدم --permission-mode bypassPermissions للتشغيل الآلي الكامل في CI/CD:
# Automated code review in CI
git diff HEAD~1 | claude -p "review these changes for security issues" \
--output-format json \
--permission-mode bypassPermissions
# Generate docs for changed files
claude -p "generate JSDoc for all functions in $CHANGED_FILE" \
--print --no-session-persistence
الـ sandboxing بيوفّر عزل على مستوى نظام التشغيل لصلاحيات الملفات والشبكة. فعّله بأمر /sandbox خلال الجلسة. في وضع الـ sandbox، Claude بيقدر يوصل بس للمسارات وقواعد الشبكة اللي أنت حددتها. ده مفيد جدًا لما تشغّل Claude على كود مش موثوق أو في بيئات محتاج فيها حدود صارمة.
ضبط عزل الشبكة بدقة من خلال sandbox.network.allowedDomains وsandbox.network.deniedDomains في ملف settings.json. الأول بيسمح بالـ domains للترافيك الخارج، والتاني بيحظر domains معينة حتى لو wildcard أوسع في allowedDomains كان هيسمح بيها — deniedDomains دايمًا ليه الأولوية. الاتنين بيدعموا wildcards زي *.example.com:
{
"sandbox": {
"enabled": true,
"network": {
"allowedDomains": ["github.com", "*.npmjs.org"],
"deniedDomains": ["uploads.github.com"]
}
}
}
في الإعدادات المُدارة، قائمة deniedDomains بتتدمج من كل مصادر الإعدادات (managed و user و project و local) بغض النظر عن allowManagedDomainsOnly. الـ flag ده بيقيّد بس أنهي scopes allowedDomains بتتقرأ منها — قواعد الحظر من أي scope دايمًا بتتطبّق، فمفيش سياسة مؤسسية تقدر تسقط block اتحط على مستوى user بالصدفة.
على Linux و WSL، استخدم sandbox.bwrapPath وsandbox.socatPath عشان تحدد مسارات مخصصة لملفات bubblewrap و socat:
{
"sandbox": {
"bwrapPath": "/usr/local/bin/bwrap",
"socatPath": "/usr/bin/socat"
}
}
للمؤسسات، الإعدادات المُدارة (managed settings) بتتحكم في إعدادات المستخدمين من خلال أدوات إدارة النظام: plist على macOS، الـ Registry على Windows، ملفات config مُدارة، ودروب إنز managed-settings.d/ بتتدمج أبجديًا. ده منفصل عن ملفات الذاكرة المُدارة زي ملف CLAUDE.md على مستوى المؤسسة.
# Test headless with sandboxing
claude -p "analyze the security of this codebase" \
--sandbox \
--permission-mode plan \
--output-format json
أداة Advisor (تجريبية)
أداة Advisor هي ميزة تجريبية بتعتمد على نظام dual-model، بتخلي model منفّذ أسرع وأقل تكلفة (زي Sonnet) يستشير model مستشار أذكى (زي Opus) أثناء الشغل للحصول على توجيهات استراتيجية. المستشار بيقرأ المحادثة كاملة وبيطلع خطة أو تصحيح مسار، وبعدين المنفّذ بيكمّل الشغل. النمط ده مناسب لشغل الـ agents الطويل اللي أغلب الخطوات فيه ميكانيكية بس مهم يكون في خطة ممتازة.
فعّلها بأمر /advisor. لما تكون مفعّلة، الجلسات بتعرض label “experimental” وإشعار بدء. الـ model المنفّذ بيتحدد كـ model الجلسة الرئيسي، والـ model المستشار بيتحدد من خلال dialog الـ /advisor.
Glob وGrep الأصلية على macOS/Linux
على الـ native macOS وLinux builds، أدوات Glob وGrep بتتعوّض بـ binaries مدمجة bfs وugrep متاحة من خلال أداة Bash. النتيجة: بحث أسرع في الملفات من غير round-trip لأداة منفصلة — Claude بيستخدم أمر Bash واحد بدل ما يستدعي أداة مخصصة، وده بيقلل الـ latency على الـ codebases الكبيرة.
Windows والـ npm-installed builds مش متأثرين وبيستمروا في استخدام أدوات Glob وGrep الأصلية. متغيرات البيئة CLAUDE_CODE_GLOB_HIDDEN وCLAUDE_CODE_GLOB_NO_IGNORE وCLAUDE_CODE_GLOB_TIMEOUT_SECONDS لسه بتنطبق على الأدوات الأصلية حيث ما تكون مستخدمة.
تنظيف الجلسات بـ cleanupPeriodDays
إعداد cleanupPeriodDays في settings.json بيتحكم في مدة الاحتفاظ ببيانات الجلسة قبل الحذف التلقائي عند بدء التشغيل. الافتراضي 30 يوم والحد الأدنى 1 — تعيينه لـ 0 بيترفض بخطأ validation. عملية التنظيف بتشمل الجلسات، orphaned subagent worktrees، background tasks (~/.claude/tasks/)، shell snapshots (~/.claude/shell-snapshots/)، وbackups الملفات (~/.claude/backups/):
{
"cleanupPeriodDays": 14
}
عشان تمنع كتابة الـ transcripts خالص في الوضع غير التفاعلي، استخدم --no-session-persistence أو متغير البيئة CLAUDE_CODE_SKIP_PROMPT_HISTORY.
مسح بيانات المشروع (Project Purge)
لما cleanupPeriodDays مش كفاية وعايز تمسح كل بيانات Claude Code لمشروع معين فورًا، استخدم claude project purge. الأمر ده بيمسح الـ transcripts، قوائم المهام، سجلات التشخيص، تاريخ تعديلات الملفات، تاريخ الـ prompts، وسجل المشروع نفسه:
# معاينة اللي هيتمسح من غير ما تمسح فعلًا
claude project purge --dry-run
# مسح بيانات المشروع الحالي
claude project purge
# تخطي سؤال التأكيد
claude project purge --yes
# اختيار تفاعلي للعناصر اللي عايز تمسحها
claude project purge --interactive
# مسح بيانات كل المشاريع مرة واحدة
claude project purge --all
الـ flags تقدر تجمعهم مع بعض: claude project purge --all --dry-run بيعرض إيه اللي هيتمسح لو عملت مسح كامل. الاختصارات -y و-i شغّالة كمان.
Environment Variables للتشخيص والمنصات
في شوية environment variables بتفتح surfaces مش متاحة لسه كأوامر أو settings.
OTEL_LOG_RAW_API_BODIES=1 بيخلي Claude يبعت الـ API request و response bodies الكاملة كـ OpenTelemetry log events — فعّله لما تكون بتتحرى ليه request فشل أو إيه اللي Claude بعته للـ model بالظبط. خلي بالك بعد كده لأن bodies الـ request ممكن يكون فيها secrets.
CLAUDE_CODE_USE_POWERSHELL_TOOL=1 بيفعّل PowerShell tool على Linux و macOS (محتاج pwsh في الـ PATH). على Windows الأداة بتتطرح بشكل تدريجي؛ حط القيمة 0 عشان توقفها صراحة. على Windows مع تفعيل PowerShell tool، الـ PowerShell بيصبح الـ shell الأساسي بدل Bash.
DISABLE_UPDATES=1 بيمنع كل مسارات التحديث، بما فيها claude update اليدوي. ده أشد من DISABLE_AUTOUPDATER (اللي بيمنع التحديثات التلقائية بس) ومخصص للـ enterprise deployments المقفولة اللي الإصدار المثبّت ما لازمش يتغير.
CLAUDE_CODE_HIDE_CWD=1 بيخفي مسار الـ working directory من شعار البداية. مفيد لتسجيلات الشاشة أو العروض التقديمية اللي ما تحبش تكشف فيها معلومات المسار.
CLAUDE_CODE_NATIVE_CURSOR=1 بيخلّي Claude Code يعرض مؤشر الـ terminal الأصلي عند خانة الإدخال بدل البلوك المرسوم. المؤشر الأصلي بيحترم إعدادات الـ terminal بتاعت الـ blink والشكل والـ focus — مفيد لو الـ terminal بتاعك متظبط على شكل مؤشر معيّن أو محتاج accessibility.
CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE=1 بيثبّت fast mode على Claude Opus 4.6 حتى لو الافتراضي اتغير. ده بيتقدّم على CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE، فاضبطه لما تكون محتاج Opus 4.6 تحديدًا مهما اتغير الافتراضي.
CLAUDE_CODE_RESUME_PROMPT بيستبدل رسالة الاستكمال اللي Claude بيحقنها لما تستأنف جلسة وقفت في نص الـ turn. الافتراضي هو Continue from where you left off.. سكربتات الإطلاق للوكلاء طويلة المدى ممكن تستخدم ده عشان تحط رسالة بداية أكثر توجيهًا؛ والقيمة الفاضية بترجّع الافتراضي.
CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL=1 بيوجّه استبيان جودة الجلسة (“How is Claude doing?”) لـ OpenTelemetry collector بتاعك لما يكون الـ traffic غير الأساسي المتجه لـ Anthropic مقفول. تقييمات الاستبيان بتتبعت بس كـ OTEL events للـ collector اللي ضابطه — مفيش بيانات استبيان بتتبعت لـ Anthropic. بيشتغل لما CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC أو DISABLE_TELEMETRY أو DO_NOT_TRACK يكونوا متفعلين، ومش بيأثر في غير كده. CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY وسياسة المنظمة لـ product feedback لسه ليهم الأسبقية.
ANTHROPIC_WORKSPACE_ID هو الـ workspace ID اللي بيستخدمه workload identity federation. اضبطه لما قاعدة الفيدريشن بتاعتك متاحة لأكتر من workspace عشان تبادل التوكن يعرف يستهدف أنهي workspace — من غيره، القاعدة العامة مفيش طريقة تختار بيها workspace وعملية التبادل بتفشل. سيبه فاضي لما قاعدة الفيدريشن متاحة لـ workspace واحد بس.
# سجّل OTEL telemetry كاملة وأنت بتعيد إنتاج API bug
OTEL_LOG_RAW_API_BODIES=1 claude --print 'reproduce the failure'
# فعّل PowerShell tool على macOS أو Linux
CLAUDE_CODE_USE_POWERSHELL_TOOL=1 claude
# امنع كل التحديثات على جهاز مقفول
DISABLE_UPDATES=1 claude
# اخفِ الـ working directory في شعار البداية
CLAUDE_CODE_HIDE_CWD=1 claude
# استخدم مؤشر الـ terminal الأصلي عند خانة الإدخال
CLAUDE_CODE_NATIVE_CURSOR=1 claude
# ثبّت fast mode على Opus 4.6 بغض النظر عن الافتراضي
CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE=1 claude
# غيّر رسالة الاستكمال لسكربت إطلاق وكيل
CLAUDE_CODE_RESUME_PROMPT="Resume the migration and stop after the next test run." \
claude --resume
# وجّه استبيان جودة الجلسة لـ OTEL collector بتاعك
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 \
CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL=1 claude
# Workload identity federation مع قاعدة فيها أكتر من workspace
ANTHROPIC_WORKSPACE_ID=ws_01abcd... claude
Claude Code على الويب ونقل الجلسات
Claude Code على الويب بيشغّل المهام على بنية تحتية سحابية مُدارة من Anthropic على claude.ai/code. الجلسات بتفضل شغّالة حتى لو قفلت المتصفح، وتقدر تتابعها من تطبيق Claude للموبايل.
شغّل جلسة سحابية من الـ terminal بـ claude --remote "your task". Claude بيعمل clone للريبو من GitHub (ادفع الـ commits المحلية الأول)، ينفّذ الـ prompt لوحده، ويقدر يفتح PRs لما يخلّص. استخدم عدة --remote عشان تشغّل مهام بالتوازي.
أمر /teleport (اختصار /tp) بيجيب جلسة سحابية للـ terminal المحلي — بيجيب الـ branch، يحمّل كل تاريخ المحادثة، ويخلّيك تكمّل محلي. في الاتجاه العكسي: --remote بيبعت الشغل للـ cloud. مع بعض بيعملوا loop سلس بين التنفيذ المحلي والسحابي.
أمر /autofix-pr بيعمل جلسة سحابية بتراقب الـ PR بتاعك. لما CI يفشل أو reviewers يعلّقوا، Claude بيحقق ويدفع fix. حدد النطاق بـ prompt: /autofix-pr only fix lint and type errors. محتاج Claude GitHub App متثبّت على الريبو.
# خطط محلي، نفّذ في الـ cloud
claude --permission-mode plan
# ... خلّص الخطة، commit، push ...
claude --remote "Execute the migration plan in docs/migration-plan.md"
# ارجع بالجلسة السحابية لما تخلص
/teleport
الجلسات السحابية بتيجي بـ runtimes جاهزة (Node.js, Python, Go, Rust, Java, Ruby, Docker, PostgreSQL)، حتى 16 GB RAM، ومستويات network access قابلة للتعديل. إعدادات الريبو (CLAUDE.md، settings، MCP servers، skills) بتتنقل تلقائي. إعدادات المستخدم (~/.claude/) مبتتنقلش — حط إعدادات المشروع في الريبو.
تخصيص رابط الـ PR
إعداد prUrlTemplate في settings.json بيوجّه شارة الـ PR في الـ footer لرابط code-review مخصص بدل رابط GitHub الافتراضي. ده مفيد للفرق اللي بتستخدم GitLab أو Bitbucket أو أداة مراجعة داخلية:
{
"prUrlTemplate": "https://gitlab.example.com/org/repo/-/merge_requests/{{pr_number}}"
}
إعدادات الـ Worktree
الـ Git worktrees بتخلّيك تعمل checkout لـ branches كتير في نفس الوقت من غير ما تعمل stash أو branch. claude --worktree <name> بيعمل worktree جديد مرتبط بـ <name>/. إعداد worktree.baseRef (جديد في v2.1.133) بيتحكم في مين اللي هي branched من عنده. حط baseRef لـ head (الـ local HEAD، الافتراضي) أو fresh (origin/<default> — branched من الـ default remote ref):
{
"worktree": {
"baseRef": "head"
}
}
حط head عشان تحافظ على commits lokal اللي لسه ما اتpushتش في worktrees جديدة. ده بيأثر على --worktree وEnterWorktree وagent-isolation worktrees.
ميزات متقدمة إضافية
أدوات Claude Code المتقدمة أكتر من كده. المهام في الخلفية بتخلّي الشغل الطويل يكمّل وأنت بتكمّل محادثتك. المهام المجدولة بتدعم /loop للفحوصات المتكررة داخل الجلسة و/schedule للمهام المجدولة في الـ cloud. أدوات الجلسة زي /resume و/rename و/teleport بتسهّل التنقل بين الـ CLI المحلي، المتصفح، والـ desktop app.
كمان فيه ميزات منصة للاستخدام اليومي: الإملاء الصوتي بـ /voice، تكامل Chrome بـ --chrome، التحكم عن بعد بـ /remote-control، دروس /powerup التفاعلية لاكتشاف الميزات، قوائم المهام، وسير عمل git worktree بـ claude --worktree. كل دول بيشتركوا في نفس نظام الصلاحيات، فالاستخدام المتقدم في الغالب هو إنك تدمج الوضع المناسب مع السطح المناسب.