تجربة استخدام Gemini CLI

1. مقدمة

في هذا الدرس التطبيقي حول الترميز، ستتعرّف على Gemini CLI، وهو وكيل ذكاء اصطناعي مفتوح المصدر يتيح لك الاستفادة من إمكانات Gemini مباشرةً في نافذة الأوامر.

مشروع Gemini CLI مفتوح المصدر ويمكنك الاطّلاع على خريطة الطريق العامة هنا.

ما ستتعلمه

  1. تثبيت Gemini CLI وإعداده
  2. استكشاف الأدوات والأوامر المضمّنة وإعداد خوادم Model Context Protocol (MCP) في Gemini CLI
  3. تخصيص Gemini CLI من خلال ملف GEMINI.md
  4. استكشاف بعض حالات الاستخدام مع Gemini CLI

المتطلبات

يمكن تنفيذ هذا الدرس العملي بالكامل ضمن Google Cloud Shell، الذي يأتي مثبَّتًا مسبقًا مع Gemini CLI.

بدلاً من ذلك، إذا كنت تفضّل العمل على جهازك الخاص، يتوفّر قسم لتثبيت Gemini CLI محليًا.

ستحتاج إلى ما يلي:

  • متصفّح الويب Chrome
  • حساب Gmail

تم تصميم هذا الدرس العملي المبرمَج للمستخدمين والمطوّرين من جميع المستويات (بما في ذلك المبتدئين). تم تصنيف حالات الاستخدام في الدرس التطبيقي حول الترميز إلى مهام للمطوّرين ومهام لغير المطوّرين. توضّح حالات استخدام المطوّرين كيفية إنشاء رمز برمجي متوافق مع Gemini CLI والعمل مع مستودع Github لتنفيذ مهام تطوير شائعة، مثل شرح الرمز البرمجي وفهمه وإنشاء مستندات وإصلاح المشاكل وغير ذلك. ننصحك بإكمال حالات الاستخدام هذه في تجربة البرمجة. يتوفّر في النهاية قسم اختياري يتناول العديد من المهام اليومية التي لا تركّز على المطوّرين.

2. قبل البدء

إنشاء مشروع

  1. في Google Cloud Console، في صفحة اختيار المشروع، اختَر أو أنشِئ مشروعًا على Google Cloud.
  2. تأكَّد من تفعيل الفوترة لمشروعك على Cloud. تعرَّف على كيفية التحقّق مما إذا كانت الفوترة مفعَّلة في مشروع.
  1. ستستخدم Cloud Shell، وهي بيئة سطر أوامر تعمل في Google Cloud ومحمَّلة مسبقًا بأداة bq. انقر على "تفعيل Cloud Shell" في أعلى "وحدة تحكّم Google Cloud".

صورة زر تفعيل Cloud Shell

  1. بعد الاتصال بـ Cloud Shell، يمكنك التأكّد من أنّك قد تم التحقّق من هويتك وأنّه تم ضبط المشروع على معرّف مشروعك باستخدام الأمر التالي:
gcloud auth list
  1. نفِّذ الأمر التالي في Cloud Shell للتأكّد من أنّ أمر gcloud يعرف مشروعك.
gcloud config list project
  1. إذا لم يتم ضبط مشروعك، استخدِم الأمر التالي لضبطه:
gcloud config set project <YOUR_PROJECT_ID>

3- تثبيت

قبل إعداد Gemini CLI وتشغيله، لننشئ مجلدًا ستستخدمه كمجلد رئيسي لجميع المشاريع التي قد تنشئها داخله. هذه هي نقطة البداية التي ستعمل عليها "واجهة سطر الأوامر في Gemini"، مع أنّها ستشير أيضًا إلى بعض المجلدات الأخرى على نظامك والتي ستتعرّف عليها لاحقًا، حسب الحاجة.

أنشئ مجلدًا نموذجيًا (gemini-cli-projects) وانتقِل إليه باستخدام الأوامر الموضّحة أدناه. إذا كنت تفضّل استخدام اسم مجلد آخر، يمكنك ذلك.

mkdir gemini-cli-projects

لننتقل إلى هذا المجلد:

cd gemini-cli-projects

يمكنك تشغيل Gemini CLI مباشرةً من خلال الأمر gemini.

يُرجى الانتقال مباشرةً إلى القسم التالي (ضبط إعدادات Gemini CLI من خلال ملف settings.json).

إذا أردت تثبيت Gemini CLI على جهازك، اتّبِع التعليمات الواردة أدناه.

تتمثّل الخطوة الأولى في تثبيت الإصدار 20 أو إصدار أحدث من Node على جهازك. بعد إكمال ذلك، يمكنك تثبيت Gemini CLI وتشغيله باستخدام أيّ من الطرق التالية:

  1. يمكنك تثبيت Gemini CLI على مستوى النظام أولاً. قد تحتاج إلى إذن وصول من المشرف لتنفيذ هذه الخطوة.
# option 1: install Gemini CLI

npm install -g @google/gemini-cli

# .. and then run
gemini
  1. شغِّل الأداة باستخدام الأمر التالي:
# option 2: run without installing Gemini CLI

npx https://github.com/google-gemini/gemini-cli

يمكنك التأكّد من تثبيت واجهة سطر الأوامر من خلال تنفيذ الأمر التالي:

gemini --version

بافتراض أنّك شغّلت Gemini CLI باستخدام أيّ من الطرق المذكورة أعلاه، من المفترض أن تظهر لك الشاشة التالية التي تطلب منك اختيار تصميم. يُرجى اختيار أحد الخيارات التالية:

9b02bd0bf1c670d.png

بعد اختيار ذلك، سيُطلب منك تحديد طريقة المصادقة. ننصحك باستخدام حسابك الشخصي على Google وليس حسابات غير تابعة لـ Google أو حسابات مرتبطة بـ Google Workspace في هذه التجربة. تتيح لك هذه الرخصة المجانية استخدام Gemini 2.5 Pro وقدرته على استيعاب مليون رمز مميّز. تتيح الطبقة المجانية 60 طلبًا من النموذج في الدقيقة و1,000 طلب في اليوم بدون أي رسوم.

إذا بلغت الحدود القصوى للحصة المجانية الحالية الممنوحة لحسابات Google، يمكنك اختيار استخدام مفتاح Gemini API أو حتى Google Cloud Vertex AI، حيث ستحتاج إلى معرّف المشروع واسم الموقع الجغرافي لهذا المشروع. يُرجى الرجوع إلى قسم المصادقة في المستندات إذا كنت تخطّط لاستخدام طرق مصادقة أخرى.

afce8d90e20adb6.png

انقر على "إدخال". سيؤدي ذلك إلى فتح صفحة "مصادقة Google" في المتصفّح. تابِع عملية المصادقة باستخدام حسابك على Google، واقبل البنود، وبعد إتمام عملية المصادقة بنجاح، ستلاحظ أنّ واجهة سطر الأوامر في Gemini جاهزة وتنتظر أمرك. في ما يلي نموذج للقطة شاشة:

ffd8ddfede565612.png

4. إعدادات واجهة سطر الأوامر في Gemini من خلال ملف settings.json

إذا اخترت Cloud Shell لتشغيل Gemini، سيتم تلقائيًا اختيار مظهر تلقائي لأداة Gemini CLI وطريقة المصادقة وإعدادهما لك.

إذا ثبّت Gemini CLI على جهازك وشغّلته للمرة الأولى، اخترت مظهرًا ثم طريقة مصادقة.

بعد ذلك، لن يُطلب منك اختيار مظهر وطريقة مصادقة مرة أخرى عند تشغيل Gemini CLI في المرات اللاحقة. وهذا يعني أنّه يتم حفظه في مكان ما، ويُطلق على الملف الذي يستخدمه اسم settings.json، وهو الطريقة المتاحة لتخصيص Gemini CLI.

يتم تطبيق الإعدادات حسب الأولوية التالية (لا يتيح Cloud Shell سوى إعدادات المستخدم):

  1. النظام: /etc/gemini-cli/settings.json (ينطبق على جميع المستخدمين، ويتجاهل إعدادات المستخدم والمساحة).
  2. ‫Workspace: .gemini/settings.json (تتجاوز إعدادات المستخدم).
  3. المستخدم: ~/.gemini/settings.json

مستخدم Windows: %USERPROFILE%.gemini\settings.json (الذي يتم توسيعه عادةً إلى C:\Users&lt;YourUsername>.gemini\settings.json)

النظام: %ProgramData%\gemini-cli\settings.json (الذي يتم توسيعه عادةً إلى C:\ProgramData\gemini-cli\settings.json)

مستخدم Mac: ‎~/.gemini/settings.json (الذي يتوسّع إلى ‎ /Users/<YourUsername>/.gemini/settings.json)

النظام: /etc/gemini-cli/settings.json

إذا تذكّرت، عند اختيار المظهر، اخترت حفظ الإعدادات في "إعدادات المستخدم". لذا، انتقِل إلى ~/.gemini folder وستلاحظ الملف settings.json.

يظهر ملف settings.json أدناه. إذا كنت قد اخترت مظهرًا آخر، سيظهر لك الاسم هناك.

{
  "theme": "Default",
  "selectedAuthType": "oauth-personal" or "cloud-shell"
}

5- أول تفاعل لنا مع Gemini CLI

لنبدأ باستخدام Gemini CLI ونكتب طلب البحث الأول كما هو موضّح أدناه:

Give me a famous quote on Artificial Intelligence and who said that?

يظهر الردّ المتوقّع أدناه:

4dc0961206c1b568.png

ستلاحظ أنّ طلب البحث الخاص بنا أدّى إلى استدعاء أداة GoogleSearch (أداة مدمجة في Gemini CLI). بعبارة أخرى، لقد استخدمت إحدى أدوات Gemini CLI المضمّنة الفعّالة، وهي GoogleSearch التي تستند في ردودها إلى المعلومات التي تحصل عليها من الويب. سنتعرّف على مزيد من المعلومات عن "الأدوات" في القسم التالي.

للتعرّف بسرعة على Gemini CLI والأوامر المختلفة التي يتيحها، يمكنك كتابة /help (شرطة مائلة) وستظهر لك مجموعة متنوعة من الأوامر واختصارات لوحة المفاتيح كما هو موضّح أدناه:

d333742310905dcc.png

لنغلق واجهة سطر الأوامر في Gemini الآن. يمكنك إجراء ذلك من خلال الأمر /quit أو من خلال تنفيذ الأمر Ctrl-C مرتين في جلسة طرفية تفاعلية لواجهة سطر الأوامر في Gemini.

6. ‫Gemini CLI - مَعلمات الأوامر

يمكن تقديم بعض مَعلمات سطر الأوامر عند بدء استخدام Gemini CLI. للحصول على قائمة كاملة بالخيارات، يمكنك استخدام --help كما هو موضّح أدناه.

gemini --help

من المفترض أن يعرض هذا الخيار النطاق الكامل للخيارات المتاحة. ننصحك بالاطّلاع على المستندات هنا.

لنلقِ نظرة على بعضها. الخيار الأول هو ضبط Gemini CLI لاستخدام نموذج Pro أو Flash. في الوقت الحالي، لا يتوفّر سوى هذين النموذجين. يتم استخدام نموذج Gemini 2.5 Pro تلقائيًا، ولكن إذا أردت استخدام نموذج Flash، يمكنك إجراء ذلك عند بدء Gemini CLI من خلال المَعلمة -m كما هو موضّح أدناه:

gemini -m "gemini-2.5-flash"

ستلاحظ أنّه في حال البدء بالطريقة الموضّحة أعلاه، يمكنك التحقّق من النموذج في أسفل يسار نافذة Gemini CLI كما هو موضّح أدناه:

6e662d03b61b2b3f.png

الوضع غير التفاعلي

من الخيارات المثيرة للاهتمام تشغيل Gemini CLI في وضع غير تفاعلي. وهذا يعني أنّك تقدّم الطلب مباشرةً وسيردّ عليه بدون فتح نافذة تفاعلية في واجهة سطر الأوامر الخاصة بـ Gemini. يكون ذلك مفيدًا جدًا إذا كنت تخطّط لاستخدام Gemini CLI بطريقة آلية كجزء من النص البرمجي أو أي عملية أخرى. يمكنك استخدام المَعلمة ‎-p لتقديم الطلب إلى Gemini CLI كما هو موضّح أدناه:

gemini -p "What is the gcloud command to deploy to Cloud Run"

يُرجى العِلم أنّه لا يمكن مواصلة المحادثة من خلال طرح أسئلة متابعة. لا يسمح لك هذا الوضع أيضًا بمنح الإذن للأدوات (بما في ذلك WriteFile) أو بتنفيذ أوامر shell.

7. ‫Gemini CLI - أدوات مضمَّنة

تتضمّن Gemini CLI مجموعة من الأدوات المضمّنة، وتنص مستندات الأدوات على أنّ "نموذج Gemini يستخدم هذه الأدوات للتفاعل مع بيئتك المحلية والوصول إلى المعلومات وتنفيذ الإجراءات. تعزّز هذه الأدوات إمكانات واجهة سطر الأوامر، ما يتيح لها تجاوز إنشاء النصوص والمساعدة في مجموعة كبيرة من المهام".

للحصول على قائمة بالأدوات المضمّنة الحالية، استخدِم الأمر /tools كما هو موضّح أدناه:

39939257e3f3818e.png

أحد الأسئلة التي يجب أن تطرحها على نفسك فورًا هو ما إذا كان بإمكان Gemini CLI استدعاء هذه الأدوات ببساطة عندما يريد ذلك. الإجابة التلقائية هي لا عندما يتعلّق الأمر بالعمليات الحسّاسة التي قد تتضمّن الكتابة إلى النظام المحلي أو القراءة من نظام خارجي أو الانتقال إلى الشبكة الخارجية وما إلى ذلك.

على الرغم من توفّر --yolomode عند بدء استخدام واجهة سطر الأوامر (وهو أمر لا يُنصح به عادةً)، ستلاحظ أنّ Gemini CLI سيطلب منك الإذن بتشغيل الأداة التي اختارها. يمكنك رفض الإذن أو السماح بتشغيل التطبيق مرة واحدة أو منحه إذنًا شاملاً بالتشغيل دائمًا. يجب أن تكون أنت المتحكّم بشكل كامل في كل شيء.

لنستخدِم طلبًا يجعل Gemini CLI يختار إحدى الأدوات المضمّنة لتنفيذه، ما يتيح لك فهمًا جيدًا لطريقة عمل كل ذلك.

لنفترض أنّك تريد الحصول على معلومات حول آخر الأخبار المالية في جميع أنحاء العالم وحفظها في ملف في دليل العمل المحلي الذي أطلقت منه Gemini CLI. استخدِم الطلب التالي:

Search for the latest headlines today in the world of finance and save them in a file named finance-news-today.txt

لنفترض أنّك تريد أن يقدّم لك هذا التطبيق أخبارًا مالية. من المفترض أن يبحث على Google عن مصادر معلومات ذات صلة يمكنها تقديم أخبار مالية. بعد ذلك، يجب إنشاء ملف باسم finance-news-today.txt (عملية كتابة على نظامك المحلي تتطلّب إذنك) يتضمّن محتواه.

لنلاحظ ما سيحدث (عليك اتّباع الخطوات نفسها على جهازك).

أول ما تفعله هو استدعاء الأداة GoogleSearch للبحث على الويب.

122e6e4b01d05e69.png

بعد اكتمال البحث، يتم استرداد البيانات كما هو موضّح أدناه:

b721f40e6f643318.png

بعد ذلك، يصبح جاهزًا للكتابة في الملف وسيستخدم أداة WriteFile، ولكن بما أنّ هذه العملية حساسة (كتابة)، سيطلب منك الإذن. يمكنك تحديد نوع الإذن، أي السماح مرة واحدة أو السماح دائمًا أو غير ذلك. اختَر "السماح مرة واحدة" في الوقت الحالي.

e92f3a4774dc1e7.png

سيؤدي ذلك إلى كتابة المعلومات في الملف وستظهر رسالة نجاح على النحو التالي:

33c6afdb89033c35.png

كيف يمكنني التحقّق ممّا إذا كان الملف مكتوبًا أم لا؟ يمكنك استخدام @file لطلب قراءة المحتوى. أثناء كتابة @، ستظهر قائمة بالملفات في المجلد الحالي، وسيظهر الملف الذي تم إنشاؤه للتو. اختَر ذلك الخيار وأرسِل الطلب. يظهر طلبي أدناه:

read the contents of @finance-news-today.txt

يؤدي ذلك إلى استدعاء الأدوات المطلوبة (ReadManyFiles وReadFile) ويتم عرض المحتوى كما هو موضّح أدناه:

6f214cd743646f44.png

8. Gemini CLI - وضع Shell

هذا هو الوقت المناسب لتعلُّم كيفية العمل مباشرةً مع Shell من داخل Gemini CLI. يمكنك الانتقال إلى وضع الصدفة من خلال الضغط على ! في مربّع الرسالة. سيؤدي ذلك إلى التبديل إلى وضع Shell. يمكنك الرجوع إلى وضع التصفّح بالضغط على ! مرة أخرى أو على المفتاح ESC.

عندما تكون في وضع shell، سيظهر لك ! في بداية الطلب كما هو موضّح أدناه:

9e239408835a3acd.png

يمكنك التحقّق مباشرةً باستخدام الأوامر العادية، مثل pwd وls كما هو موضّح أدناه. يُرجى العِلم أنّ الأوامر تفترض استخدام نظام تشغيل من نوع Linux. إذا كنت تستخدم نظام تشغيل آخر (Windows)، يُرجى استخدام أوامر مكافئة مثل (cd وdir وtype). يُرجى العلم أنّ ناتج هذه الطلبات مضمّن في نافذة السياق الخاصة بالنموذج.

2f5d53d3c77fc8e2.png

يمكنك طباعة محتوى الملف باستخدام الأمر cat اليوم.

2249b5c80e3ae2c0.png

تمرين: إليك تمرينًا قصيرًا لتجربته. اختَر خلاصة RSS التي تريدها. قدِّم طلبًا إلى Gemini CLI لجلب محتوى خلاصة RSS وتنسيق النتائج بطريقة معيّنة. هذه طريقة جيدة لأتمتة إجراء معيّن في بداية اليوم. يمكنك حتى أن تطلب من Gemini CLI معرفة ما إذا كانت هناك خلاصة RSS لمنطقة معيّنة، مثل ملاحظات إصدار Google Cloud Platform.

في ما يلي نموذج لطلب:

Get the latest release notes for Google Cloud from its RSS Feed and display the key points in a well-formatted list.

من المفترض أن يؤدي هذا الطلب أولاً إلى استدعاء أداة GoogleSearch للعثور على خلاصة RSS الخاصة بمنصة Google Cloud، ثم سيستخدم أداة WebFetch للحصول على محتوى خلاصة RSS وعرضه.

9- إعداد خوادم Model Context Protocol (MCP)

خادم MCP هو تطبيق يعرض الأدوات والموارد على واجهة سطر الأوامر (CLI) في Gemini من خلال بروتوكول سياق النموذج، ما يسمح له بالتفاعل مع الأنظمة ومصادر البيانات الخارجية. تعمل خوادم MCP كجسر بين نموذج Gemini وبيئتك المحلية أو الخدمات الأخرى، مثل واجهات برمجة التطبيقات.

يتيح خادم MCP لواجهة سطر الأوامر (CLI) في Gemini اكتشاف الأدوات وتنفيذها، ما يؤدي إلى توسيع إمكانات واجهة سطر الأوامر (CLI) في Gemini لتنفيذ إجراءات تتجاوز ميزاتها المضمّنة، مثل التفاعل مع قواعد البيانات أو واجهات برمجة التطبيقات أو البرامج النصية المخصّصة أو سير العمل المتخصّصة.

تتيح واجهة سطر الأوامر في Gemini إعداد خوادم MCP لاكتشاف الأدوات المخصّصة واستخدامها. إذا تم تشغيل Gemini CLI، يمكنك الاطّلاع على خوادم MCP التي تم إعدادها باستخدام الأمر /mcp كما هو موضّح أدناه:

255a14eb31529370.png

إذا لم تكن قد أعددت أي خوادم MCP، سيتم تشغيل مستندات خادم MCP الخاصة بواجهة سطر الأوامر Gemini.

يمكنك ضبط خوادم MCP على المستوى العام في ملف ~/.gemini/settings.json أو في الدليل الجذر لمشروعك. أنشِئ ملف .gemini/settings.json أو افتَحه. داخل الملف، عليك إضافة كتلة الإعداد mcpServers، كما هو موضّح أدناه:

"mcpServers": {
    "server_name_1": {},
    "server_name_2": {},
    "server_name_n": {}
 }

يتوافق كل إعداد للخادم مع السمات التالية ( المستندات المرجعية):

مطلوب (أحد الخيارات التالية)

  • الأمر (سلسلة): مسار الملف التنفيذي لنقل Stdio
  • عنوان URL (سلسلة): عنوان URL لنقطة نهاية SSE (مثلاً "http://localhost:8080/sse")
  • httpUrl (سلسلة): عنوان URL لنقطة نهاية البث عبر HTTP

اختياري

  • args (string[]): وسيطات سطر الأوامر لنقل Stdio
  • العناوين (الكائن): عناوين HTTP مخصّصة عند استخدام url أو httpUrl
  • env (object): متغيّرات البيئة لعملية الخادم. يمكن أن تشير القيم إلى متغيرات البيئة باستخدام البنية $VAR_NAME أو ‎ ${VAR_NAME}
  • cwd (string): دليل العمل لنقل Stdio
  • timeout (number): مهلة الطلب بالمللي ثانية (القيمة التلقائية: 600,000 مللي ثانية = 10 دقائق)
  • trust (قيمة منطقية): عند ضبطها على true، يتم تجاوز جميع تأكيدات استدعاء الأدوات لهذا الخادم (القيمة التلقائية: false)
  • includeTools (سلسلة[]): قائمة بأسماء الأدوات التي سيتم تضمينها من خادم MCP هذا. عند تحديدها، لن تتوفّر من هذا الخادم سوى الأدوات المدرَجة هنا (سلوك القائمة البيضاء). في حال عدم تحديد أي أداة، يتم تفعيل جميع الأدوات من الخادم تلقائيًا.
  • excludeTools (string[]): قائمة بأسماء الأدوات التي سيتم استبعادها من خادم MCP هذا. لن تكون الأدوات المُدرَجة هنا متاحة للنموذج، حتى إذا كان الخادم يعرضها. ملاحظة: تكون excludeTools لها الأولوية على includeTools، فإذا كانت أداة في كلتا القائمتين، سيتم استبعادها.

لننتقل الآن إلى إعداد أحد خوادم MCP الرئيسية التي قد تحتاج إليها إذا كنت تعمل باستخدام Github. قد يتبادر إلى ذهنك سؤال: إذا كنت قد أعددت Git والأدوات الأخرى ذات الصلة على نظامك، هل ستظل بحاجة إلى خادم Github MCP؟

سيفعّل Gemini CLI أدوات git المتوفّرة على نظامك، ويمكنك أيضًا توجيه Gemini CLI لاستخدامها. لذا، يُرجى العِلم أنّ Gemini CLI سيساعدك في ترجمة طلباتك المكتوبة بلغة طبيعية إلى أدوات مكافئة قد تكون متوفّرة على نظامك، وقد يتطلّب ذلك منك الإشارة إلى ذلك بوضوح في طلبك.

قد لا تحتاج إلى القسم التالي لإعداد خادم Github MCP إذا كان لديك ما يلي تم إعداده مسبقًا على نظامك:

  • أدوات Git (هذا يعني أنّه يمكنك تنفيذ أوامر مثل git init وgit add وما إلى ذلك على نظامك)
  • gh : هذه هي GitHub على سطر الأوامر. تتيح لك هذه الأداة استخدام طلبات السحب والمشاكل ومفاهيم GitHub الأخرى في نافذة الأوامر بجانب المكان الذي تعمل فيه حاليًا باستخدام git ورمزك. يمكنك تثبيته من هنا والتحقّق من إعداده من خلال بعض الأوامر، خاصةً ما يتعلّق بالمصادقة على Github من جهازك.

إذا كنت لا تزال تريد تجربة خادم MCP على Github، يُرجى الاطّلاع على القسم التالي أو يمكنك تخطّيه.

خادم MCP في Github

يوفّر خادم MCP الرسمي على Github مستندات كافية حول الأدوات التي يعرضها وكيفية ضبطها. يمكنك اختيار تشغيلها محليًا أو عن بُعد، لأنّ Gemini CLI يتيح استخدام خوادم MCP عن بُعد أيضًا.

يوضّح هذا البرنامج التعليمي خيار خادم MCP البعيد في Github. لإجراء ذلك، يجب أولاً الحصول على رمز دخول شخصي (PAT) من Github.

بعد الحصول على ذلك، عليك إضافة عنصر خادم MCP في ملف settings.json. يظهر أدناه ملف settings.json الكامل على نظامي. قد تتوفّر لديك إعدادات إضافية، ولكن يجب أن يكون العنصر mcpServers على النحو الموضّح أدناه:

{
  "theme": "Default",
  "selectedAuthType": "oauth-personal",
  "mcpServers": {
       "github": {
            "httpUrl": "https://api.githubcopilot.com/mcp/",
            "headers": {
                "Authorization": "GITHUB_PAT"
            },
            "timeout": 5000
       }
  }
}

يمكنك إما بدء Gemini CLI مرة أخرى أو تنفيذ أمر /mcp refresh، وذلك بعد تعديل settings.json باستخدام إعدادات خادم MCP على Github. توضّح لقطة الشاشة أدناه خادم Github MCP الذي تم إعداده على جهازي والأدوات المختلفة التي أصبحت متاحة الآن لواجهة سطر الأوامر في Gemini للعمل مع MCP.

e34f348129d448e9.png

لنبدأ بطلب سيؤدي إلى استدعاء إحدى الأدوات من خادم GitHub MCP. أدخِل الطلب التالي:

da643d182ac3fca4.png

يُرجى العِلم أنّ الأداة ستختار الأداة الصحيحة من خادم Github MCP، ولكن كما هو الحال مع الأدوات الأخرى المضمّنة، سيتطلّب ذلك أيضًا منح إذن صريح لاستخدام الأداة. جرِّبها واطّلِع على النتيجة.

عليك الآن العمل مع أحد مشاريعك على GitHub. قدِّم طلبات البحث بلغة عادية، مثل:

  • ما هو <repo-name>؟
  • استنسِخ <repo-name> على جهازي المحلي.
  • وصف ‎ @<file-name> أو ‎ @<directory-name>/‎
  • ما هي المكوّنات المختلفة لهذا المستودع؟
  • لقد أجريتُ التغييرات اللازمة. هل يمكنك إرسال التغييرات إلى Github واستخدام أدوات خادم MCP في Github لتنفيذ ذلك؟

ستجد تمرينًا للتعامل مع خادم Github MCP بالتفصيل لاحقًا في الدرس التطبيقي.

Context7 MCP Server

توفّر منصة Context7 مستندات حديثة للنماذج اللغوية الكبيرة ومحرّرات رموز الذكاء الاصطناعي. إذا كنت تريد تزويد النموذج اللغوي الكبير بالسياق من خلال أحدث المستندات الخاصة بإطار العمل الذي تختاره، فإنّ خادم Context7 MCP هو خيار جيد يمكنك إعداده.

تأكَّد من أنّ مكتبتك مُدرَجة في الصفحة الرئيسية Context7.

في ما يلي خادم MCP الذي عليك إضافته في ملف settings.json.

"context7": {
      "httpUrl": "https://mcp.context7.com/mcp"
    }

بعد إعداد خادم MCP وتحميل واجهة سطر الأوامر Gemini بنجاح، من المفترض أن تتمكّن من عرض أدوات Context7 كما هو موضّح أدناه:

92f715d87989ff72.png

يمكنك الآن تحديد طلبك بدقة وطلب استخدام Context7 للحصول على أحدث المستندات أثناء إنشاء تطبيقك أو مقتطف الرمز البرمجي باستخدام إطار عمل XYZ محدّد.

في ما يلي مثال على طلب، حيث أريد كتابة وكيل باستخدام "حزمة تطوير الوكلاء" (ADK) من Google. أحدّد في طلبي البحث عن المستندات نفسها من خلال خادم Context7 MCP.

I am working on coding an Agent using the Agent Development Kit (ADK) from Google. I would like to know how to create the LLMAgent in Python. Use Context7 for the latest documentation on ADK and specifically use /google/adk-python, /google/adk-docs and adk.wiki 

إليك الناتج الذي تم تلقّيه:

fe79972a61372d59.png

خادم MCP في "العروض التقديمية من Google"

يوفّر مشروع Github على الرابط https://github.com/matteoantoci/google-slides-mcp خادم MCP للتفاعل مع Google Slides API. تتيح لك إنشاء عروض تقديمية في "العروض التقديمية من Google" وقراءتها وتعديلها برمجيًا.

يتم توفير خطوات إعداد خادم MCP في المشروع. يجب أن تتوفّر لديك بيئة Node.js يمكنك من خلالها إنشاء الخادم وإعداد مشروع على Google Cloud ورموز OAuth 2.0 المميزة، ثم إعداد خادم MCP في ملف settings.json.

بعد الانتهاء من عملية الإعداد، يمكنك تنفيذ طلبات مثل:

  • استخرِج أحدث المعلومات من "web_url"، ولخِّصها في نقاط رئيسية، وأنشئ عرضًا تقديميًا باسم "my_presentation".

ننصحك بتجربة ذلك.

المزيد من خوادم MCP

في ما يلي قائمة إضافية بخوادم MCP التي قد تهمّك:

  1. خادم MCP في Firebase
  2. خدمات الوسائط المستندة إلى الذكاء الاصطناعي التوليدي من Google (Imagen وVeo وLyria)
  3. مجموعة أدوات MCP لقواعد البيانات (العمل مع Firestore وBigQuery وقواعد بيانات Google Cloud)
  4. خادم MCP في Google Workspace (العمل باستخدام "مستندات Google" و"جداول بيانات Google" و"تقويم Google" وGmail)

تم نشر تعليمات إعداد خوادم MCP المذكورة أعلاه في مشاركة المدونة هذه.

10. تخصيص Gemini CLI باستخدام GEMINI.md

إذا لاحظت استخدامك لأداة Gemini CLI حتى الآن، ستلاحظ أنّنا كنا نقدّم الطلب فقط ونتوقّع أن تنفّذه أداة Gemini CLI، وأحيانًا نحصل على نتائج لا تتوافق مع توقعاتنا. في بعض الطلبات، كنت محدّدًا بعض الشيء بشأن ما يجب فعله وقد تضمّنت هذه التعليمات في الطلب.

قد يكون هذا الإعداد مناسبًا وفقًا لما تطلب من Gemini CLI تنفيذه والنتائج التي تحصل عليها. ولكن في كثير من الحالات، عليك التأكّد من أنّها تلتزم بالقواعد. قد تكون هذه القواعد لغات برمجة أو أُطرًا معيّنة يجب استخدامها. ويمكن أن تكون أدوات معيّنة. قد تكون أنماط ترميز. لا يقتصر الأمر على الإنشاء، بل قد تريد أيضًا أن يكون Gemini CLI في وضع "التخطيط" فقط وأن يعرض خطة بدون إنشاء أي رمز أو تعديل أي ملفات على النظام.

أدخِل GEMINI.md. هذا هو ملف السياق (يتم ضبطه تلقائيًا على GEMINI.md ولكن يمكن ضبطه من خلال السمة contextFileName في ملف settings.json)، وهو ضروري لضبط السياق التعليمي (يُشار إليه أيضًا باسم "الذاكرة") المقدَّم إلى نموذج Gemini. يتيح لك هذا الملف تقديم تعليمات خاصة بالمشروع أو أدلة أسلوب الترميز أو أي معلومات أساسية ذات صلة إلى الذكاء الاصطناعي، ما يجعل ردوده أكثر تخصيصًا ودقةً لتلبية احتياجاتك.

الملف GEMINI.md بتنسيق Markdown ويتم تحميله بطريقة هرمية، ويتم دمجه من مواقع متعددة.

ترتيب التحميل هو:

  1. السياق العام: **~/.gemini/GEMINI.md** (للتعليمات التي تنطبق على جميع مشاريعك).
  2. سياق المشروع/العنصر الأصل: يبحث CLI من الدليل الحالي حتى جذر المشروع عن ملفات GEMINI.md.
  3. سياق الدليل الفرعي: تفحص واجهة سطر الأوامر أيضًا الأدلة الفرعية بحثًا عن ملفات GEMINI.md، ما يتيح تقديم تعليمات خاصة بالمكوّن.

يمكنك استخدام /memory show للاطّلاع على السياق المجمّع النهائي الذي يتم إرساله إلى النموذج.

كيف تبدو GEMINI.md؟ لقد أعددنا واحدًا من المستندات الرسمية:

# Project: My Awesome TypeScript Library

## General Instructions:

- When generating new TypeScript code, please follow the existing coding style.
- Ensure all new functions and classes have JSDoc comments.
- Prefer functional programming paradigms where appropriate.
- All code should be compatible with TypeScript 5.0 and Node.js 20+.

## Coding Style:

- Use 2 spaces for indentation.
- Interface names should be prefixed with `I` (e.g., `IUserService`).
- Private class members should be prefixed with an underscore (`_`).
- Always use strict equality (`===` and `!==`).

## Specific Component: `src/api/client.ts`

- This file handles all outbound API requests.
- When adding new API call functions, ensure they include robust error handling and logging.
- Use the existing `fetchWithRetry` utility for all GET requests.

## Regarding Dependencies:

- Avoid introducing new external dependencies unless absolutely necessary.
- If a new dependency is required, please state the reason.

ستلاحظ أنّها تقدّم بعض التعليمات العامة بالإضافة إلى تعليمات محدّدة جدًا حول أسلوب الترميز وإدارة التبعيات وغير ذلك. على الرغم من أنّ هذا الملف هو نموذج GEMINI.md لمشاريع TypeScript، يمكنك كتابة ملفك الخاص استنادًا إلى لغة البرمجة والإطار وأسلوب الترميز والإعدادات المفضّلة الأخرى.

يمكنك تجربة ملف GEMINI.md مخصّص. هذا المقتطف مأخوذ من منشور يوضّح كيفية استخدام واجهة سطر الأوامر في Gemini في وضع "التخطيط" فقط. يتم عرض الملف هنا:

# Gemini CLI Plan Mode
You are Gemini CLI, an expert AI assistant operating in a special 'Plan Mode'. Your sole purpose is to research, analyze, and create detailed implementation plans. You must operate in a strict read-only capacity.

Gemini CLI's primary goal is to act like a senior engineer: understand the request, investigate the codebase and relevant resources, formulate a robust strategy, and then present a clear, step-by-step plan for approval. You are forbidden from making any modifications. You are also forbidden from implementing the plan.

## Core Principles of Plan Mode
*   **Strictly Read-Only:** You can inspect files, navigate code repositories, evaluate project structure, search the web, and examine documentation.
*   **Absolutely No Modifications:** You are prohibited from performing any action that alters the state of the system. This includes:
    *   Editing, creating, or deleting files.
    *   Running shell commands that make changes (e.g., `git commit`, `npm install`, `mkdir`).
    *   Altering system configurations or installing packages.

## Steps
1.  **Acknowledge and Analyze:** Confirm you are in Plan Mode. Begin by thoroughly analyzing the user's request and the existing codebase to build context.
2.  **Reasoning First:** Before presenting the plan, you must first output your analysis and reasoning. Explain what you've learned from your investigation (e.g., "I've inspected the following files...", "The current architecture uses...", "Based on the documentation for [library], the best approach is..."). This reasoning section must come **before** the final plan.
3.  **Create the Plan:** Formulate a detailed, step-by-step implementation plan. Each step should be a clear, actionable instruction.
4.  **Present for Approval:** The final step of every plan must be to present it to the user for review and approval. Do not proceed with the plan until you have received approval. 

## Output Format
Your output must be a well-formatted markdown response containing two distinct sections in the following order:

1.  **Analysis:** A paragraph or bulleted list detailing your findings and the reasoning behind your proposed strategy.
2.  **Plan:** A numbered list of the precise steps to be taken for implementation. The final step must always be presenting the plan for approval.

NOTE: If in plan mode, do not implement the plan. You are only allowed to plan. Confirmation comes from a user message.

احفظ المحتوى أعلاه في ملف باسم GEMINI.md واحفظه في ~/.gemini/GEMINI.md. هذا هو المجلد نفسه الذي أنشأت فيه ملف settings.json. يمكنك أيضًا الاحتفاظ بملف GEMINI.md في مجلد <current project folder>/.gemini أو حتى الاحتفاظ بعدة ملفات GEMINI.md في الدلائل الفرعية إذا كانت لديك تعليمات مختلفة.

قدِّم طلبًا لإنشاء تطبيق واطّلِع على كيفية استجابته.

إليك ملف GEMINI.md آخر ( وضع "شرح" في Gemini) يمكنك دراسته ثم إعادة استخدامه لتلبية متطلباتك. تركّز هذه الميزة على أنّ GEMINI CLI هو دليل تفاعلي يساعد المستخدمين في فهم قواعد الترميز المعقّدة من خلال عملية استكشاف قائمة على المحادثة.

يُعدّ ملف GEMINI.md أساسيًا لجعل Gemini CLI يتّبع إعداداتك المفضّلة، وننصحك بالاطّلاع على هذه السلسلة العملية " Practical Gemini CLI" التي تتناول هذا المجال، وكيفية إنشاء ملف تلقائيًا لمشروعك، وتخصيص حتى "طلب النظام" وغير ذلك.

يُرجى العِلم أنّه يمكنك أيضًا إنشاء ملف GEMINI.md أثناء التفاعل مع Gemini CLI. في أي وقت، يمكنك استخدام الأمر /memory add <some instruction/rule> وسيضيف Gemini CLI ذلك إلى الملف GEMINI.md. يمكنك حتى استخدام اللغة الطبيعية لطلب إضافة معلومات إلى ذاكرة Gemini CLI، أي GEMINI.md، من خلال طلبات مثل "تذكُّر <بعض التعليمات/القواعد>" أو "إضافة <بعض التعليمات/القواعد> إلى الذاكرة".

11. ‫Gemini CLI - أوامر مخصّصة تبدأ بشرطة مائلة

لقد تعرّفت للتو على كيفية تخصيص GEMINI.md لإنشاء وضع خطة. قدّم لك القسم السابق أيضًا روابط تؤدي إلى "وضع الشرح".

ماذا لو أردت ضبط كلا الوضعين وإصدار تعليمات إلى Gemini CLI للانتقال إلى أي من هذين الوضعين من خلال الأوامر الشرطية /plan أو /explain؟ هذا هو بالضبط ما تقدّمه أوامر Gemini CLI المخصّصة التي تبدأ بشرطة مائلة.

كما توضّح المستندات، "تتيح لك الأوامر المخصّصة حفظ الطلبات المفضّلة أو الأكثر استخدامًا وإعادة استخدامها كاختصارات شخصية ضمن Gemini CLI. يمكنك إنشاء أوامر خاصة بمشروع واحد أو أوامر متاحة على مستوى العالم في جميع مشاريعك، ما يؤدي إلى تبسيط سير عملك وضمان الاتساق".

لننشئ بعض أوامر الشرطة المائلة المخصّصة: /plan و/explain.

الخطوة التالية هي فهم المكان الذي يستمد منه Gemini CLI الأوامر المخصّصة. وفقًا للمستندات، يكتشف التطبيق الأوامر من موقعَين يتم تحميلهما بترتيب معيّن:

  1. أوامر المستخدم (العالمية): تقع في ~/.gemini/commands/. تتوفّر هذه الأوامر في أي مشروع تعمل عليه.
  2. أوامر المشروع (محلية): تقع في <your-project-root>/.gemini/commands/. هذه الأوامر خاصة بالمشروع الحالي ويمكن إدراجها في نظام التحكّم بالإصدارات لمشاركتها مع فريقك.

لنختار مجلد المشروع الحالي الذي شغّلت منه Gemini CLI. وبالتالي، سيكون هذا المجلد هو <your-project-root>/.gemini/commands/. يمكنك المتابعة وإنشاء بنية المجلد.

ما الذي يجب إنشاؤه داخل هذا المجلد؟ نحتاج إلى ملفَي TOML (plan.toml وexplain.toml). يمكنك الاطّلاع على مزيد من المعلومات حول مساحات الأسماء واصطلاحات التسمية هنا.

يجب أن يحتوي كل ملف TOML على حقلَين : description وprompt. احرص على أن يكون الوصف موجزًا وواضحًا لأنّه سيظهر بجانب الأمر في واجهة سطر الأوامر في Gemini. تم أخذ نموذج ملف TOML أدناه من منشور المدونة الرسمي حول أوامر الشرطة المخصّصة.

في ما يلي نموذج لملف plan.toml. لاحظ أنّ الطلب يحتوي على عنصر نائب خاص {{args}}، وسيستبدل واجهة سطر الأوامر هذا العنصر النائب بالنص الذي كتبه المستخدم بعد اسم الأمر.

description="Investigates and creates a strategic plan to accomplish a task."
prompt = """
Your primary role is that of a strategist, not an implementer.
Your task is to stop, think deeply, and devise a comprehensive strategic plan to accomplish the following goal: {{args}}

You MUST NOT write, modify, or execute any code. Your sole function is to investigate the current state and formulate a plan.

Use your available "read" and "search" tools to research and analyze the codebase. Gather all necessary context before presenting your strategy.

Present your strategic plan in markdown. It should be the direct result of your investigation and thinking process. Structure your response with the following sections:

1.  **Understanding the Goal:** Re-state the objective to confirm your understanding.
2.  **Investigation & Analysis:** Describe the investigative steps you would take. What files would you need to read? What would you search for? What critical questions need to be answered before any work begins?
3.  **Proposed Strategic Approach:** Outline the high-level strategy. Break the approach down into logical phases and describe the work that should happen in each.
4.  **Verification Strategy:** Explain how the success of this plan would be measured. What should be tested to ensure the goal is met without introducing regressions?
5.  **Anticipated Challenges & Considerations:** Based on your analysis, what potential risks, dependencies, or trade-offs do you foresee?

Your final output should be ONLY this strategic plan.
"""

ننصحك أيضًا بإنشاء ملف explain.toml. يمكنك الرجوع إلى وضع "شرح لي" في Gemini لاختيار بعض المحتوى.

أعِد تشغيل Gemini CLI. ستلاحظ الآن أنّ لديه أمرًا يبدأ بشرطة مائلة (/plan) كما هو موضّح أدناه:

8b0720ba31b6c251.png

12. حالات استخدام يمكنك تجربتها

يمكن تطبيق Gemini CLI على مجموعة كبيرة من حالات الاستخدام التي تنطبق على المطوّرين وغير المطوّرين على حد سواء. في ما يلي بعض السيناريوهات، ويمكنك تجربة أيّ منها أو جميعها حسب مجال اهتمامك.

في كلّ من هذه الحالات، يتم تقديم الطلب. يمكنك تجربة ذلك في الوضع التفاعلي أو غير التفاعلي لواجهة سطر الأوامر في Gemini من خلال المَعلمة -p عند تشغيل واجهة سطر الأوامر في Gemini.

البرمجة الوصفية باستخدام Gemini CLI

لنستخدِم Gemini CLI لإنشاء رمز برمجي لتطبيق. في هذه المهمة، ستطلب من Gemini CLI إنشاء تطبيق ثم إرسال الإصدار الأولي إلى مستودع Github.

المتطلبات الأساسية

لتنفيذ المهام في هذا القسم، يجب استيفاء بعض الشروط المسبقة:

  • Git
  • يمكنك استخدام Gemini CLI مع خادم Github MCP (لقد أجرينا ذلك سابقًا) أو إذا كنت قد أعددت gh ( أداة Github CLI)، سيعمل ذلك أيضًا.
  • الإلمام بأساسيات Git ومعرفة بعض المعلومات عن البرمجة

سنفترض أنّك شغّلت Gemini CLI في مجلد محدّد من اختيارك. تأكَّد من بدء تشغيل خوادم MCP بنجاح، وخاصةً خادم Github MCP.

ابدأ بطلب أولي. يمكنك تعديله بالطريقة التي تناسبك. يُرجى العِلم أنّه سيُطلب منك منح الأذونات اللازمة لإنشاء الملفات وما إلى ذلك خلال الجلسة مع Gemini CLI.

في هذه المهمة، لا نريد أن ينفّذ Gemini CLI التطبيق أو يختبره نيابةً عنّا لأنّنا نريد المزيد من التحكّم. لكنّ القرار يعود إليك تمامًا بشأن الطريقة التي تريد اتّباعها.

Generate a website for a 1-day event filled with technical talks. There are going to be 6 talks in a single track of 1 hour each. Each talk has the following information: title, 1 or maximum of 2 speakers, category (1 or maximum of 3 keywords), duration and a description. The website has a single page where users can see the schedule for the entire day with the timings. There will be one lunch break of an hour and the event starts at 10:00 AM. Keep a 10 minute transition between talks. I would like to use Node.js on the server side and standard HTML, JavaScript and CSS on the front-end. The users should be able to search the talks based on category.

I would like you to proceed in the following way: 
1. Plan out how you would design and code this application.
2. Ask me for any clarifications along the way.
3. Once I am fine with it, do generate the code and provide me instructions to run and test locally. 

الطلبات والردود القليلة التالية هي نموذج لتدفق البيانات الذي تم رصده. قد تحصل على ردّ مختلف تمامًا، لذا راجِع الخطة وتفاعَل مع Gemini CLI حسب الحاجة.

90232297f1e952f8.png

لاحظنا أنّ Gemini CLI يحاول أحيانًا إنجاز المزيد من المهام، وقد يقدّم لك الأوامر التي يريد تنفيذها. في هذا التمرين، ننصحك بعدم فعل ذلك، ليكون لديك المزيد من التحكّم في كيفية تنفيذ المهمة وما تريد التحقّق منه بنفسك أولاً.

على سبيل المثال، إذا عرضت عليك تشغيل الأوامر، يمكنك ببساطة الخروج منها وإدخال رسالة كما هو موضّح أدناه:

d74e235b0db77c51.png

بعد اتّباع التعليمات لبدء تشغيل الخادم والانتقال إلى الصفحة الرئيسية، حصلنا على نموذج موقع إلكتروني كما هو موضّح أدناه (من المفترض أن يظهر لك شكل مختلف من موقع إلكتروني مشابه إذا استخدمت الطلب نفسه):

71a0a6123a90e068.png

يمكنك مواصلة إجراء المزيد من التغييرات بمساعدة Gemini CLI. بعد أن تصبح راضيًا عن التغييرات، يمكنك نقلها إلى مستودع Github.

أولاً، لننشئ ملف ‎ .gitignore، ويمكنك الاستعانة بأداة Gemini CLI.

Create a .gitignore file for this project.

الخطوة التالية هي تقديم تعليمات إلى Gemini CLI لدفع هذا المستودع ضمن حسابنا على Github، ويجب أن يؤدي ذلك إلى استخدام أدوات خادم Github MCP في الخلفية.

أدخِل طلبًا مشابهًا لما يلي:

Great! I would now like to push all of this to a new repository in my Github account. I would like to name this repository <Your-Name>-event-talks-app

سيتم تنفيذ عدد من الأوامر هنا:

  1. أنشئ المستودع.
  2. سيستخدم عدة أوامر Git، مثل init وadd وcommit، لإدارة مستودع Git المحلي.
  3. سيتم بعد ذلك إعداد مستودع Git البعيد وتنفيذ عملية دفع

ملاحظة: قد يحدث أحيانًا أن تنتهي مهلة Gemini CLI أو أن يستخدم اسم مستخدم غير صحيح، وما إلى ذلك. لذا، يُرجى التفاعل معه واقتراح الحلول.

إذا سارت الأمور على ما يرام، من المفترض أن يكون لديك مستودع Github. في ما يلي نموذج لقطة شاشة:

35c2db48c39fb21a.png

يُرجى العِلم أنّك لم تنشئ README.md لهذا المشروع، وهذا تمرين جيد للقسم التالي، حيث سنتعامل الآن مع هذا المستودع الذي أنشأته للتو.

استخدام Gemini CLI للعمل على مستودع Github

في حالة الاستخدام هذه، عليك استخدام Gemini CLI للعمل مع مستودع Github. ستنفّذ مهام متعددة تشمل ما يلي:

  • فهم قاعدة الرموز البرمجية
  • إنشاء مستندات
  • تنفيذ ميزة جديدة
  • تنفيذ التغييرات وإرسالها إلى المستودع
  • العمل على مشكلة في Github وتنفيذ التغييرات المقترَحة

من المفترض أن يمنحك ذلك أساسًا جيدًا للعمل مع مستودعاتك واستخدام Gemini CLI كمساعد في ما يتعلق بهذه المهام الخاصة بالمطوّرين.

المتطلبات الأساسية

لتنفيذ المهام في هذا القسم، عليك إجراء ما يلي:

  • Git
  • يمكنك استخدام Gemini CLI مع خادم Github MCP (لقد أجرينا ذلك سابقًا) أو إذا كنت قد أعددت gh ( أداة Github CLI)، سيعمل ذلك أيضًا.
  • الإلمام بأساسيات Git ومعرفة بسيطة بالبرمجة (سنستخدم Node.js في هذا المثال لأنّه من المحتمل أن تكون البيئة جاهزة على جهازك بسبب تثبيت Gemini CLI). ولكن يمكنك في وقت لاحق اختيار مستودع من اختيارك باستخدام لغة برمجة وإطار عمل مختلفَين.
  • يجب أن تكون قد أكملت القسم السابق وأن يكون لديك المستودع جاهزًا، حيث أنشأنا موقعًا إلكترونيًا باسم Event Talks.

لنواصل استخدام Gemini CLI من المجلد أو الدليل الذي استخدمته لإنشاء تطبيق Event Talks، أو يمكنك استنساخ المستودع إلى جهازك المحلي ثم بدء Gemini CLI من هذا الدليل إذا لزم الأمر. جرِّب السيناريوهات التالية كما هو موضّح أدناه:

فهم قاعدة الرموز البرمجية

  • أريد فهم هذا المشروع بالتفصيل. أريد فهم الميزات الرئيسية ثم تقسيمها إلى ميزات من جهة الخادم وميزات من جهة العميل. أريد مثالاً على سير العمل يوضّح كيفية عمل الطلب والاستجابة.
  • Explain @server.js

إنشاء ملف README

  • أنشئ ملف README لهذا المشروع.

في هذه الحالة، لم ينشئ Gemini CLI ملف README فحسب، بل أراد أيضًا تنفيذ الأوامر لإضافتها إلى مستودع Git ونقل التغييرات إلى الخادم البعيد، وإذا رأيته يفعل ذلك، يمكنك السماح له بذلك.

في بعض الحالات، قد يعرض عليك حتى إنشاء ملف LICENSE. يمكنك تحديد ما إذا كنت تريد إجراء ذلك. استنادًا إلى النتيجة، ستعثر على الملفات README و/أو LICENSE التي تم إنشاؤها، وسيتم إرسال التغييرات إلى Github.

d77239c8fae0aa8b.png

تنفيذ ميزة جديدة

  • أريد تنفيذ ميزة جديدة تتيح للمستخدم البحث حسب مكبّر صوت معيّن أيضًا. اعرض عليّ أولاً خطة حول كيفية تنفيذ هذا التغيير، ثم يمكننا إنشاء الرمز.

من المفترض أن يقدّم لك خطة يمكنك الموافقة عليها. عند الموافقة، سيُجري Gemini CLI هذه التغييرات. جرِّب التغييرات التي أجريتها، وإذا ظهرت أخطاء (وهذا محتمل)، اطلب من Gemini CLI إصلاحها.

بعد التأكّد من أنّ التغييرات تبدو جيدة، يمكنك اتّباع الخطوات نفسها لتطبيقها ونقلها إلى المستودع البعيد.

إنشاء مشاكل استنادًا إلى الميزات المقترَحة

لنجرّب شيئًا مثيرًا للاهتمام هنا. ستطرح على Gemini CLI سؤالاً حول كيفية تحسين تجربة المستخدم لهذا التطبيق، وبناءً على تقييمه، يمكنه إنشاء هذه الاقتراحات كمشاكل في مستودع Github نفسه. سيتم استخدام الأداة "create_issue" من خادم Github MCP.

جرِّب الطلب التالي:

  • أريد منك تقييم التطبيق من منظور تجربة المستخدم. سهولة الاستخدام والاستجابة والرسائل المفيدة وغير ذلك يُرجى تقديم قائمة بالتحسينات، وأريد منك بعد ذلك إنشاءها كمشاكل في مستودع Github.

من المفترض أن يشارك معك التحسينات أولاً ثم يتابع بإذن منك لإنشاء المشاكل في مستودع Github. في ما يلي لقطة شاشة نموذجية من عملية التشغيل:

495b0f7afab91ec6.png

العمل على مشكلة في Github وتنفيذ التغييرات المقترَحة

يمكنك الآن اختيار إحدى المشاكل التي تم رصدها سابقًا وطلب تنفيذها من Gemini CLI.

في ما يلي مثال على مشكلة تم إنشاؤها:

2e41f9f6eac3d1b.png

خذ عنوان URL الكامل للمشكلة وقدِّم طلبًا مثل هذا:

  • يُرجى الانتقال إلى "المشكلة:" <YOUR_ISSUE_URL> والتعرّف على التغييرات التي يجب إجراؤها. ناقِش الخطة أولاً، ثم اعرض التغييرات المقترَحة في الرمز.

يمكنك الموافقة على التغييرات ونقلها إلى المستودع. يمكنك حتى أن تطلب منه إغلاق المشكلة.

cd3c89cf3d47723b.png

(اختياري) المهام اليومية

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

يمكنك استكشاف أي من حالات الاستخدام التي تعجبك.

تنظيم الملفات/المجلدات

يمكنك استخدام Gemini CLI لتنظيم الملفات حسب أنواعها في مجلدات مختلفة حسب الحاجة. انتقِل إلى مجلد على جهازك يحتوي على عدة ملفات بتنسيقات ‎ .txt و‎.png و‎.jpg و‎.pdf و‎.mp4 وغيرها. من المحتمل أن يكون هذا هو سطح المكتب أو مجلد "عمليات التنزيل".

في ما يلي نموذج مجلد ويظهر محتوى المجلد أدناه (قد تتضمّن مجلدك ملفات أخرى):

e9d70be5bbea46d5.png

انتقِل إلى هذا المجلد وابدأ Gemini CLI. ستطلب من Gemini CLI إنشاء بعض المجلدات أولاً: "الصور" و"المستندات" و"الفيديوهات"، ثم ستطلب من Gemini CLI تنظيم الملفات في المجلدات.

سيطلب منك Gemini CLI غالبًا الحصول على إذن قبل تنفيذ الأوامر، خاصةً تلك التي تعدّل نظام الملفات (مثل كتابة الملفات أو نقلها أو حذفها). يُرجى مراجعة هذه الطلبات بعناية دائمًا قبل منح الإذن. هذه هي شبكة الأمان.

Create the following folders "Images","Documents","Videos"

بعد ذلك، وجِّه الطلب التالي:

Go through all the files in this folder and then organize them by moving all the files ending with .jpg, .jpeg, .gif into the "Images" folder. Move all ".txt" files into the "Documents" folder. Move all the ".mp4" files in the "Videos" folder.

في ما يلي مثال على الشكل النهائي للمجلد. من المفترض أن تظهر لك مجلدات فرعية جديدة تم إنشاؤها ونقل الملفات إلى المجلدات الفرعية المعنية حسب نوعها.

7e27d4c88416f62.png

في ما يلي بعض سيناريوهات التنظيم الأخرى (يتم تقديم الطلبات بجانب كل سيناريو):

  1. التلخيص: لكل مستند في مجلد "المستندات"، أنشئ ملف txt في المجلد نفسه باسم "summary_ORIGINAL_FILENAME.txt" يتضمّن ملخّصًا من 3 جمل للنقاط الرئيسية في المستند.
  2. التصنيف حسب النوع: يتم فحص جميع ملفات PDF وDOCX في هذا الدليل. انقل جميع الملفات التي تتضمّن كلمة "فاتورة" في اسمها أو محتواها إلى المجلد "الشؤون المالية/الفواتير". نقل الملفات التي تتضمّن كلمة "إيصال" إلى مجلد "المستندات المالية/الإيصالات" يتم نقل أي ملفات docx .أخرى إلى مجلد "التقارير".
  3. استخراج المعلومات الأساسية (و"وضع العلامات"): بالنسبة إلى كل ملف PDF في مجلد "الشؤون المالية/الفواتير"، اقرأ محتواه. إذا عثرت على تاريخ، أعِد تسمية الملف لتضمين هذا التاريخ بالتنسيق YYYY-MM-DD، مثلاً ‘invoice_2025-07-26_original_name.pdf'.

تنظيم الصور

لنتعرّف على كيفية تنظيم محتوى الصور على جهازك.

لتجربة هذه الميزة:

  • يجب أن يكون لديك دليل أو مجلد يحتوي على ملفات صور مختلفة (‎.jpg و‎.png وما إلى ذلك). تضمين بعض الصور التي تحتوي على بيانات EXIF (تحتوي معظم الصور من الكاميرات/الهواتف على هذه البيانات)
  • انتقِل إلى هذا الدليل.
  • شغِّل Gemini CLI.

جرِّب أيًا من السيناريوهات التالية (تظهر الطلبات بجانب كل سيناريو):

  • إعادة التسمية حسب التاريخ (بيانات EXIF): إعادة تسمية جميع ملفات ‎ .jpg و‎ .png في هذا الدليل لتضمين تاريخ إنشائها من بيانات EXIF بالتنسيق ‎YYYYMMDD_HHMMSS_original_name.jpg. إذا لم يتم العثور على تاريخ EXIF، استخدِم تاريخ آخر تعديل للملف.
  • إنشاء أوصاف للصور: لكل صورة في هذا المجلد، صف محتوى الصورة واحفظ الوصف في ملف نصي باسم description_ORIGINAL_FILENAME.txt في الدليل نفسه.
  • تحديد الصور المكرّرة (مفهومية، تتطلّب منطقًا أكثر تقدّمًا): ابحث عن أي صور مكرّرة في هذا المجلد استنادًا إلى محتواها المرئي، وأدرِج أسماء ملفاتها. لا تحذفها بعد.

تلخيص المقالات (الملفات المحلية أو الويب)

في كل سيناريو من السيناريوهات أدناه، يمكنك تغيير عنوان URL وموضوع الاهتمام وأسماء الملفات المحلية حسب الاقتضاء. أسماء الملفات المقدَّمة هي أسماء ملفات نموذجية، ويمكنك استبدالها بأسماء ملفات لديك على نظامك.

جرِّب أيًا من السيناريوهات التالية (تظهر الطلبات بجانب كل سيناريو):

  • تلخيص مقالة على الويب (عنوان URL واحد): انتقِل إلى https://medium.com/google-cloud/getting-started-with-gemini-cli-8cc4674a1371 ولخِّص أهم 3 نقاط رئيسية من هذه المقالة الإخبارية.
  • تلخيص عدّة مقالات على الويب (مثل تلك التي تظهر في نتائج البحث): ابحث عن أحدث المقالات الإخبارية حول "واجهة سطر الأوامر في Gemini" باستخدام "بحث Google". بالنسبة إلى أهم 5 مقالات ذات صلة، يجب تلخيص كل مقالة في جملتين أو ثلاث جمل وإدراج عناوين URL الخاصة بها.
  • تلخيص ملف نصي محلي: أريد تلخيص النقاط الرئيسية في المقالة في الملف my_research_paper.txt. ركِّز على المنهجية والاستنتاجات.
  • تلخيص ملف PDF محلي: "اقرأ financial_report_Q2_2025.pdf". قدِّم ملخّصًا للأداء المالي والتحديات الرئيسية المذكورة.

استخراج معلومات محدّدة (الملفات المحلية أو الويب)

في كل سيناريو من السيناريوهات أدناه، يمكنك تغيير عنوان URL وموضوع الاهتمام وأسماء الملفات المحلية حسب الاقتضاء. أسماء الملفات المقدَّمة هي أسماء ملفات نموذجية، ويمكنك استبدالها بأسماء ملفات لديك على نظامك.

جرِّب أيًا من السيناريوهات التالية (تظهر الطلبات بجانب كل سيناريو):

  • استخراج الكيانات من مقالة محلية: من الملف biography.txt، أدرِج جميع الأشخاص المذكورين والتواريخ المهمة المرتبطة بهم.
  • استخراج البيانات من جدول في ملف PDF: في الملف quarterly_sales.pdf، استخرِج البيانات من الجدول في الصفحة 3 الذي يعرض "مبيعات المنتجات حسب المنطقة" وقدِّمها بتنسيق جدول Markdown.
  • استخراج عناوين الأخبار ومصادرها من موقع إلكتروني للأخبار: انتقِل إلى "https://news.google.com/" (أو موقع إلكتروني مشابه للأخبار). استخراج العناوين الرئيسية من الصفحة الأولى ومصادرها الإخبارية قدِّمها كقائمة نقطية.
  • العثور على مواصفات المنتج من صفحة للتجارة الإلكترونية: انتقِل إلى "https://www.amazon.in/Google-Cloud-Certified-Associate-Engineer/dp/1119871441" (مثال على كتاب). استخرِج عنوان الكتاب والمؤلف والتفاصيل الأخرى. يجب عرض هذه المعلومات بتنسيق JSON منظَّم.
  • استخراج المدة من فيديو بتنسيق معيّن (مثلاً "2h37m42s")

الإجابة عن الأسئلة استنادًا إلى المحتوى (سلوك مشابه لنموذج RAG)

في كل سيناريو من السيناريوهات أدناه، يمكنك تغيير عنوان URL وموضوع الاهتمام وأسماء الملفات المحلية حسب الاقتضاء. أسماء الملفات المقدَّمة هي أسماء ملفات نموذجية، ويمكنك استبدالها بأسماء ملفات لديك على نظامك.

جرِّب أيًا من السيناريوهات التالية (تظهر الطلبات بجانب كل سيناريو):

  • سؤال وجواب حول مستند محلي: أرفقتُ الملف user_manual.pdf. ما هي خطوات تحديد مشاكل اتصال الشبكة وحلّها؟
  • سؤال وجواب على صفحة ويب: باستخدام المحتوى من"https://www.who.int/news-room/fact-sheets/detail/climate-change-and-health"، ما هي المخاطر الصحية الأساسية المرتبطة بتغيّر المناخ وفقًا لمنظمة الصحة العالمية؟
  • مقارنة المعلومات من مصادر متعددة: لديّ مقالتان إخباريتان: article1.txt وarticle2.txt، وكلتاهما تناقشان التغييرات الأخيرة في السياسة الاقتصادية. قارِن بين وجهات نظرهم حول التأثير المحتمَل على الأنشطة التجارية الصغيرة.

إنشاء المحتوى استنادًا إلى المعلومات المستخرَجة

في كل سيناريو من السيناريوهات أدناه، يمكنك تغيير عنوان URL وموضوع الاهتمام وأسماء الملفات المحلية حسب الاقتضاء.

جرِّب أيًا من السيناريوهات التالية (تظهر الطلبات بجانب كل سيناريو):

  • إنشاء موجز إخباري من مقالة: Read @tech_innovation_article.txt اكتب موجزًا إخباريًا قصيرًا وجذّابًا (حوالي 150 كلمة) مناسبًا لنشرة إخبارية خاصة بالشركة، مع تسليط الضوء على التكنولوجيا الجديدة وإمكاناتها.
  • إعداد مسودة رسالة إلكترونية تلخّص محضر اجتماع: إليك ملف محضر اجتماع: ‎@meeting_transcript.txt. أنشئ مسودة رسالة إلكترونية للفريق تلخّص القرارات الرئيسية المتّخذة وبنود العمل المحدّدة، بما في ذلك الجهة المسؤولة عن كل منها.

تعددية الوسائط في Gemini CLI

يتوافق Gemini CLI مع عدة نماذج من خلال Gemini، ويمكنك أن تطلب منه معالجة ملفات بتنسيقات محتوى مختلفة وفقًا لمتطلباتك.

ستعالج مجموعة من صور الفواتير باستخدام واجهة سطر الأوامر في Gemini وتستخرج منها المعلومات الرئيسية. يُرجى اتّباع الخطوات التالية:

  • أنشئ مجلدًا على جهازك ونزِّل بعض الفواتير من مستودع Github التالي.
  • تشغيل Gemini CLI من هذا المجلد

قدِّم الطلب التالي لاستخراج المعلومات من الفواتير في شكل جدول.

The current folder contains a list of invoice files in Image format. Go through all the files in this folder and extract the following invoice information in the form of a table: Invoice No, Invoice Date, Invoice Sent By, Due Date, Due Amount.

من المفترض أن تحصل على نتيجة بالشكل التالي:

fb4183498d02229.png

إليك سيناريو آخر يمكنك فيه طلب أعمدة مشتقة إضافية. لنفترض أنّك تريد عرض رمز تعبيري على شكل علامة X حمراء لجميع تواريخ استحقاق الفواتير السابقة. يمكنك تقديم طلب على النحو التالي:

list all files with .png extension in this folder. Extract the invoice information from it by reading them locally and display it in a table format containing the following column headers: : Invoice No, Invoice Date, Invoice Sent By, Due Date, Due Amount. Add a column at the end of the table that shows a red cross emoji in case the due date is in the past.

ينتج عن ذلك الإخراج التالي:

f65f6ca8308c7053.png

يمكنك تطبيق ذلك على أي من ملفاتك بتنسيقات أخرى غير النص.

استخدام Gemini CLI للعمل مع قواعد البيانات

يمكنك استخدام Gemini CLI للتعامل مع قواعد بيانات مختلفة بكفاءة أكبر. يمكنك استخدامها في سيناريوهات متعدّدة، مثل الاستعلام باللغة الطبيعية وتصدير البيانات وتصميم مخططات قواعد البيانات وإنشاء بيانات اختبار واقعية وغير ذلك.

يجب استخدام SQLite3 لإجراء هذه المهمة. عليك تثبيت SQLite3 واستخدام قاعدة بيانات Chinook النموذجية.

في ما يلي تعليمات موجزة لإعداد SQLite3:

  1. ‫macOS: يتم تثبيت SQLite3 مسبقًا. أكِّد هويتك باستخدام sqlite3 --version. إذا لزم الأمر، ثبِّت الأداة باستخدام Homebrew: brew install sqlite3.
  2. ‫Windows: نزِّل الملفات الثنائية المجمَّعة مسبقًا من موقع SQLite الإلكتروني. استخرِج الملفات إلى دليل (مثل C:\sqlite)، وأضِف هذا الدليل إلى متغيّر بيئة PATH في نظامك.
  3. ‫Linux: Debian/Ubuntu: sudo apt update && sudo apt install sqlite3

نزِّل نموذج قاعدة بيانات Chinook (إليك رابطًا مباشرًا لتنزيلها).

لتشغيل هذه الطلبات، يُقترح إنشاء مجلد (database-tasks) في دليل gemini-cli-projects. انسخ ملف قاعدة بيانات Chinook إلى هذا المجلد. تأكَّد من إعداد أداة sqlite3 على نظامك وتوفّرها في المسار، حتى يتمكّن Gemini CLI من استخدامها. شغِّل Gemini CLI.

في ما يلي مخطط قاعدة البيانات:

fb8e96c21ad57590.png

لنفترض أنّك في مجلد باسم database-tasks وأنّ ملف قاعدة بيانات Chinook يحمل الاسم chinook.db.

في ما يلي بعض الطلبات التي يمكن أن تساعدك في العمل مع قواعد البيانات. سنشرح بإيجاز الإذن الأول لتوضيح الإذن الذي سيُطلب.

ابدأ بطلب إدراج الجداول المتوفّرة في قاعدة البيانات، وذلك من خلال إدخال الطلب التالي:

What tables are present in the file: chinook.db 

يستخدم هذا الأمر الأداة لقراءة الملف، ثم يريد استخدام الأداة المساعدة sqlite3 المتوفّرة على نظامك لتنفيذ الإجراء اللازم:

b2a17ef60706c3f5.png

امنح الإذن بتشغيله مرة واحدة للحصول على الناتج المتوقّع:

8d40754b830f4697.png

جرِّب الطلبات التالية أو أي طلب آخر من اختيارك:

  • كم عدد الموظفين؟
  • ما هو مخطط جدول الفواتير؟
  • ما هي أعلى 3 فواتير حسب الإجمالي وما هم العملاء الذين أصدروا هذه الفواتير؟

ستلاحظ أنّ Gemini CLI يهتم بأمرين: إنشاء عبارة SQL الصحيحة لتلبية متطلباتك وتقديم الأمر sqlite3 الصحيح.

استخدام Gemini CLI لإنشاء البيانات

يمكنك أن تطلب من Gemini CLI إنشاء البيانات بتنسيقات مختلفة. ويمكن أن يتراوح ذلك بين أجزاء المحتوى وبيانات JSON التي قد تحتاج إلى محاكاتها. سنركّز هنا على السيناريوهات التي تنطبق على المطوّرين/المختبِرين.

في ما يلي بعض الطلبات التي يمكنك تجربتها:

إنشاء بيانات JSON لعينات من مراجعات العملاء

Generate a JSON array of 3 synthetic customer reviews for a new smartphone. Each review should have 'reviewId' (string, UUID-like), 'productId' (string, e.g., 'SMARTPHONE_X'), 'rating' (integer, 1-5), 'reviewText' (string, 20-50 words), and 'reviewDate' (string, YYYY-MM-DD format).

إنشاء ردود وهمية من واجهة برمجة التطبيقات (JSON)

Generate a JSON array representing 7 daily sales records for a mock API endpoint. Each record should include 'date' (YYYY-MM-DD, chronologically increasing), 'revenue' (float, between 5000.00 and 20000.00), 'unitsSold' (integer, between 100 and 500), and 'region' (string, either 'North', 'South', 'East', 'West').

إنشاء عبارات إدراج في قاعدة بيانات نموذجية (SQL)

Generate 5 SQL INSERT statements for a table named 'users' with columns: 'id' (INTEGER, primary key), 'username' (VARCHAR(50), unique), 'email' (VARCHAR(100)), 'password_hash' (VARCHAR(255)), 'created_at' (DATETIME, current timestamp). Ensure the password_hash is a placeholder string like 'hashed_password_X'.

إنشاء بيانات CSV لتحميل البيانات/تحليلها

Generate 10 lines of CSV data, including a header row, for customer transactions. Columns should be: 'TransactionID' (unique string), 'CustomerID' (integer), 'ItemPurchased' (string, e.g., 'Laptop', 'Monitor', 'Keyboard'), 'Quantity' (integer, 1-3), 'UnitPrice' (float, between 100.00 and 1500.00), 'TransactionDate' (YYYY-MM-DD).

إنشاء ملف إعداد (YAML)

Generate a sample YAML configuration for a 'user_service'. Include sections for 'database' with 'host', 'port', 'username', 'password', 'database_name'. Also include a 'api_keys' section with 'payment_gateway' and 'email_service' placeholders. Use realistic default values.

إنشاء بيانات اختبار للحالات الحدّية/التحقّق من الصحة

Generate a JSON array of 8 email addresses for testing purposes. Include a mix of: 2 valid standard emails, 2 with missing '@', 2 with invalid domains (e.g., '.com1'), and 2 with special characters in the local part that are usually invalid (e.g., spaces or multiple dots).

13. تهانينا

تهانينا، لقد استكشفتَ بنجاح أداة Gemini CLI وإمكاناتها وطبّقتها على بعض حالات الاستخدام.

المستندات المرجعية