GitHub Copilot CLI — الـAI Agent اللي بيشتغل في الترمنال 🤖

"التيرمنال اللي قدامك — ده مش مكان بتكتب فيه أوامر بس، ده المكان اللي AI بيبني فيه كود حقيقي ويعمل PRs ويفتح issues ويرجعلك يقولك خلصت."

Section1. الحكاية مش بتاعة autocomplete

تخيّل معايا المشهد ده: الساعة 3 الفجر، عندك bug في الـauthentication module، والـCI أحمر، والـPR مستني review. تفتح الـIDE، الـCopilot هناك بيقترحلك سطر — بس إنت محتاج أكتر من سطر. محتاج حد يقرأ الـissue، يفهم السياق، يعدّل الكود، يشغل الـtests، يفتح الـPR. مش autocomplete — محتاج agent.

وهنا بالظبط GitHub Copilot CLI بيدخل. ده مش الـIDE plugin اللي بيكمل جمل. ده agent حقيقي بيعيش في الترمنال — يقرأ ملفات كاملة، يشغل shell commands، يتعامل مع الـGitHub issues وPRs، يبني plans وينفذها خطوة بخطوة، وحتى يشتغل autopilot من غير ما تتدخل.

تقوللي: "طيب إيه الفارق؟ أنا أقدر أعمل كل ده بنفسي في الترمنال." أقولك: الفارق إن الـagent ده بيفهم السياق — يعرف الـrepo، يشوف الـissues، يقرأ الـcodebase، وبعدين بيتصرف مش بس بيكمل. تقوللي بس ده hype وتسويق؟ قولك لأ — استنى لما نشوف إيه جوه بالظبط.

سريعاً كوباية القهوة بتاعتك وركز معايا، لأن الموضوع ده فيه أكتر مما ببان على السطح.

Section2. إيه هو بالظبط — وإيه الفارق عن اللي قبله

بالبلدي كده: GitHub Copilot CLI هو نفس الـagentic harness اللي بيشتغل على الـcloud (الـCopilot coding agent اللي بيفتح PRs على GitHub.com)، بس ده بيشتغل محلي في الترمنال بتاعك.

الأساسيات السريعة

  • الـdefault model: Claude Sonnet 4.5 — وبيدلك access لـ GPT-5 family, Claude Opus 4.7/4.8, Fable 5, وغيرهم
  • GitHub MCP Server مبني جوه: من أول يوم تقدر تتعامل مع issues, PRs, repos, workflows — من غير أي setup
  • Custom Agents: تعرف agents مخصصة في .github/agents/*.md — كل agent ليه model وأدواته
  • Skills system: أوامر مخصصة بنكتبها مرة ونستخدمها كل وقت
  • Hooks system: 9 أنواع hooks تتحكم في سلوك الـagent
  • Permission triad: Allow / Ask / Deny — تحكم كامل في إيه اللي الـagent يقدر يعمله

تخيّل معايا إنك جالس في الترمنال بتاعك. بتكتب:

bash
copilot

وتبدأ تكتب: "Fix the login bug and create a PR." الـagent بيفهم السياق، يقرأ الكود، يعدّل الملفات، يشغل الـtests، يفتح الـPR — ويرجعلك يقولك "خلصت". ده مش تخيّل — ده حقيقي.

Architecture overview of GitHub Copilot CLI — showing how the agent connects to models, tools, MCP servers, and the user

التركيب

bash
# macOS / Linux
curl-fsSLhttps://gh.io/copilot-install|bash

# أو Homebrew
brewinstallcopilot-cli

# Windows
wingetinstallGitHub.Copilot

# npm
npminstall-g@github/copilot

أول مرة تشغله هيطلب منك تعمل /login وتوثق حسابك على GitHub. بعد كده — أنت جاهز.

تثبيت GitHub Copilot CLI
➜ ~ npm install -g @githubnext/github-copilot-cli
✓ Added @githubnext/github-copilot-cli
➜ ~ github-copilot-cli --version
0.1.74
➜ ~ github-copilot-cli auth
⠋ Opening GitHub in browser...
✓ Authenticated as yourusername
➜ ~⏎ نفّذ · ⌫ امسح

Section3. الـ3 Modes — من Ask لحد Autopilot

هنا انت هتقول لي: "طيب أنا مش عايز الـagent يعدّل حاجة من غير ما أشوف." وعندك حق 100%. عشان كده فيه 3 أوضاع:

الوضعازاي تدخلهبيعمل إيهإمتى تستخدمه
Interactive (default)copilotبيقترح وينفذ مع سؤال قبل كل أداةلما تبغي تتحكم في كل خطوة
PlanShift+Tab أو --mode planبيعمل خطة تنفيذ من غير ما يكتب كودلما تبغي تفهم الـscope الأول
AutopilotShift+Tab مرتين أو --autopilotبيكمل لحد ما المهمة تخلصلما تثق في المطلوب وتبغي يكمل لوحده

Plan Mode — لما عايز تفهم الأول

في Plan Mode، Copilot مش بيعدل أي حاجة. بيعمل تحليل، يسأل أسئلة توضيحية، يبني خطة منظمة — وبعدين يستنى موافقتك. ده ممتاز للمهام المعقدة لما عايز تفهم الـscope قبل ما أي كود يتكتب.

Autopilot Mode — لما تثق وتسيب

bash
copilot--autopilot
/autopilotFixallfailingtests
/goalRefactortheauthenticationmodule

تقوللي "ده خطر!" — قولك آه، لو مش متأكد متستخدمش. بس فيه ضمانات: بحد أقصى 5 continuation messages (قابل للتعديل)، والأذونات اللي بتوافق عليها بتفضل محفوظة. وبعدين /rewind موجود عشان ترجع أي وقت.

Section4. الـSlash Commands — أكتر من 60 أمر تحت إيدك

هنا يا هندسة الخلاصة إن الـCLI مش بس محادثة — ده control panel كامل. فوق 60 slash command تغطي كل حاجة محتاجها. مش هذكرهم كلهم هنا (ده دور الـcheatsheet)، بس خليني أديك النكهة:

أوامر الجلسة — اللي بتحتاجها كل يوم

كل حاجة تبدأ بـ /. تعال نشوف الأهم:

  • /login و /logout — التوثيق والخروج
  • /model — يبدل الـAI model (Claude, GPT-5, Opus...)
  • /clear أو /new — تبدأ محادثة جديدة نضيفة
  • /resume — تكمل session سابقة
  • /fork — تعمل نسخة مستقلة من الـsession عشان تجرب من غير ما تضيع الأصل
  • /compact — تضغط الـcontext لما يقرب يمتلي

أوامر التنفيذ — اللي بتبني بجد

  • /agent — يختار أو يعمل custom agent (ده موضوع لوحده، هنتكلم عنه)
  • /delegate — يفوض مهمة للـcloud coding agent في الخلفية — يعمل branch ويفتح PR ويكمل
  • /autopilot — يبدل autopilot mode
  • /rubber-duck — يطلب نقد مستقل من agent تاني. أيوة، AI بيراجع AI.

أوامر الملفات والمراجعة

  • /diff — يعرض التعديلات بـvim-style navigation (j/k, w/W, g/G)
  • /review — مراجعة أمنية للتغييرات
  • /rewind — يرجع لـcheckpoint سابق — ده الـundo بتاعك

أوامر السياق والإعداد

  • /context — يعرض token usage والـcontext المحمل — عشان تعرف إيه في الـcontext وإيه اللي ممكن يشيله
  • /env — يعرض البيئة المحملة (instructions, MCP, skills, hooks)
  • /memory on/off/show — يدير الذاكرة المستمرة عبر الجلسات
  • /init — يعمل copilot instructions للمشروع

أوامر الـMCP والـExtensions

  • /mcp و /mcp search — يدير ويبحث عن MCP servers
  • /plugin — يثبت ويشيل plugins من المجتمع

أوامر الجدولة — اللي معظم الناس مش عارفاها

وده سر من أسرار Copilot CLI:

bash
/every1hRunfrontendtestsandreportanyfailures
/after30mCheckifthebuildpassed

تقوللي ده بسيط؟ قولك لأ — ده معناه إنك تقدر تعمل monitoring تلقائي من غير ما تخرج من الترمنال. الـCLI نفسه بيشغل الأوامر دورياً ويرجعلك النتائج.

Shell مباشرة

ابدأ أي أمر بـ ! عشان تشغله مباشرة:

bash
!git status
!npm test

بيستخدم $SHELL بتاعتك وبيحترم الـaliases والـrc files. مش محتاج تخرج من الـCLI عشان تشغل حاجة.

أوامر السؤال
➜ ~ ?? "list all node processes and kill them"
? How to: ps aux | grep node | awk '{print $2}' | xargs kill -9
اضغط Enter لتنفيذ أو Ctrl+C للإلغاء
➜ ~ git? "undo last commit but keep changes"
? How to: git reset --soft HEAD~1
➜ ~ gh? "create a draft PR for current branch"
? How to: gh pr create --draft --fill
➜ ~⏎ نفّذ · ⌫ امسح

Section5. نظام الـAgents — مش agent واحد بس

تقوللي: "طيب agent واحد يكفي؟" قولك لأ. هنا التفصيلة اللي بتفرّق.

الـPrimary Agent

ده اللي بيتكلم معاك مباشرة — Claude Sonnet 4.5 by default. بيشتغل في الـmain channel وبينفذ المهام.

الـSubagents

لما المهمة تحتاج عمق أكتر، الـPrimary بيستدعي subagents:

  • General-purpose subagent — بيستخدم GPT-5.4 أو 5.5، مخصص للمهام اللي محتاجة نموذج مختلف
  • Rubber Duck agent — agent مستقل (مدعوم بـClaude) بيراجع شغل الـprimary ويرجع نقد بنّاء. أيوة، الـAI بيراجع الـAI. تفعّله بـ /rubber-duck
  • Code Review agent — بيراجع التعديلات الأمنية

Custom Agents — وهنا السحر

تقدر تعرف agents مخصصة في .github/agents/*.md:

yaml
---
name: Security Auditor
description: Reviews code for security vulnerabilities
model: claude-opus-4.7
tools: [view, grep, glob]
skills: [security-review]
deferred-tool-loading: true
---
You are a security auditor. Review all code changes for...

الأماكن الممكنة:

  • .github/agents/*.md — project-level
  • ~/.copilot/agents/*.md — personal
  • Organization's .github repo — organization-level

وكل agent يقدر يحدد model خاص بيه، وskills بتحمّل مباشرة، وtools محددة. يعني تقدر تعمل agent مخصص لـsecurity بيعمل Opus 4.7 وشايل skills بتاعة security review — ده مش حاجة تقدر تعملها في Claude Code.

والنقطة المهمة: الـSubagents ما بيقدروش يتكلموا في الـmain channel. الـPrimary Agent بس اللي يقدر يوصللك النتائج المجمّعة. ده by design — عشان ما يحصلش هرجلة.

Agent swarm topology — how the primary agent coordinates subagents and rubber-duck review

Section6. نظام الـSkills — أوامر مخصصة بنكتبها مرة

تقوللي: "أنا مش محتاج skill، أنا بكتب الـprompt كل مرة." قولك: ده بالظبط اللي بيضيع وقتك. الـSkills هي عبارة عن تعليمات قابلة لإعادة الاستخدام بتتحمل في context الـagent لما تحتاجها.

كل skill فيه SKILL.md بـYAML frontmatter:

markdown
---
name: deploy-to-staging
description: Deploy the current branch to staging environment
trigger: /deploy-staging
---

You are a deployment specialist. When the user asks to deploy to staging:
1. Run the test suite first
2. Build the project
3. Deploy using the staging script
4. Report the deployment URL

وبعدين تكتب /deploy-staging في الـsession والـagent بيتبع التعليمات دي بالظبط. مش محتاج تعيد كتابة الـprompt كل مرة.

الأماكن:

المكانالأولوية
.github/skills/عالية (project-level)
.agents/skills/عالية (project-level)
--plugin-dir skillsأعلى (plugin-specific)
~/.copilot/skills/متوسطة (personal)

Section7. الـMCP — الاتصال بأي خدمة من غير setup

MCP integration pipeline — how Copilot CLI routes tool calls through the MCP router to GitHub, custom, and plugin servers

Model Context Protocol (MCP) هو البروتوكول اللي بيخلي Copilot CLI يتكلم مع خدمات خارجية. والجميل إن GitHub MCP Server مبني جوه — مش محتاج تعمل أي حاجة.

الـBuilt-in GitHub MCP Server

بيوفر أدوات جاهزة لـ: قراءة ملفات وبحث في الكود (get_file_contents, search_code)، إدارة الـissues (get_issue, list_issues, search_issues)، إدارة الـPRs (pull_request_read, list_pull_requests)، مراقبة الـCI/CD (list_workflows, list_workflow_runs)، وأكتر. استخدم --enable-all-github-mcp-tools عشان تفعل كل الأدوات بما فيها الـread-write.

Custom MCP Servers

تضيف أي خدمة:

json
{
  "mcpServers": {
    "slack": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-slack"],
      "env": {"SLACK_BOT_TOKEN": "${SLACK_BOT_TOKEN}"}
    },
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://localhost/mydb"]
    }
  }
}

وتحط ده في ~/.copilot/mcp-config.json (user-level) أو .mcp.json (project-level) أو .github/mcp.json (shared project-level).

أماكن الـconfig:

  • ~/.copilot/mcp-config.json — user-level
  • .mcp.json — project-level (Claude-compatible format كمان)
  • .github/mcp.json — shared project-level
  • --additional-mcp-config — flag للإضافة

وبعدين تشغل /mcp search عشان تكتشف وتثبت MCP servers من registry — ده experimental بس شغال.

Section8. الـHooks — التحكم في سلوك الـAgent من الداخل

الـHooks هي النقاط اللي تقدر تتدخل فيها في سلوك الـagent. 9 أنواع:

الـHookإمتى بيشتغلإيه بتستخدمه فيه
preToolUseقبل ما أداة تنفذتمنع تنفيذ، تعدّل parameters، تضيف context
postToolUseبعد ما أداة تخلصتضيف context للنتيجة
sessionStartلما الـsession تبدأsetup، فحص البيئة
sessionEndلما الـsession تخلصcleanup، reporting
subagentStartقبل ما subagent يشتغلتتحكم في سلوك الـsubagent
subagentStopلما subagent يخلصتعالج نتائج الـsubagent
permissionRequestلما تطلب إذنauto-approve patterns
agentStopلما agent يوقف (task_complete)إجراءات أخيرة
preMcpToolCallقبل MCP callتتحكم في metadata

مثال عملي: تقدر تعمل hook يمنع الـagent إنه يمسح ملفات الـproduction:

yaml
hooks:
  preToolUse:
    - matchers: ["Edit|Write"]
      command: "check-production-files"

ده معناه إن كل مرة الـagent بيحاول يستخدم Edit أو Write، الـhook بيتحقق إن الملف مش في production. تقوللي ده كتير؟ قولك: ده الفرق بين agent آمن وagent يقدر يبوّط الدنيا في 3 ثواني.

Section9. الأذونات — Allow / Ask / Deny

Permission triad flow — how Copilot CLI processes each tool call through the Allow/Ask/Deny gate

تقوللي: "وطيب الـagent ده يقدر يعمل إيه من غير ما أراقبه؟" وهنا النقطة المهمة. Copilot CLI عنده نظام أذونات ثلاثي:

الحالةمعناهامثال
ALLOWينفذ من غير سؤالgit status * — آمن
ASKيسأل المستخدم الأولrm -rf node_modules — خطر محتمل
DENYيرفض التنفيذأوامر ضارة أو محظورة

وتقدر تتحكم أكتر:

bash
--allow-all-tools# يوافق على كل حاجة (خطر!)
--yolo# نفس اللي فوق
--allow-tool='shell(git)'# يسمح بأداة معينة
--allow-all-paths# يسمح بالوصول لكل المسارات
--excluded-tools# يمنع أدوات معينة

وهنا انت هتقول لي: "طب الـyolo مش خطير؟" أقولك: أيوة خطير — بيدّي الـagent نفس صلاحياتك. استخدمه بس في الـCI أو لما تكون واثق 100%.

كمان فيه أمان إضافي: أوامر kill اللي مش آمنة بتيجي مع permission prompt، وLD_PRELOAD وGIT_EXTERNAL_DIFF بيطلعوا warning. والـorganization تقدر تعطل YOLO mode بالكال من الـpolicy settings.

Section10. الـMemory — الـAgent اللي بيتذكر

تقوللي: "كل مرة ببدأ session جديد لازم أعيد كل حاجة من الأول؟" قولك: لأ. /memory بيتحل الموضوع ده.

bash
/memoryon# يفعل الذاكرة المستمرة
/memoryoff# يوقفها
/memoryshow# يعرض اللي اتعمل memorize

الـMemory بتخزن facts عبر الجلسات. تقوله "Project X uses React 19 and TypeScript" — في الـsession الجاي هيفتكر. والـpermissions بتظهر مين يقدر يشوف الذاكرة (user scope أو repository scope).

Section11. الـComparison — مين فيهم يهز السوق؟

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

الـFeatureCopilot CLIClaude CodeOpenCode
GitHub MCP مدمج✅ مبني جوه❌ عبر MCP❌ عبر MCP
Custom Agents.github/agents/*.md❌ agent واحد.opencode/agents/*.md
Skills system✅ كامل❌ /commands✅ skills
Hooks✅ 9 أنواع✅ محدود✅ hooks
LSP✅ TypeScript, Python...
Autopilot
Rubber Duck✅ AI يراجع AI
Cloud Delegate/delegate
Scheduling/every, /after
Plugin Marketplace
Voice Input
BYOK✅ OpenAI, Anthropic, Azure✅ Anthropic بس✅ أي provider
التكلفة$10-39/شهر$20/شهر أو APIمجاني + API keys
المصدرBinary (MIT license)Binary (proprietary)مفتوح المصدر

إيه اللي بيميز Copilot CLI فعلاً؟

تقولة: "كلهم تقريباً بيعملوا نفس الحاجة." قولك: على الورق أيوة — بس في الواقع فيه 5 نقاط بتفرّق:

  1. GitHub MCP Server مبني جوه. مش محتاج تعمل أي setup عشان تتعامل مع issues, PRs, repos. ده لو شغال في GitHub ecosystem — ده أقوى اختيار. نقطة.
  2. نظام Agents موسع. مش agent واحد. تقدر تعرف agent لكل domain — security, deployment, testing — وكل واحد ليه model وأدواته.
  3. Rubber Duck agent. AI بيراجع AI. ده مش موجود في أي منافس.
  4. LSP Integration. يفهم الكود أعمق من أي CLI تاني.
  5. Scheduling + Cloud Delegation. /every و /delegate بيفتحوا باب لأتمتة كاملة مش موجودة في أي مكان تاني.

تقوللي "طيب والـcost؟" أقولك: $10-39/شهر للـsubscription. لو شغال في GitHub ecosystem والـAI agent بيوفّرلك أكتر من ساعة في اليوم — ده investment مش expense.

Section12. الـProgrammatic Mode — للـCI/CD والأتمتة

مش لازم تجلس في interactive session. Copilot CLI بيتعامل كمان كـأداة برمجية:

bash
# سؤال سريع
copilot-p"What does this function do?"

# تنفيذ مع تحديد الأدوات
copilot-p"Run tests and fix failures"--allow-tool='shell(npm test)'

# autopilot mode
copilot--modeautopilot-p"Refactor the auth module"

# pipe input
echo"Explain this error"|copilot

# attach ملف
copilot-p"Analyze this image"--attachmentscreenshot.png

وده بيفتح باب للاستخدام في CI/CD pipelines، Git hooks، Scripts، وCron jobs.

Section13. الـKeyboard Shortcuts — اللي بيوفر وقت

الاختصارالوظيفة
Shift+Tabيبدل بين الأوضاع (Interactive → Plan → Autopilot)
Ctrl+Cيلغي العملية الحالية
Esc Escيتراجع عن التعديلات لآخر checkpoint
Ctrl+Lيمسح الشاشة (بيحافظ على الـsession)
Ctrl+Oيوسع آخر timeline entries
Ctrl+Sيحفظ ويسترجع الـprompt
Ctrl+Tيبدل reasoning summaries
@إكمال مسار ملف
#إشارة لـissue
/قائمة slash commands
!تنفيذ shell command
&تفويض مهمة للخلفية
j/kتنقل vim-style
wإخفاء whitespace في diff

Section14. الـConfiguration — كل حاجة في مكانها

ملفات الإعداد

الملفالغرض
~/.copilot/settings.jsonإعدادات المستخدم
~/.copilot/mcp-config.jsonMCP servers
~/.copilot/lsp-config.jsonLSP servers
~/.copilot/instructions/**/*.mdتعليمات المستخدم
.github/copilot/settings.jsonإعدادات المشروع
.github/instructions/*.mdتعليمات المشروع (بـapplyTo patterns)
.github/agents/*.mdتعريف agents مخصصة
.mcp.jsonإعداد MCP للمشروع

Environment Variables المهمة

المتغيرالغرض
GH_TOKENGitHub PAT (صلاحية Copilot Requests)
GITHUB_TOKENبديل (أقل أولوية)
COPILOT_HOMEمجلد الإعداد
COPILOT_ENABLE_HTTP2تفعيل HTTP/2

Section15. الخلاصة — إيه اللي بياخدك وإيه اللي بيخليك تفكّر

طيب كل اللي فات ده معناه إيه؟ أولاً، لو شغال في GitHub ecosystem — ده أقوى اختيار من غير منافس. الـMCP server المبني جوه بيوفرلك access لكل حاجة GitHub من غير setup. ثانياً، لو محتاج multi-model — تقدر تبدل بين Claude و GPT حسب المهمة. ثالثاً، لو عايز agents مخصصة — نظام الـcustom agents أقوى من أي منافس. رابعاً، لو بتبني CI/CD — الـprogrammatic mode و scheduling بيفتحوا باب للأتمتة الكاملة. خامساً، لو محتاج LSP — ده الـCLI الوحيد اللي بيدعم Language Server Protocol.

بس لازم تعرف: محتاج Copilot subscription ($10-39/شهر)، الـbinary مش مفتوح المصدر (بس الـlicense MIT)، مش بيشتغل من غير GitHub account، والـexperimental features زي autopilot لسه مش مستقرة 100%.

وهنا يفضل السؤال لحضرتك: لما الـAI agent يقدر يتعامل مع كل حاجة في الترمنال — من الـgit commands للـPRs للـissue management للـcode review — إيه اللي يمنعك تجربه؟ 🚀