عملی با Gemini CLI

1. مقدمه

در این نرم‌افزار، با Gemini CLI آشنا می‌شوید، یک عامل هوش مصنوعی منبع باز که قدرت Gemini را مستقیماً به ترمینال شما می‌آورد.

پروژه Gemini CLI منبع باز است و شما می توانید نقشه راه عمومی را در اینجا مشاهده کنید.

چیزی که یاد خواهید گرفت

  1. نصب و پیکربندی Gemini CLI
  2. کاوش ابزارها، دستورات داخلی و پیکربندی سرورهای MCP در Gemini CLI
  3. سفارشی کردن Gemini CLI از طریق فایل GEMINI.md
  4. کاوش چند مورد استفاده با Gemini CLI

آنچه شما نیاز دارید

این کد لبه را می‌توان به‌طور کامل در Google Cloud Shell اجرا کرد که با Gemini CLI از قبل نصب شده است.

از طرف دیگر، اگر ترجیح می دهید روی دستگاه خود کار کنید، بخشی برای نصب Gemini CLI به صورت محلی وجود دارد.

شما به موارد زیر نیاز خواهید داشت:

  • مرورگر وب کروم
  • یک اکانت جیمیل

این کد لبه برای کاربران و توسعه دهندگان در تمام سطوح (از جمله مبتدیان) طراحی شده است. موارد استفاده در Codelab به وظایف توسعه دهنده و غیر توسعه دهنده طبقه بندی شده اند. موارد استفاده توسعه‌دهنده نشان می‌دهد که چگونه می‌توان کد با Gemini CLI و کار با یک مخزن Github برای انجام وظایف توسعه رایج مانند توضیح/فهم کد، تولید اسناد، رفع مشکلات و موارد دیگر انجام داد. توصیه می شود که این موارد استفاده را در کد لبه کامل کنید. یک بخش اختیاری در پایان وجود دارد که چندین کار روزانه را پوشش می‌دهد که بر روی برنامه‌نویس متمرکز نیستند.

2. قبل از شروع

یک پروژه ایجاد کنید

  1. در Google Cloud Console ، در صفحه انتخاب پروژه، یک پروژه Google Cloud را انتخاب یا ایجاد کنید.
  2. مطمئن شوید که صورتحساب برای پروژه Cloud شما فعال است. با نحوه بررسی فعال بودن صورت‌حساب در پروژه آشنا شوید.
  1. شما از Cloud Shell استفاده خواهید کرد، یک محیط خط فرمان در حال اجرا در Google Cloud که با bq از قبل بارگذاری شده است. روی Activate Cloud Shell در بالای کنسول Google Cloud کلیک کنید.

تصویر دکمه Cloud Shell را فعال کنید

  1. پس از اتصال به Cloud Shell، با استفاده از دستور زیر بررسی می‌کنید که قبلاً احراز هویت شده‌اید و پروژه به ID پروژه شما تنظیم شده است:
gcloud auth list
  1. دستور زیر را در Cloud Shell اجرا کنید تا تأیید کنید که دستور gcloud از پروژه شما اطلاع دارد.
gcloud config list project
  1. اگر پروژه شما تنظیم نشده است، از دستور زیر برای تنظیم آن استفاده کنید:
gcloud config set project <YOUR_PROJECT_ID>

3. نصب و راه اندازی

قبل از انجام تنظیمات و اجرای Gemini CLI، اجازه دهید یک پوشه ایجاد کنیم که از آن به عنوان پوشه اصلی ما برای تمام پروژه هایی که ممکن است در داخل آن ایجاد کنید استفاده کنید. این نقطه شروعی برای Gemini CLI برای کار با آن است، اگرچه به برخی از پوشه‌های دیگر در سیستم شما نیز اشاره می‌کند و در صورت لزوم بعداً به آنها مراجعه خواهید کرد.

ادامه دهید و یک پوشه نمونه ( gemini-cli-projects ) ایجاد کنید و از طریق دستورات زیر به آن بروید. اگر ترجیح می دهید از نام پوشه دیگری استفاده کنید، لطفاً این کار را انجام دهید.

mkdir gemini-cli-projects

بیایید به آن پوشه حرکت کنیم:

cd gemini-cli-projects

می توانید مستقیماً از طریق دستور gemini، Gemini CLI را راه اندازی کنید.

لطفاً مستقیماً به بخش بعدی (پیکربندی Gemini CLI از طریق settings.json) بروید.

اگر می خواهید Gemini CLI را به صورت محلی نصب کنید، دستورالعمل های داده شده در زیر را دنبال کنید.

اولین قدم این است که Node 20+ را روی دستگاه خود نصب کنید . پس از تکمیل، می توانید 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

با اجرای زیر می توانید تأیید کنید که CLI نصب شده است:

gemini --version

با فرض اینکه Gemini CLI را از طریق هر یک از روش‌های بالا راه‌اندازی کرده‌اید، باید صفحه زیر را مشاهده کنید که از شما در مورد انتخاب موضوع سوال می‌پرسد. پیش بروید و یکی را که دوست دارید انتخاب کنید:

9b02bd0bf1c670d.png

هنگامی که آن را انتخاب کردید، روش احراز هویت را درخواست می کند. توصیه می‌شود در این آزمایشگاه از حساب Google شخصی خود استفاده کنید نه از حساب‌های مرتبط با Google یا Google Workspace. این مجوز رایگان به شما امکان می دهد به Gemini 2.5 Pro و پنجره زمینه 1 میلیون توکن آن دسترسی داشته باشید. سطح رایگان امکان 60 درخواست مدل در دقیقه و 1000 درخواست در روز را بدون پرداخت هزینه فراهم می کند.

اگر با سهمیه رایگان فعلی که به حساب‌های Google داده می‌شود محدودیت‌ها را رعایت کنید، می‌توانید از Gemini API Key یا حتی Google Cloud Vertex AI استفاده کنید، جایی که باید شناسه پروژه و نام مکان آن پروژه را داشته باشید. اگر قصد دارید از روش‌های دیگر احراز هویت استفاده کنید، به بخش احراز هویت اسناد مراجعه کنید.

afce8d90e20adb6.png

پیش بروید و روی Enter کلیک کنید. با این کار یک صفحه احراز هویت گوگل در مرورگر باز می شود. احراز هویت را با حساب Google خود ادامه دهید، شرایط را بپذیرید و هنگامی که با موفقیت احراز هویت شدید، متوجه خواهید شد که Gemini CLI آماده است و منتظر فرمان شماست. نمونه اسکرین شات در زیر آورده شده است:

ffd8ddfede565612.png

4. پیکربندی Gemini CLI از طریق settings.json

اگر Cloud Shell را برای اجرای Gemini انتخاب کنید، یک تم پیش‌فرض برای Gemini CLI و روش احراز هویت از قبل برای شما انتخاب و پیکربندی شده است.

اگر Gemini CLI را روی دستگاه خود نصب کرده اید و برای اولین بار آن را راه اندازی کرده اید، یک موضوع و سپس یک روش احراز هویت را انتخاب کرده اید.

اکنون، در اجراهای بعدی Gemini CLI، دیگر از شما خواسته نمی‌شود که موضوع و روش احراز هویت را انتخاب کنید. این به این معنی است که در جایی ثابت می شود و فایلی که استفاده می کند settings.json نام دارد و راهی برای سفارشی سازی Gemini CLI است.

تنظیمات با اولویت زیر اعمال می شوند (Cloud Shell فقط تنظیمات کاربر را در دسترس قرار می دهد):

  1. سیستم: /etc/gemini-cli/settings.json (برای همه کاربران اعمال می شود، تنظیمات کاربر و فضای کاری را لغو می کند).
  2. فضای کاری: .gemini/settings.json (تنظیمات کاربر را لغو می کند).
  3. کاربر: ~/.gemini/settings.json .

کاربر ویندوز : %USERPROFILE%.gemini\settings.json (که معمولاً به C:\Users&lt;YourUsername>.gemini\settings.json گسترش می‌یابد)

سیستم : %ProgramData%\gemini-cli\settings.json (که معمولاً به C:\ProgramData\gemini-cli\settings.json گسترش می‌یابد)

کاربر مک : ~/.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. اولین تعامل ما با جمینی 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 CLI دست برداریم. شما می توانید این کار را از طریق دستور /quit یا Ctrl-C دو بار در جلسه ترمینال تعاملی Gemini CLI انجام دهید.

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 CLI، به آن پاسخ می دهد. اگر قصد دارید از Gemini CLI به صورت خودکار به عنوان بخشی از اسکریپت یا هر فرآیند اتوماسیون دیگری استفاده کنید، این بسیار مفید است. شما از پارامتر -p برای ارائه اعلان به Gemini CLI مانند شکل زیر استفاده می کنید:

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

به خاطر داشته باشید که مجالی برای ادامه گفتگو با سوالات بعدی وجود ندارد. این حالت همچنین به شما اجازه نمی دهد که ابزارها (از جمله WriteFile) یا دستورات پوسته را اجرا کنید.

7. Gemini CLI - ابزارهای داخلی

Gemini CLI با مجموعه‌ای از ابزارهای داخلی ارائه می‌شود و در مستندات ابزار آمده است: "مدل Gemini از این ابزارها برای تعامل با محیط محلی شما، دسترسی به اطلاعات و انجام اقدامات استفاده می‌کند. این ابزارها قابلیت‌های CLI را افزایش می‌دهند و آن را قادر می‌سازند تا فراتر از تولید متن رفته و به طیف وسیعی از وظایف کمک کند."

برای دریافت لیستی از ابزارهای داخلی فعلی، دستور /tools را مطابق شکل زیر فراخوانی کنید:

39939257e3f3818e.png

یکی از چیزهایی که باید فوراً شما را تحت تأثیر قرار دهد این است که از خود بپرسید که آیا Gemini CLI می تواند به سادگی این ابزارها را زمانی که بخواهد فراخوانی کند؟ پاسخ پیش فرض منفی است، وقتی صحبت از عملیات حساسی می شود که ممکن است شامل نوشتن در سیستم محلی، خواندن از یک سیستم خارجی، رفتن به شبکه خارجی و غیره باشد.

در حالی که هنگام راه‌اندازی 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 از داخل Gemini CLI است. می توانید با فشار دادن به حالت پوسته بروید ! در جعبه پیام این به یک حالت پوسته تغییر می کند. با فشار دادن می توانید برگردید ! دوباره یا با زدن کلید ESC .

هنگامی که در حالت پوسته هستید، ! در ابتدای اعلان مطابق شکل زیر:

9e239408835a3acd.png

می توانید مستقیماً با استفاده از دستورات استاندارد مانند pwd و ls مطابق شکل زیر بررسی کنید. لطفاً توجه داشته باشید که دستورات یک سیستم عامل از نوع لینوکس را فرض می کنند. اگر در سیستم عامل دیگری (ویندوز) هستید، لطفاً از دستورات معادل مانند ( cd ، dir و type ) استفاده کنید. توجه داشته باشید که خروجی این فراخوانی ها در پنجره زمینه مدل گنجانده شده است.

2f5d53d3c77fc8e2.png

امروز می توانید محتویات فایل را از طریق دستور cat چاپ کنید.

2249b5c80e3ae2c0.png

تمرین : در اینجا یک تمرین کوتاه برای امتحان وجود دارد. یک فید RSS به انتخاب خود انتخاب کنید. به Gemini CLI درخواست دهید تا محتویات فید RSS را دریافت کند و نتایج را برای شما به روشی خاص قالب‌بندی کند. این یک راه خوب برای خودکار کردن چیزی در ابتدای روز است. حتی ممکن است از Gemini CLI بخواهید بفهمد که آیا فید RSS برای یک منطقه خاص برای مثال Google Cloud Platform Release Notes وجود دارد یا خیر.

یک نمونه درخواست در زیر نشان داده شده است:

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. پیکربندی سرورهای پروتکل زمینه مدل (MCP).

سرور MCP برنامه‌ای است که ابزارها و منابع را از طریق پروتکل بافت مدل در اختیار جمینی CLI قرار می‌دهد و به آن اجازه می‌دهد با سیستم‌های خارجی و منابع داده تعامل داشته باشد. سرورهای MCP به عنوان پلی بین مدل Gemini و محیط محلی شما یا سایر خدمات مانند API عمل می کنند.

یک سرور MCP، Gemini CLI را قادر می‌سازد تا ابزارهایی را کشف و اجرا کند و از این طریق قابلیت‌های Gemini CLI را برای انجام اقداماتی فراتر از ویژگی‌های داخلی آن، مانند تعامل با پایگاه‌های داده، APIها، اسکریپت‌های سفارشی یا گردش‌های کاری تخصصی گسترش دهد.

Gemini CLI از پیکربندی سرورهای MCP برای کشف و استفاده از ابزارهای سفارشی پشتیبانی می کند. اگر Gemini CLI را راه‌اندازی کرده‌اید، می‌توانید سرورهای MCP را که از طریق دستور /mcp پیکربندی شده‌اند، مطابق شکل زیر بررسی کنید:

255a14eb31529370.png

اگر هیچ سرور MCP را پیکربندی نکرده‌اید، مستندات سرور MCP Gemini CLI را راه‌اندازی می‌کند.

می توانید سرورهای MCP را در سطح جهانی در فایل ~/.gemini/settings.json یا در دایرکتوری اصلی پروژه خود پیکربندی کنید. فایل .gemini/settings.json را ایجاد یا باز کنید. در داخل فایل، باید بلوک پیکربندی mcpServers را مانند شکل زیر اضافه کنید:

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

هر پیکربندی سرور از ویژگی های زیر پشتیبانی می کند ( مستندات مرجع ):

مورد نیاز (یکی از موارد زیر)

  • فرمان (رشته) : مسیری به فایل اجرایی برای حمل و نقل Stdio
  • url (رشته) : نشانی وب نقطه پایانی SSE (به عنوان مثال، "http://localhost:8080/sse")
  • httpUrl (رشته) : URL نقطه پایانی جریان HTTP

اختیاری

  • args (string[]): آرگومان های خط فرمان برای حمل و نقل Stdio
  • هدر (شیء) : هدرهای سفارشی HTTP هنگام استفاده از url یا httpUrl
  • env (object) : متغیرهای محیطی برای فرآیند سرور. مقادیر می توانند با استفاده از نحو $VAR_NAME یا ${VAR_NAME} به متغیرهای محیطی ارجاع دهند
  • cwd (رشته) : دایرکتوری کاری برای حمل و نقل Stdio
  • تایم اوت (تعداد) : درخواست مهلت زمانی در میلی ثانیه (پیش‌فرض: 600000 میلی‌ثانیه = 10 دقیقه)
  • Trust (Boolean) : وقتی درست است، تمام تأییدیه‌های فراخوانی ابزار برای این سرور را دور می‌زند (پیش‌فرض: نادرست)
  • includeTools (string[]) : فهرستی از نام ابزارهایی که باید از این سرور 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 از دستگاه خود.

اگر هنوز هم می‌خواهید سرور Github MCP را امتحان کنید، لطفاً بخش بعدی را ببینید یا می‌توانید از آن صرفنظر کنید.

سرور Github MCP

سرور MCP رسمی Github اسناد کافی را در مورد ابزارهایی که در معرض نمایش قرار می دهد همراه با نحوه پیکربندی آن فراهم می کند. از آنجایی که Gemini CLI از سرورهای MCP راه دور نیز پشتیبانی می کند، می توانید انتخاب خود را از نظر اجرای محلی یا از راه دور انتخاب کنید.

این آموزش گزینه Remote MCP Server را در Github نشان می دهد. برای این کار، ابتدا باید یک رمز دسترسی شخصی (PAT) از Github داشته باشید.

هنگامی که آن را دارید، باید شی MCP Server را در فایل settings.json اضافه کنید. فایل کامل settings.json در سیستم من در زیر نشان داده شده است. ممکن است تنظیمات اضافی داشته باشید، اما شی mcpServers باید به شکل زیر باشد:

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

پس از به روز رسانی settings.json با پیکربندی Github MCP Server، می توانید دوباره Gemini CLI را راه اندازی کنید یا یک دستور /mcp refresh را انجام دهید. اسکرین شات زیر سرور Github MCP را که بر روی دستگاه من پیکربندی شده است و ابزارهای مختلفی که اکنون در دسترس Gemini CLI برای کار با MCP هستند، برجسته می کند.

e34f348129d448e9.png

بیایید با یک اعلان شروع کنیم که یکی از ابزارهای سرور Github MCP را فراخوانی می کند. دستور زیر را بدهید:

da643d182ac3fca4.png

توجه داشته باشید که ابزار صحیح را از سرور Github MCP انتخاب می‌کند، اما مانند سایر ابزارهای داخلی، این نیز مستلزم ارائه مجوز صریح برای فراخوانی ابزار است. برو جلو و ببین چه خروجی میگیری.

اکنون باید با یکی از پروژه های Github خود کار کنید. سوالات خود را به زبان طبیعی مانند:

  • <repo-name> را برای من توصیف کنید؟
  • <repo-name> را در دستگاه محلی من شبیه سازی کنید.
  • @<file-name> یا @<directory-name>/ را توصیف کنید
  • اجزای مختلف این مخزن چیست؟
  • تغییرات لازم را داده ام. آیا می توانید تغییرات را در Github اعمال کنید و از ابزار Github MCP Server برای انجام این کار استفاده کنید.

تمرینی برای کار با سرور Github MCP به طور مفصل بعداً در آزمایشگاه خواهید یافت.

Context7 MCP سرور

Context7 اسناد به روزی را برای LLMها و ویرایشگرهای کد هوش مصنوعی فراهم می کند. اگر به دنبال ارائه زمینه به LLM با آخرین اسناد برای چارچوب انتخابی خود هستید، سرور Context7 MCP برای پیکربندی مناسب است.

مطمئن شوید که کتابخانه خود را در صفحه اصلی Context7 فهرست کرده اید.

در اینجا سرور MCP است که باید به فایل settings.json اضافه کنید.

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

هنگامی که سرور MCP پیکربندی شد و Gemini CLI با موفقیت بارگیری شد، باید بتوانید ابزار Context7 را مطابق شکل زیر مشاهده کنید:

92f715d87989ff72.png

اکنون می توانید در درخواست خود مشخص باشید و از Gemini CLI بخواهید که Context7 برای آخرین مستندات استفاده کند، در حالی که برنامه یا قطعه کد خود را با استفاده از یک چارچوب خاص XYZ تولید می کنید.

در اینجا یک اعلان مثال است که در آن می‌خواهم با استفاده از Agent Development Kit (ADK) از Google یک Agent بنویسم. من در درخواست خود مشخص می کنم که مستندات مربوط به آن را از طریق سرور 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 (کار با Docs، Sheets، Calendar، Gmail)

دستورالعمل راه اندازی سرورهای MCP فوق در این پست وبلاگ منتشر شده است.

10. سفارشی کردن Gemini CLI با GEMINI.md

اگر تا کنون متوجه استفاده خود از Gemini CLI شده باشید، متوجه شده اید که یا ما فقط به Gemini CLI دستور داده ایم و انتظار داریم که Gemini CLI آن را اجرا کند، گاهی اوقات نتایجی که مطابق انتظار ما نیست. در برخی از اعلان‌ها، شما از نظر کاری که باید انجام دهید کمی مشخص بودید و آن دستورالعمل‌ها را در اعلان قرار داده‌اید.

این ممکن است مطابق با آنچه که Gemini CLI انجام دهد و نتایجی که به دست می آورید به خوبی کار کند. اما در بسیاری از موارد، شما می خواهید مطمئن شوید که از قوانین پیروی می کند. این قوانین می توانند زبان های برنامه نویسی خاص یا فریم ورک هایی برای استفاده باشند. همچنین می تواند ابزار خاصی باشد. این می تواند سبک های کدنویسی باشد. این فقط مربوط به تولید نیست، بلکه ممکن است بخواهید که Gemini CLI دقیقاً در حالتی باشد که "برنامه ریزی" نامیده می شود و دوست دارید که فقط یک طرح ارائه دهد و هیچ کد یا فایلی را در سیستم ایجاد نکند.

GEMINI.md را وارد کنید. این فایل زمینه (پیش‌فرض GEMINI.md است اما از طریق ویژگی contextFileName در فایل settings.json قابل پیکربندی است) که برای پیکربندی زمینه آموزشی (که به عنوان "حافظه" نیز نامیده می‌شود) که به مدل Gemini ارائه شده است بسیار مهم است. این فایل به شما امکان می‌دهد دستورالعمل‌های خاص پروژه، راهنماهای سبک کدنویسی، یا هر گونه اطلاعات پس‌زمینه مرتبط را به هوش مصنوعی بدهید و پاسخ‌های آن را متناسب‌تر و دقیق‌تر با نیازهای خود کنید.

فایل GEMINI.md در قالب علامت گذاری است و به صورت سلسله مراتبی بارگیری می شود که از چندین مکان ترکیب شده است.

ترتیب بارگیری به شرح زیر است:

  1. زمینه جهانی:** ~/.gemini/GEMINI.md ** (برای دستورالعمل هایی که برای همه پروژه های شما اعمال می شود).
  2. زمینه پروژه/اجداد: CLI از فهرست فعلی شما تا ریشه پروژه فایل‌های GEMINI.md را جستجو می‌کند.
  3. زمینه دایرکتوری فرعی: CLI همچنین دایرکتوری های فرعی را برای فایل های 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 CLI را فقط در حالت پلان نشان می دهد. فایل در اینجا تکثیر شده است:

# 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 Explain ) وجود دارد که می توانید آن را مطالعه کنید و سپس آن را برای نیازهای خود تغییر دهید و از آن استفاده کنید. این بر GEMINI CLI یک راهنمای تعاملی است که به کاربران کمک می کند تا از طریق یک فرآیند مکالمه ای کشف، مبانی کد پیچیده را درک کنند.

فایل GEMINI.md کلیدی است که باعث می‌شود Gemini CLI از اولویت‌های شما پیروی کند و پیشنهاد می‌شود این مجموعه کاربردی " Practical Gemini CLI " را که به این منطقه می‌پردازد، بررسی کنید، چگونه می‌توانید به طور خودکار یکی برای پروژه خود ایجاد کنید، حتی اعلان سیستم و موارد دیگر را سفارشی کنید.

توجه داشته باشید که هنگام تعامل با Gemini CLI می توانید فایل GEMINI.md را نیز بسازید. در هر زمانی، می‌توانید از دستور /memory add <some instruction/rule> استفاده کنید و Gemini CLI آن را به فایل GEMINI.md اضافه می‌کند. حتی می‌توانید از زبان طبیعی استفاده کنید تا از Gemini CLI بخواهید از طریق اعلان‌هایی مانند " به خاطر داشته باشید <some instruction/rule> " یا " Add to memory <some instruction/rule> " به حافظه خود اضافه کند، یعنی 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 CLI نشان داده می شود. نمونه فایل TOML زیر از پست وبلاگ رسمی دستورات اسلش سفارشی گرفته شده است.

نمونه فایل plan.toml در زیر نشان داده شده است. توجه داشته باشید که اعلان حاوی یک مکان نگهدار ویژه است، CLI دقیقاً آن مکان‌نما را با تمام متنی که کاربر بعد از نام فرمان تایپ کرده است جایگزین می‌کند.

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.
"""

سعی کنید یک فایل توضیح.toml نیز ایجاد کنید. برای انتخاب برخی محتواها می توانید به حالت توضیح Gemini مراجعه کنید.

Gemini CLI را مجددا راه اندازی کنید. اکنون خواهید دید که دستور اسلش ( /plan ) مانند شکل زیر دارد:

8b0720ba31b6c251.png

12. از موارد برای امتحان استفاده کنید

Gemini CLI را می توان برای طیف گسترده ای از موارد استفاده که هم برای توسعه دهندگان و هم برای غیر توسعه دهندگان به طور یکسان اعمال می شود. در اینجا چند سناریو ارائه شده است و بسته به منطقه مورد علاقه خود، می توانید هر یک یا همه آنها را امتحان کنید.

در هر یک از این موارد، اعلان ارائه می شود. در زمان راه‌اندازی Gemini CLI، می‌توانید این را در حالت تعاملی CLI یا حالت غیرتعاملی از طریق پارامتر -p امتحان کنید.

کدنویسی Vibe با 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 Server را در پس‌زمینه اعمال کند.

یک اعلان مشابه زیر بدهید:

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 را راه اندازی می کند و یک فشار انجام می دهد

توجه: مواردی وجود دارد که جمینی CLI ممکن است مهلت زمانی داشته باشد یا از نام کاربری نادرست استفاده کند، و غیره.

اگر همه چیز خوب پیش رفت، باید یک مخزن Github در محل خود داشته باشید. نمونه اسکرین شات در زیر نشان داده شده است:

35c2db48c39fb21a.png

توجه داشته باشید که شما یک README.md برای این پروژه ایجاد نکرده‌اید و این تمرین خوبی برای بخش بعدی است، جایی که ما اکنون با این مخزن کار خواهیم کرد.

استفاده از Gemini CLI برای کار بر روی یک مخزن Github

در این مورد، شما باید از Gemini CLI برای کار با یک مخزن Github استفاده کنید. شما چندین کار را انجام خواهید داد که عبارتند از:

  • درک پایه کد
  • تولید مستندات
  • اجرای یک ویژگی جدید
  • مرتکب شده و تغییرات را به مخزن فشار دهید
  • روی یک مسئله GitHub کار کنید و تغییرات پیشنهادی را اجرا کنید

این باید به شما یک پایه خوب باشد تا سپس با مخازن خود کار کنید و از Gemini CLI به عنوان دستیار در مقابل این کارهای خاص توسعه دهنده استفاده کنید.

پیش نیاز

برای انجام وظایف در این بخش ، به موارد زیر نیاز دارید:

  • Git
  • Gemini CLI با سرور GitHub MCP (ما این کار را زودتر انجام دادیم) یا اگر gh ( Github CLI Tool ) را تنظیم کرده اید که نیز کار می کند.
  • آشنایی با اصول اولیه و کمی دانش برنامه نویسی (ما در این مثال از node.js استفاده خواهیم کرد زیرا ممکن است به دلیل این که شما Gemini CLI را نصب کرده اید ، محیط را روی دستگاه خود آماده کنید). اما بعداً با یک زبان و چارچوب برنامه نویسی متفاوت ، بعداً مخزن مورد نظر خود را انتخاب کنید.
  • شما باید بخش قبلی را تکمیل کرده و مخزن را مفید داشته باشید ، جایی که ما یک وب سایت مذاکرات رویداد ایجاد کردیم.

بیایید به استفاده از Gemini CLI از پوشه/دایرکتوری که شما برای تولید برنامه مذاکرات رویداد یا در صورت لزوم استفاده کرده اید ، ادامه دهید ، می توانید مخزن را به دستگاه محلی خود کلون کرده و سپس Gemini CLI را از آن فهرست شروع کنید. سناریوهای زیر را همانطور که در زیر ذکر شده است امتحان کنید:

درک پایه کد

  • من می خواهم این پروژه را با جزئیات درک کنم. به من کمک کنید تا ویژگی های اصلی را درک کنم و سپس آن را در سمت سرور و مشتری تجزیه کنم. یک جریان نمونه بگیرید و به من نشان دهید که چگونه درخواست و پاسخ کار می کند.
  • @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 بخواهید که کار کند و آن را پیاده سازی کند.

مسئله نمونه ای که تولید کرده است در زیر نشان داده شده است:

2e41f6eac3d1b.png

کل URL مسئله را بگیرید و سریعاً مانند این ارائه دهید:

  • لطفاً این مسئله را طی کنید: <YOUR_ISSUE_URL> و درک کنید که چه تغییراتی باید ایجاد شود. ابتدا در مورد این طرح بحث کرده و سپس تغییرات پیشنهادی در کد را نشان دهید.

احساس راحتی کنید تا تغییرات را تأیید کرده و آنها را به سمت مخزن سوق دهید. حتی می توانید از آن بخواهید که مسئله را ببندد.

CD3C89CF3D47723B.png

(اختیاری) کارهای روزمره

موارد استفاده در زیر وظایفی است که شما ممکن است به طور مرتب انجام دهید. این موارد شامل تنظیم پرونده ها در پوشه ها ، واکشی و خلاصه کردن محتوا از وب ، پردازش فایلهای تصویری و استخراج محتوا از آنها ، کار با پایگاه داده ها و موارد دیگر است.

در صورت تمایل می توانید هر یک از موارد استفاده را که دوست دارید کشف کنید.

سازماندهی پرونده ها/پوشه ها

در صورت لزوم می توانید بسته به انواع پوشه های مختلف ، از Gemini CLI استفاده کنید. به یک پوشه در دستگاه خود بروید که دارای چندین پرونده .txt ، .png ، .jpg ، .pdf ، .mp4 و دیگران است. این احتمالاً دسک تاپ یا پوشه بارگیری شما است.

در اینجا یک پوشه نمونه آورده شده است و محتوای پوشه در زیر نشان داده شده است (ممکن است پرونده های دیگری داشته باشید):

e9d70be5bea46d5.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 را در همان پوشه با نام "خلاصه_original_filename.txt" ایجاد کنید که حاوی خلاصه 3 جمله از نکات اصلی سند است.
  2. طبقه بندی بر اساس نوع: تمام پرونده های PDF و DOCX را در این فهرست اسکن کنید. تمام پرونده ها را با "فاکتور" در نام یا محتوای آنها به پوشه "مالی/فاکتورها" منتقل کنید. پرونده ها را با "دریافت" به "مالی/رسید" منتقل کنید. هر پرونده دیگر .docx وارد "گزارش ها" می شود.
  3. استخراج اطلاعات کلیدی (و "برچسب زدن"): برای هر پرونده PDF در پوشه "مالی/فاکتورها" ، محتوای آن را بخوانید. اگر تاریخ پیدا کردید ، پرونده را تغییر نام دهید تا آن تاریخ را در فرمت YYYY-MM-DD ، به عنوان مثال ، "فاکتور_2025-07-26_original_name.pdf" درج کنید.

سازماندهی تصاویر

بیایید ببینیم که چگونه می توانید محتوای تصویر را در دستگاه خود سازماندهی کنید.

برای امتحان کردن این کار:

  • شما نیاز به دایرکتوری/پوشه با پرونده های مختلف تصویری (.jpg ، .png و غیره) دارید. برخی از داده های EXIF ​​را درج کنید (بیشتر عکس های دوربین ها/تلفن ها این را دارند).
  • به این فهرست بروید.
  • راه اندازی Gemini CLI.

هر یک از سناریوهای زیر را امتحان کنید (اعلان ها در کنار هر سناریو ارائه می شوند):

  • تغییر نام براساس تاریخ (داده های exif) : همه پرونده های .jpg و .png را در این فهرست تغییر نام دهید تا تاریخ ایجاد آنها را از داده های exif در قالب "yyyymmddd_hmmss_original_name.jpg" درج کنید. اگر تاریخ EXIF ​​پیدا نشده است ، از آخرین تاریخ اصلاح شده پرونده استفاده کنید.
  • توضیحات تصویر را ایجاد کنید: برای هر تصویر در این پوشه ، آنچه را که در تصویر وجود دارد شرح دهید و توضیحات را در یک فایل متنی به نام "توضیحات_original_filename.txt" در همان فهرست ذخیره کنید.
  • کپی ها را شناسایی کنید (مفهومی ، به منطق پیشرفته تری نیاز دارد): بر اساس محتوای بصری آنها ، هر تصویر تکراری را در این پوشه پیدا کنید و نام پرونده های آنها را لیست کنید. هنوز آنها را حذف نکنید.

خلاصه مقالات (پرونده های محلی یا وب)

برای هر یک از سناریوهای زیر ، در صورت امکان URL ، موضوع مورد علاقه و نام پرونده های محلی را تغییر دهید. نام های پرونده ارائه شده نام پرونده ها هستند ، می توانید آنها را با نام پرونده های پرونده هایی که در سیستم خود دارید جایگزین کنید.

هر یک از سناریوهای زیر را امتحان کنید (اعلان ها در کنار هر سناریو ارائه می شوند):

  • خلاصه یک مقاله وب (URL تک): به https://medium.com/google-cloud/getting-started-with-gemini-8cc4674a1371 بروید و 3 مورد برتر اصلی را از این مقاله خبری خلاصه کنید.
  • خلاصه چندین مقاله وب (به عنوان مثال ، از یک جستجو): آخرین مقاله های خبری درباره "Gemini CLI" را با استفاده از جستجوی Google پیدا کنید. برای 5 مقاله برتر ، هر یک را در 2-3 جمله خلاصه کنید و URL های آنها را ذکر کنید.
  • یک فایل متنی محلی را خلاصه کنید: نکات اصلی مقاله را در "my_research_paper.txt" خلاصه کنید. روی روش و نتیجه گیری تمرکز کنید.
  • خلاصه یک PDF محلی: "Financial_Report_q2_2025.pdf" را بخوانید. خلاصه ای از عملکرد مالی و چالش های کلیدی ذکر شده را ارائه دهید.

استخراج اطلاعات خاص (پرونده های محلی یا وب)

برای هر یک از سناریوهای زیر ، در صورت امکان URL ، موضوع مورد علاقه و نام پرونده های محلی را تغییر دهید. نام های پرونده ارائه شده نام پرونده ها هستند ، می توانید آنها را با نام پرونده های پرونده هایی که در سیستم خود دارید جایگزین کنید.

هر یک از سناریوهای زیر را امتحان کنید (اعلان ها در کنار هر سناریو ارائه می شوند):

  • استخراج موجودات از یک مقاله محلی: از "Biography.txt" ، همه افراد نامگذاری شده و تاریخ های مهم مرتبط با آنها را ذکر کنید.
  • داده ها را از یک جدول در PDF استخراج کنید: در "QUASTLY_SALES.PDF" ، داده ها را از جدول در صفحه 3 استخراج کنید که "فروش محصول توسط منطقه" را نشان می دهد و آن را در قالب جدول Markdown ارائه می دهد.
  • عناوین و منابع خبری را از یک وب سایت خبری استخراج کنید: به 'https://news.google.com/' (یا یک سایت خبری مشابه) بروید. عناوین اصلی را از صفحه اول و منابع خبری مربوطه آنها استخراج کنید. آنها را به عنوان یک لیست گلوله ارائه دهید.
  • مشخصات محصول را از یک صفحه تجارت الکترونیکی پیدا کنید: مرور کنید به 'https://www.amazon.in/google-cloud-critified-associate-engineer/dp/1119871441' (مثال برای یک کتاب). عنوان کتاب ، نویسنده و سایر جزئیات را استخراج کنید. این را با فرمت JSON ساختاری ارائه دهید.
  • استخراج مدت زمان از یک فیلم ، در یک قالب خاص (به عنوان مثال "2H37M42S").

پاسخ دادن به سوالات بر اساس محتوا (رفتار شبیه پارچه)

برای هر یک از سناریوهای زیر ، در صورت امکان URL ، موضوع مورد علاقه و نام پرونده های محلی را تغییر دهید. نام های پرونده ارائه شده نام پرونده ها هستند ، می توانید آنها را با نام پرونده های پرونده هایی که در سیستم خود دارید جایگزین کنید.

هر یک از سناریوهای زیر را امتحان کنید (اعلان ها در کنار هر سناریو ارائه می شوند):

  • پرسش و پاسخ در یک سند محلی: من در حال ضمیمه "user_manual.pdf" هستم. مراحل عیب یابی مشکلات اتصال شبکه چیست؟
  • پرسش و پاسخ در یک صفحه وب: با استفاده از محتوای "https://www.who.int/news-room/fact-theets/detail/climate-change-and-ealth" ، خطرات اصلی سلامتی مرتبط با تغییر آب و هوا با توجه به چه کسی چیست؟
  • اطلاعات را در چندین منبع مقایسه کنید: من دو مقاله خبری دارم: "Article1.txt" و "Article2.txt" ، هر دو در مورد تغییرات سیاست اقتصادی اخیر بحث می کنند. نظرات آنها را در مورد تأثیر بالقوه بر مشاغل کوچک مقایسه و تضاد کنید.

تولید محتوا بر اساس اطلاعات استخراج شده

برای هر یک از سناریوهای زیر ، در صورت امکان URL ، موضوع مورد علاقه و نام پرونده های محلی را تغییر دهید.

هر یک از سناریوهای زیر را امتحان کنید (اعلان ها در کنار هر سناریو ارائه می شوند):

  • یک خبرنامه را از یک مقاله ایجاد کنید: @tech_innovation_article.txt را بخوانید. یک خبرنامه کوتاه و جذاب را بنویسید (حدود 150 کلمه) مناسب برای یک خبرنامه شرکت ، برجسته کردن فناوری جدید و پتانسیل آن.
  • پیش نویس یک ایمیل خلاصه یک متن جلسه: در اینجا یک پرونده متن جلسه وجود دارد: @scate_transcript.txt. پیش نویس ایمیلی به تیم را که خلاصه تصمیمات کلیدی گرفته شده و موارد اقدام شده است ، از جمله اینکه چه کسی مسئولیت هر یک را بر عهده دارد ، تهیه کنید.

پشتیبانی چند منظوره جمینی CLI

Gemini CLI از طریق Gemini از پشتیبانی چند مدل برخوردار است و می توانید از آن بخواهید که طبق نیاز خود ، پرونده های قالب های مختلف محتوای خود را پردازش کند.

شما می خواهید دسته ای از تصاویر فاکتور را با Gemini CLI پردازش کنید و اطلاعات کلیدی را از آنها استخراج کنید. مراحل زیر را دنبال کنید:

  • یک پوشه روی دستگاه خود ایجاد کنید و برخی از فاکتورها را از مخزن 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

در اینجا سناریوی دیگری وجود دارد که می توانید ستون های مشتق شده اضافی را بخواهید. بیایید بگوییم که شما می خواهید یک ایموجی صلیب سرخ را برای تمام تاریخ های فاکتور که در گذشته است نشان دهید. به شرح زیر می توانید سریع ارائه دهید:

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. ویندوز: باینری های پیش ساخته را از وب سایت SQLITE بارگیری کنید. پرونده ها را به دایرکتوری استخراج کنید (به عنوان مثال ، C:\sqlite ). آن فهرست را به متغیر محیط مسیر سیستم خود اضافه کنید.
  3. لینوکس: 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).

تولید پاسخ های Mock API (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 ، توانایی های آن را مورد بررسی قرار داده اید و آن را در مورد چند مورد استفاده اعمال کرده اید.

اسناد مرجع