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

1. مقدمة

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

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

من خلال هذا الدرس العملي، ستتّبع نهجًا خطوة بخطوة في الأنشطة التالية:

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

المتطلبات

  • متصفّح الويب Chrome
  • حساب Gmail
  • جهاز محلي مثبّت عليه Node 20+

تم تصميم هذا الدرس العملي المبرمَج للمستخدمين والمطوّرين من جميع المستويات (بما في ذلك المبتدئين).

2. تثبيت

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

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

mkdir gemini-cli-projects

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

cd gemini-cli-projects

لتشغيل Gemini CLI، يمكنك استخدام أيّ من الطرق التالية:

  1. شغِّل الأداة باستخدام الأمر التالي:
npx https://github.com/google-gemini/gemini-cli
  1. يمكنك أولاً تثبيت Gemini CLI على مستوى العالم على نظامك. تأكَّد من أنّ لديك حقوق المشرف لإجراء ذلك.
npm install -g @google/gemini-cli

ثم شغِّله باستخدام الأمر التالي:

gemini

بافتراض أنّك شغّلت 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

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

d333742310905dcc.png

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

اكتب رسالتك الأولى في المربّع. سنقدّم له طلب بحث على النحو التالي:

4dc0961206c1b568.png

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

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

ملف التخصيص في Gemini CLI : settings.json

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

يتم تطبيق الإعدادات حسب الأولوية التالية:

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

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

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

{
  "theme": "Default",
  "selectedAuthType": "oauth-personal"
}

3- مَعلمات أوامر 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 CLI. يكون ذلك مفيدًا جدًا إذا كنت تخطّط لاستخدام Gemini CLI بطريقة آلية كجزء من النص البرمجي أو أي عملية أخرى تتم بشكل آلي. يمكنك استخدام المَعلمة ‎-p لتقديم الطلب إلى Gemini CLI كما هو موضّح أدناه:

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

يُرجى العلم أنّه لا يمكن مواصلة المحادثة بطرح أسئلة متابعة.

4. ‫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

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

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

9e239408835a3acd.png

يمكنني التحقّق مباشرةً باستخدام الأوامر العادية، مثل pwd وls كما هو موضّح أدناه:

2f5d53d3c77fc8e2.png

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

2249b5c80e3ae2c0.png

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

ملاحظة: يجب أن ينتهي بك الأمر إلى جعل Gemini CLI يستخدم أداة WebFetch.

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

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

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

يتيح Gemini CLI إعداد خوادم 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 (رقم): مهلة الطلب بالمللي ثانية (القيمة التلقائية: 600,000 مللي ثانية = 10 دقائق)
  • trust (boolean): عند ضبطها على true، يتم تجاوز جميع تأكيدات استدعاء الأدوات لهذا الخادم (القيمة التلقائية: false)
  • includeTools (string[]): قائمة بأسماء الأدوات التي سيتم تضمينها من خادم MCP هذا. عند تحديدها، لن تتوفّر من هذا الخادم سوى الأدوات المدرَجة هنا (سلوك القائمة البيضاء). في حال عدم تحديد أي أداة، يتم تفعيل جميع الأدوات من الخادم تلقائيًا.
  • excludeTools (string[]): قائمة بأسماء الأدوات التي يجب استبعادها من خادم MCP هذا. لن تكون الأدوات المُدرَجة هنا متاحة للنموذج، حتى إذا كان الخادم يعرضها. ملاحظة: تكون excludeTools لها الأولوية على includeTools، فإذا كانت أداة في كلتا القائمتين، سيتم استبعادها.

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

خادم 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 CLI بنجاح، من المفترض أن تتمكّن من عرض أدوات 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. خادم Google Workspace MCP (العمل باستخدام "مستندات Google" و"جداول بيانات Google" و"تقويم Google" وGmail)

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

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

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

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

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

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

انتقِل إلى هذا المجلد وابدأ 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.

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

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

الإجابة عن الأسئلة استنادًا إلى المحتوى (سلوك مشابه لنموذج 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 image files. 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

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

استخدام 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 @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).

البرمجة على طريقة "Vibe" باستخدام Gemini CLI

لنستخدم Gemini CLI لإنشاء تطبيق باستخدام الترميز السريع. سنطلب من Gemini CLI إنشاء تطبيق، ثم سنحمّل الإصدار الأولي إلى مستودع GitHub.

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

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

  • Git
  • ‫Gemini CLI مع خادم Github MCP (لقد أجرينا ذلك سابقًا)
  • الإلمام بأساسيات 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

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

أدخلتُ الرسالة التالية:

d74e235b0db77c51.png

اتّبعتُ التعليمات، وبدأتُ تشغيل الخادم، وأرى أنّ الموقع الإلكتروني التالي يعمل بشكل جيد:

71a0a6123a90e068.png

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

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

Create a .gitignore file for this project.

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

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

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 (لقد أجرينا ذلك سابقًا)
  • الإلمام بأساسيات 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 سؤالاً حول كيفية تحسين تجربة المستخدم لهذا التطبيق، واستنادًا إلى تقييمه، يمكنه إنشاء هذه الاقتراحات كمشاكل في مستودع Github نفسه. سيتم استخدام الأداة "create_issue" من خادم Github MCP.

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

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

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

495b0f7afab91ec6.png

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

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

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

2e41f9f6eac3d1b.png

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

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

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

cd3c89cf3d47723b.png

7. (اختياري) تخصيص Gemini CLI باستخدام GEMINI.md

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

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

أدخِل GEMINI.md هذا هو ملف السياق (يتم ضبطه تلقائيًا على GEMINI.md ولكن يمكن ضبطه من خلال الإعداد contextFileName) وهو ضروري لضبط السياق التعليمي (يُشار إليه أيضًا باسم "الذاكرة") المقدَّم إلى نموذج 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" التي تتناول هذا المجال، وكيفية إنشاء ملف تلقائيًا لمشروعك، وتخصيص حتى "طلب النظام" وغير ذلك.

8. تهانينا

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

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