התנסות מעשית ב-Gemini CLI

1. מבוא

ב-codelab הזה תלמדו על Gemini CLI, סוכן מבוסס-AI בקוד פתוח שמאפשר לכם להשתמש ביכולות של Gemini ישירות בטרמינל.

פרויקט Gemini CLI הוא קוד פתוח, ואפשר לראות את תוכנית הדרך הציבורית כאן.

במהלך שיעור ה-codelab, תשתמשו בגישה שלב אחר שלב בפעילויות כמו:

  1. התקנה של Gemini CLI
  2. הגדרה בסיסית
  3. הסבר על כלים ופקודות מובנות ב-Gemini CLI
  4. התאמה אישית של Gemini CLI באמצעות הקובץ GEMINI.md
  5. דוגמאות לתרחישי שימוש ב-Gemini CLI

מה צריך

  • דפדפן האינטרנט Chrome
  • חשבון Gmail
  • מחשב מקומי שמותקן בו Node 20 ואילך.

ה-codelab הזה מיועד למשתמשים ולמפתחים בכל הרמות (כולל מתחילים).

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 או ב-Vertex AI של Google Cloud. כדי לעשות זאת, תצטרכו את מזהה הפרויקט ואת שם המיקום של הפרויקט. אם אתם מתכננים להשתמש בשיטות אימות אחרות, כדאי לעיין בקטע אימות במסמכי התיעוד.

afce8d90e20adb6.png

לוחצים על Enter. ייפתח דף אימות של Google בדפדפן. ממשיכים בתהליך האימות באמצעות חשבון Google, מאשרים את התנאים, ואחרי שהאימות מסתיים בהצלחה, רואים ש-Gemini CLI מוכן וממתין לפקודה. למטה מופיע צילום מסך לדוגמה:

ffd8ddfede565612.png

מקלידים /help (קו נטוי) ומופיעים מגוון פקודות ומקשי קיצור, כמו שמוצג בהמשך:

d333742310905dcc.png

האינטראקציה הראשונה שלנו עם Gemini CLI

מקלידים את ההודעה הראשונה בתיבה. נציג לו שאילתה כמו:

4dc0961206c1b568.png

אפשר לראות שהשאילתה שלנו הפעילה את הכלי GoogleSearch (כלי מובנה ב-Gemini CLI). זו דרך מעניינת שבה כבר השתמשנו באחד מהכלים המובנים והעוצמתיים של Gemini CLI, כלומר GoogleSearch, שמבסס את התשובות שלו על מידע שהוא מקבל מהאינטרנט. בקטע הבא נסביר על הכלים.

בוא נצא מ-Gemini CLI כרגע. אפשר לעשות את זה באמצעות הפקודה /quit או להריץ את הפקודה Ctrl-C פעמיים בסשן הטרמינל האינטראקטיבי של Gemini CLI.

קובץ ההתאמה האישית של Gemini CLI‏ : settings.json

אם אתם זוכרים, כשפתחנו את Gemini CLI בפעם הראשונה, התבקשנו לבחור ערכת נושא ואז שיטת אימות. בהפעלות הבאות של Gemini CLI, לא תתבקשו לבחור שוב את העיצוב ואת שיטת האימות. המשמעות היא שהנתונים נשמרים איפשהו, והקובץ שבו נעשה שימוש נקרא settings.json. כך אפשר להתאים אישית את Gemini CLI.

ההגדרות מוחלות לפי סדר העדיפות הבא:

  1. ‫Workspace: ‏ .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. נכון למועד כתיבת ה-Lab הזה, אלה שני המודלים היחידים שנתמכים. כברירת מחדל, נעשה שימוש במודל 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 משתמש בכלים האלה כדי ליצור אינטראקציה עם הסביבה המקומית, לגשת למידע ולבצע פעולות. הכלים האלה משפרים את היכולות של ה-CLI, ומאפשרים לו לעשות יותר מסתם יצירת טקסט ולעזור במגוון רחב של משימות".

כדי לקבל רשימה של כלי ה-Built-in הנוכחיים, פשוט מפעילים את הפקודה /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

זה גם זמן טוב ללמוד איך לעבוד ישירות עם 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 הוא אפליקציה שחושפת כלים ומשאבים ל-Gemini 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": {}
 }

כל הגדרת שרת תומכת במאפיינים הבאים ( מסמכי עזר):

חובה (אחת מהאפשרויות הבאות)

  • command (מחרוזת): הנתיב לקובץ ההפעלה של Stdio transport
  • url (string): כתובת ה-URL של נקודת הקצה של SSE (לדוגמה, "http://localhost:8080/sse")
  • httpUrl (מחרוזת): כתובת URL של נקודת קצה (endpoint) להזרמת HTTP

אופציונלי

  • args (string[]): ארגומנטים בשורת הפקודה להעברה של Stdio
  • headers (אובייקט): כותרות HTTP מותאמות אישית כשמשתמשים ב-url או ב-httpUrl
  • env (אובייקט): משתני סביבה לתהליך השרת. הערכים יכולים להפנות למשתני סביבה באמצעות התחביר $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 להשתמש בהם במקום זאת. חשוב להבין שהיא תעזור לכם עם הפקודות ותבצע אותן בשבילכם, אבל אתם צריכים להגדיר את הכלים האלה במערכת שלכם.

שרת Github MCP

בשרת ה-MCP הרשמי של Github יש תיעוד מפורט על הכלים שהוא מציג ועל אופן ההגדרה שלהם. אתם יכולים לבחור אם להריץ אותו באופן מקומי או מרחוק, כי Gemini CLI תומך גם בשרתי MCP מרחוק.

במדריך הזה בחרנו להשתמש באפשרות Remote MCP Server ב-Github. לשם כך, קודם צריך לקבל Personal Access Token (PAT)‎ מ-GitHub.

אחרי שיוצרים את האובייקט, צריך להוסיף אותו לקובץ 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 עם ההגדרה של שרת ה-MCP של GitHub, תוכלו להפעיל מחדש את Gemini CLI או להריץ את הפקודה /mcp refresh. בצילום המסך שלמטה מודגש שרת ה-MCP של GitHub שהוגדר במחשב שלי, והכלים השונים שזמינים עכשיו לממשק Gemini CLI כדי לעבוד עם MCP.

e34f348129d448e9.png

נתחיל בהנחיה שתפעיל אחד מהכלים משרת ה-MCP של GitHub. מזינים את ההנחיה הבאה:

da643d182ac3fca4.png

שימו לב שהכלי יבחר את הכלי הנכון משרת ה-MCP של Github, אבל כמו בכלים מובנים אחרים, תצטרכו גם כאן לתת הרשאה מפורשת להפעלת הכלי. אפשר לנסות ולראות איזו פלט תקבלו.

עכשיו צריך לעבוד עם אחד מהפרויקטים שלכם ב-GitHub. מזינים את השאילתות בשפה טבעית, למשל:

  • תאר לי את <repo-name>
  • משכפל את <שם המאגר> במחשב המקומי שלי.
  • תאר את @<שם הקובץ> או @<שם התיקייה>/
  • מהם הרכיבים השונים במאגר הזה?
  • ביצעתי את השינויים הנדרשים. אפשר להעביר את השינויים ל-GitHub ולהשתמש בכלים של שרת ה-MCP של GitHub כדי לעשות את זה.

בהמשך המעבדה יש תרגיל שבו עובדים עם שרת ה-MCP של Github בפירוט.

שרת Context7 MCP

Context7 מספק תיעוד עדכני למודלים גדולים של שפה (LLM) ולעורכי קוד של AI. אם אתם רוצים לספק למודל שפה גדול (LLM) את ההקשר עם התיעוד העדכני של המסגרת שבחרתם, שרת Context7 MCP הוא בחירה טובה להגדרה.

מוודאים שהספרייה מופיעה בדף הבית של Context7.

זהו שרת ה-MCP שצריך להוסיף לקובץ settings.json.

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

אחרי שמגדירים את שרת ה-MCP וטוענים איתו את Gemini CLI, אמורים לראות את הכלים של Context7 כמו שמוצג בהמשך:

92f715d87989ff72.png

עכשיו אתם יכולים להיות ספציפיים בהנחיה ולבקש מ-Gemini CLI להשתמש ב-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

שרת Google Slides MCP

בפרויקט Github בכתובת https://github.com/matteoantoci/google-slides-mcp יש שרת MCP שמאפשר אינטראקציה עם Google Slides API. הוא מאפשר ליצור, לקרוא ולשנות מצגות ב-Google Slides באופן פרוגרמטי.

השלבים להגדרת שרת ה-MCP מפורטים בפרויקט. תצטרכו סביבת Node.js שבה תבנו את השרת, תגדירו פרויקט ב-Google Cloud ואסימוני OAuth 2.0, ואז תגדירו את שרת ה-MCP בקובץ settings.json.

אחרי ההגדרה, אפשר להריץ הנחיות כמו:

  • תחלץ את המידע העדכני מ-web_url, תסכם אותו לנקודות מרכזיות ותיצור מצגת בשם my_presentation.

כדאי לנסות!

שרתי MCP נוספים

ריכזנו כאן רשימה נוספת של שרתי MCP שעשויים לעניין אתכם:

  1. שרת Firebase MCP
  2. שירותי מדיה מבוססי-AI גנרטיבי של Google (‏Imagen, ‏ Veo, ‏ Lyria)
  3. MCP Toolbox for Databases (עבודה עם Firestore,‏ BigQuery ומסדי נתונים של Google Cloud)
  4. שרת Google Workspace MCP (עבודה עם Docs,‏ Sheets,‏ יומן Google ו-Gmail)

ההוראות להגדרת שרתי ה-MCP שצוינו למעלה מפורסמות בפוסט הזה בבלוג.

6. תרחישים לדוגמה לניסיון

אפשר להשתמש ב-Gemini CLI במגוון רחב של תרחישים לדוגמה שמתאימים למפתחים ולמשתמשים אחרים. בהמשך מפורטים כמה תרחישים, ואפשר לנסות את כולם או רק חלק מהם, בהתאם לתחום העניין שלכם.

בכל אחד מהמקרים האלה, ההנחיה מסופקת. אתם יכולים לנסות את זה במצב האינטראקטיבי או במצב הלא אינטראקטיבי של Gemini CLI באמצעות הפרמטר -p בזמן ההפעלה של Gemini CLI.

ארגון קבצים ותיקיות

אתם יכולים להשתמש ב-Gemini CLI כדי לארגן את הקבצים בתיקיות שונות לפי הצורך, בהתאם לסוגים. עוברים לתיקייה במחשב שיש בה כמה קבצים בפורמטים ‎ .txt,‏ ‎.png,‏ ‎.jpg,‏ ‎.pdf,‏ ‎.mp4 ואחרים. בדרך כלל זה שולחן העבודה או תיקיית ההורדות.

עוברים לתיקייה הזו ומפעילים את Gemini CLI. קודם נבקש ממנו ליצור כמה תיקיות בשבילנו: Images, Documents, Videos, ואז נבקש ממנו לארגן את הקבצים בתיקיות.

ממשק 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. סיכום: לכל מסמך בתיקייה 'Documents', צריך ליצור קובץ txt באותה תיקייה בשם 'summary_ORIGINAL_FILENAME.txt' שמכיל סיכום של 3 משפטים של הנקודות העיקריות במסמך.
  2. סיווג לפי סוג: סריקה של כל קובצי ה-PDF וה-DOCX בספרייה הזו. העברה של כל הקבצים שכוללים את המילה invoice בשם או בתוכן שלהם לתיקייה Financial/Invoices. העברת קבצים עם המילה 'קבלה' לתיקייה 'פיננסי/קבלות'. כל קובץ אחר בפורמט ‎ .docx עובר לתיקייה 'דוחות'.
  3. חילוץ מידע חשוב (ו'תיוג'): לכל קובץ PDF בתיקייה Financial/Invoices, קרא את התוכן שלו. אם מצאתם תאריך, משנים את שם הקובץ כך שיכלול את התאריך בפורמט 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 הנקודות העיקריות שמופיעות במאמר הזה.
  • לסכם כמה כתבות באינטרנט (למשל מחיפוש): מחפשים בחיפוש Google את הכתבות הכי עדכניות בנושא Gemini CLI. עליך לסכם כל אחת מ-5 הכתבות הרלוונטיות ביותר ב-2-3 משפטים ולציין את כתובות ה-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, את הנושא שמעניין אותך ואת שמות הקבצים המקומיים לפי הצורך.

אפשר לנסות את אחד מהתרחישים הבאים (ההנחיות מופיעות לצד כל תרחיש):

  • יצירת תקציר חדשות ממאמר: קרא את @tech_innovation_article.txt. תכתוב תקציר חדשות קצר ומושך (בסביבות 150 מילים) שמתאים לניוזלטר של החברה, ותדגיש את הטכנולוגיה החדשה ואת הפוטנציאל שלה.
  • תנסח אימייל עם סיכום של תמליל פגישה: הנה קובץ תמליל פגישה: @meeting_transcript.txt. תנסח אימייל לצוות שבו מסוכמות ההחלטות העיקריות שהתקבלו והפעולות לביצוע שהוקצו, כולל מי אחראי לכל פעולה.

תמיכה מרובת-אופנים ב-Gemini CLI

‫Gemini CLI תומך בכמה מודלים באמצעות Gemini, ואפשר לבקש ממנו לעבד קבצים בפורמטים שונים של תוכן בהתאם לדרישות שלכם.

אנחנו הולכים לעבד הרבה תמונות של חשבוניות באמצעות Gemini CLI ולחלץ מהן מידע חשוב. כך עושים את זה:

  • יוצרים תיקייה במחשב ומורידים חשבוניות ממאגר 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).

יצירת תגובות מדומה של 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).

תכנות בשיטת Vibe coding באמצעות 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, והפעולה הזו תפעיל את כלי השרת של GitHub MCP ברקע.

מזינים הנחיה שדומה להנחיה הבאה:

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

הוא יעבור על מספר פקודות:

  1. יוצרים את המאגר.
  2. הוא ישתמש בכמה פקודות Git : ‏ init, ‏ add, ‏ commit כדי לנהל את מאגר Git המקומי.
  3. לאחר מכן, המערכת תגדיר את ה-Git remote ותבצע push

הערה: יש מקרים שבהם יכול להיות ש-Gemini CLI יפסיק לפעול בגלל חוסר פעילות או ישתמש בשם משתמש שגוי וכו'. כדאי לקיים איתו אינטראקציה ולהציע לו תיקונים.

אם הכול ילך כשורה, אמור להיות לכם מאגר ב-Github. למטה מוצגת דוגמה לצילום מסך:

35c2db48c39fb21a.png

לא יצרנו README.md ודברים אחרים שאנחנו בדרך כלל עושים, אבל זה תרגול טוב לקטע הבא, שבו נשתמש במאגר הזה שיצרתם.

שימוש ב-Gemini CLI לעבודה על מאגר ב-GitHub

בתרחיש השימוש הזה, נשתמש ב-Gemini CLI כדי לעבוד עם מאגר Github. נבחן כמה תרחישים, כולל:

  • הסבר על ה-codebase
  • יצירת תיעוד
  • הטמעה של תכונה חדשה
  • שומרים את השינויים ודוחפים אותם בחזרה למאגר
  • עבודה על בעיה ב-GitHub והטמעה של השינויים המוצעים

אחרי שתעשו את זה, תוכלו לעבוד עם המאגרים ולהשתמש ב-Gemini CLI כעוזר במשימות ספציפיות למפתחים.

דרישה מוקדמת

כדי לבצע את המשימות שבקטע הזה, תצטרכו:

  • Git
  • ‫Gemini CLI עם שרת Github MCP (כבר עשינו את זה)
  • היכרות עם יסודות Git וידע מסוים בתכנות (בדוגמה הזו נשתמש ב-Node.js, כי יכול להיות שהסביבה כבר מוכנה במחשב שלכם, כי התקנתם את Gemini CLI). אבל אתם יכולים לבחור מאוחר יותר מאגר לבחירתכם עם שפת תכנות ומסגרת שונות.
  • צריך להשלים את השלב הקודם ולהכין את המאגר שבו יצרנו את האתר Event Talks.

נמשיך להשתמש ב-Gemini CLI מהתיקייה שבה השתמשתם כדי ליצור את אפליקציית Event Talks. אם צריך, אפשר לשכפל את המאגר למחשב המקומי ואז להפעיל את Gemini CLI מהתיקייה הזו. אפשר לנסות את התרחישים הבאים:

הסבר על ה-codebase

  • אני רוצה לקבל הסבר מפורט על הפרויקט הזה. תסביר לי מהן התכונות העיקריות, ואז תפרט על הצד של השרת ועל הצד של הלקוח. תסביר לי איך הבקשה והתשובה פועלות באמצעות דוגמה לזרימת נתונים.
  • Explain @server.js

יצירת קובץ README

  • צור קובץ README לפרויקט הזה.

במקרה הזה, Gemini CLI לא רק יצר את קובץ ה-README, אלא גם רצה להריץ את הפקודות כדי להוסיף אותו למאגר Git ולדחוף את השינויים למאגר המרוחק, ואישרתי לו לעשות את זה. הוא גם הציע ליצור בשבילי את קובץ הרישיון, ואישרתי לו לעשות את זה.

עכשיו יש לי קובץ README וקובץ LICENSE שנוצרו, והשינויים הועברו ל-Github.

d77239c8fae0aa8b.png

הטמעה של תכונה חדשה

  • אני רוצה להטמיע תכונה חדשה שמאפשרת למשתמש לחפש גם לפי דובר ספציפי. קודם תציג לי תוכנית להטמעת השינוי הזה, ואז ניצור את הקוד.

הוא הציג לי תוכנית, אישרתי אותה ואז הוא ביצע את השינויים. חשוב לבדוק את השינויים, ואם יש באגים (סביר להניח שיהיו), אפשר לבקש מ-Gemini CLI לתקן אותם.

אחרי שמוודאים שהשינויים נראים טוב, אפשר לפעול לפי אותם השלבים כדי לשמור אותם ולדחוף אותם למאגר המרוחק.

יצירת בעיות על סמך הצעות לתכונות

בוא ננסה משהו מעניין. נשאל את Gemini CLI איך הוא יכול לשפר את חוויית המשתמש באפליקציה הזו, ועל סמך ההערכה שלו הוא יוכל ליצור את ההצעות האלה כבעיות באותו מאגר GitHub. הוא ישתמש בכלי create_issue משרת ה-MCP של Github.

אפשר לנסות את ההנחיה הבאה:

  • אני רוצה שתעריך את האפליקציה מנקודת מבט של חוויית משתמש. קלות השימוש, רספונסיביות, הודעות מועילות ועוד. תציע רשימה של שיפורים ואז תיצור אותם כבעיות במאגר Github.

האידיאל הוא שהשיפורים ישותפו איתכם קודם, ורק לאחר מכן, באישורכם, ייווצרו ה-issues במאגר 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.md זהו קובץ ההקשר (ברירת המחדל היא GEMINI.md, אבל אפשר להגדיר אותו באמצעות ההגדרה contextFileName) שחשוב מאוד להגדרת ההקשר ההדרכתי (שנקרא גם 'זיכרון') שמסופק למודל Gemini. הקובץ הזה מאפשר לכם לתת ל-AI הוראות ספציפיות לפרויקט, הנחיות לגבי סגנון קידוד או כל מידע רקע רלוונטי, וכך לקבל תשובות מותאמות ומדויקות יותר לצרכים שלכם.

קובץ GEMINI.md הוא בפורמט Markdown והוא נטען באופן היררכי, שמשולב מכמה מיקומים.

סדר הטעינה הוא:

  1. הקשר הגלובלי:**~/.gemini/GEMINI.md** (להוראות שחלות על כל הפרויקטים שלכם).
  2. הקשר של הפרויקט או של רכיב ה-Ancestor: ה-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 בהתאמה אישית. הדוגמה הזו מגיעה מ-gist שפורסם ומראה איך להשתמש ב-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) שאפשר לעיין בו ואז לשנות אותו בהתאם לדרישות שלכם ולהשתמש בו. הדגש הוא על GEMINI CLI כמדריך אינטראקטיבי, שעוזר למשתמשים להבין בסיסי קוד מורכבים באמצעות תהליך גילוי שיחתי.

קובץ GEMINI.md הוא המפתח לכך ש-Gemini CLI יפעל לפי ההעדפות שלכם. מומלץ לעיין בסדרה המעשית הזו, Practical Gemini CLI, שמתעמקת בתחום הזה ומסבירה איך אפשר ליצור קובץ כזה באופן אוטומטי עבור הפרויקט שלכם, להתאים אישית אפילו את הנחיית המערכת ועוד.

8. מזל טוב

סיימתם ללמוד על Gemini CLI, על היכולות שלו ועל כמה תרחישי שימוש.

מאמרי עזרה