জেমিনি CLI-এর সাথে হাত মিলিয়ে নিন

১. ভূমিকা

এই কোডল্যাবে আপনি জেমিনি সিএলআই (Gemini CLI) সম্পর্কে জানতে পারবেন, যা একটি ওপেন-সোর্স এআই এজেন্ট এবং এটি জেমিনির ক্ষমতা সরাসরি আপনার টার্মিনালে নিয়ে আসে।

আপনি যা শিখবেন

  1. জেমিনি সিএলআই ইনস্টল এবং কনফিগার করা
  2. Gemini CLI-তে টুলস ও বিল্ট-ইন কমান্ড অন্বেষণ এবং MCP সার্ভার কনফিগার করা
  3. GEMINI.md ফাইলের মাধ্যমে Gemini CLI কাস্টমাইজ করা
  4. Gemini CLI দিয়ে কয়েকটি ব্যবহারের ক্ষেত্র অন্বেষণ করা হচ্ছে

আপনার যা যা লাগবে

এই কোডল্যাবটি সম্পূর্ণভাবে গুগল ক্লাউড শেল-এর মধ্যেই চালানো যায়, যেখানে জেমিনি সিএলআই আগে থেকেই ইনস্টল করা থাকে।

বিকল্পভাবে, যদি আপনি নিজের মেশিনে কাজ করতে পছন্দ করেন, তবে স্থানীয়ভাবে Gemini CLI ইনস্টল করার জন্য একটি বিভাগ রয়েছে।

আপনার নিম্নলিখিত জিনিসগুলির প্রয়োজন হবে:

  • ক্রোম ওয়েব ব্রাউজার
  • একটি জিমেইল অ্যাকাউন্ট

এই কোডল্যাবটি সকল স্তরের (শিক্ষানবিশ সহ) ব্যবহারকারী এবং ডেভেলপারদের জন্য ডিজাইন করা হয়েছে। কোডল্যাবের ইউজ কেসগুলোকে ডেভেলপার এবং নন-ডেভেলপার টাস্ক হিসেবে শ্রেণীবদ্ধ করা হয়েছে। ডেভেলপার ইউজ কেসগুলোতে দেখানো হয়েছে কীভাবে Gemini CLI ব্যবহার করে কোড ভাইব করতে হয় এবং একটি GitHub রিপোজিটরির সাথে কাজ করে কোডের ব্যাখ্যা/বোঝা, ডকুমেন্টেশন তৈরি, ইস্যু সমাধান এবং আরও অনেক সাধারণ ডেভেলপমেন্ট টাস্ক সম্পাদন করতে হয়। কোডল্যাবের এই ইউজ কেসগুলো সম্পন্ন করার জন্য আপনাকে পরামর্শ দেওয়া হচ্ছে। শেষে একটি ঐচ্ছিক বিভাগ রয়েছে যেখানে নন-ডেভেলপারদের জন্য বেশ কিছু দৈনন্দিন কাজ অন্তর্ভুক্ত করা হয়েছে।

২. শুরু করার আগে

একটি প্রকল্প তৈরি করুন

  1. গুগল ক্লাউড কনসোলের প্রজেক্ট সিলেক্টর পেজে, একটি গুগল ক্লাউড প্রজেক্ট নির্বাচন করুন বা তৈরি করুন।
  2. আপনার ক্লাউড প্রোজেক্টের জন্য বিলিং চালু আছে কিনা তা নিশ্চিত করুন। কোনো প্রোজেক্টে বিলিং চালু আছে কিনা তা কীভাবে পরীক্ষা করবেন, তা জেনে নিন।
  3. আপনি ক্লাউড শেল ব্যবহার করবেন, যা গুগল ক্লাউডে চলমান একটি কমান্ড-লাইন পরিবেশ এবং এটি bq-এর সাথে আগে থেকেই লোড করা থাকে। গুগল ক্লাউড কনসোলের শীর্ষে থাকা ‘Activate Cloud Shell’-এ ক্লিক করুন।

ক্লাউড শেল সক্রিয় করুন বোতামের ছবি

  1. ক্লাউড শেলে সংযুক্ত হওয়ার পর, আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করে যাচাই করে নিন যে আপনি ইতিমধ্যেই প্রমাণীকৃত এবং প্রজেক্টটি আপনার প্রজেক্ট আইডিতে সেট করা আছে:
gcloud auth list
  1. gcloud কমান্ডটি আপনার প্রজেক্ট সম্পর্কে অবগত আছে কিনা, তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান।
gcloud config list project
  1. আপনার প্রজেক্টটি সেট করা না থাকলে, এটি সেট করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
gcloud config set project <YOUR_PROJECT_ID>

৩. স্থাপন

Gemini CLI সেটআপ করে চালানোর আগে, চলুন একটি ফোল্ডার তৈরি করে নিই, যেটি আমরা এর ভেতরে তৈরি করা সমস্ত প্রোজেক্টের হোম ফোল্ডার হিসেবে ব্যবহার করব। এটি Gemini CLI-এর কাজ শুরু করার একটি প্রাথমিক ভিত্তি, যদিও এটি আপনার সিস্টেমের আরও কিছু ফোল্ডারকেও রেফারেন্স করবে, যেগুলোতে আপনি পরে প্রয়োজন অনুযায়ী কাজ করবেন।

একটি নমুনা ফোল্ডার ( gemini-cli-projects ) তৈরি করুন এবং নিচে দেখানো কমান্ডগুলো ব্যবহার করে সেখানে যান। আপনি যদি অন্য কোনো ফোল্ডারের নাম ব্যবহার করতে চান, তবে তা করতে পারেন।

mkdir gemini-cli-projects

চলুন সেই ফোল্ডারটিতে যাই:

cd gemini-cli-projects

আপনি gemini কমান্ডের মাধ্যমে সরাসরি Gemini CLI চালু করতে পারেন।

অনুগ্রহ করে সরাসরি পরবর্তী বিভাগে (settings.json এর মাধ্যমে Gemini CLI কনফিগারেশন) যান।

আপনি যদি স্থানীয়ভাবে Gemini CLI ইনস্টল করতে চান, তাহলে নিচে দেওয়া নির্দেশাবলী অনুসরণ করুন। উল্লেখ্য যে, Cloud Shell এবং Cloud Workstations- এ 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 চালু করেছেন, প্রথমবার চালু করার সময় আপনাকে একটি থিম বেছে নিতে বলা হতে পারে। যদি এমন হয়, আপনি ডিফল্ট থিমটি ব্যবহার করতে পারেন অথবা আপনার পছন্দের কোনো থিম বেছে নিতে পারেন।

পরবর্তী গুরুত্বপূর্ণ বিষয়টি হলো প্রমাণীকরণ। এটি প্রমাণীকরণ পদ্ধতি জানতে চাইবে। এই ল্যাবে, গুগল-বহির্ভূত বা গুগল ওয়ার্কস্পেস-সম্পর্কিত অ্যাকাউন্ট ব্যবহার না করে আপনার ব্যক্তিগত গুগল অ্যাকাউন্ট ব্যবহার করার পরামর্শ দেওয়া হচ্ছে।

গুগল অ্যাকাউন্টের জন্য বরাদ্দ বর্তমান বিনামূল্যের কোটা শেষ হয়ে গেলে, আপনি জেমিনি এপিআই কী (Gemini API Key) অথবা গুগল ক্লাউড ভার্টেক্স এআই (Google Cloud Vertex AI) ব্যবহার করতে পারেন, যার জন্য আপনার একটি প্রজেক্ট আইডি এবং সেই প্রজেক্টের লোকেশনের নাম প্রয়োজন হবে। আপনি যদি প্রমাণীকরণের অন্য কোনো পদ্ধতি ব্যবহার করার পরিকল্পনা করেন, তবে ডকুমেন্টেশনের প্রমাণীকরণ (Authentication) অংশটি দেখে নিন।

57bad75cedaaaa38.png

এগিয়ে যান এবং এন্টার চাপুন। এটি ব্রাউজারে একটি গুগল অথেন্টিকেশন পেজ খুলে দেবে। আপনার গুগল অ্যাকাউন্ট দিয়ে অথেন্টিকেশন সম্পন্ন করুন, শর্তাবলী মেনে নিন এবং সফলভাবে অথেন্টিকেট হয়ে গেলে আপনি দেখতে পাবেন যে জেমিনি সিএলআই আপনার নির্দেশের জন্য প্রস্তুত হয়ে অপেক্ষা করছে।

নীচে একটি নমুনা স্ক্রিনশট দেওয়া হল:

8fc80ad44c19f782.png

এক্ষেত্রে, আমরা Vertex AI অপশনটি বেছে নিয়েছি, কিন্তু আপনার ক্ষেত্রে এটি ব্যক্তিগত অ্যাকাউন্টও হতে পারে। আপনি লক্ষ্য করবেন যে আমরা Gemini 2.5 মডেলটি বেছে নিয়েছি (যা নিচের ডানদিকে দেখা যাচ্ছে)। আপনি যেকোনো সময় /model কমান্ড ব্যবহার করে আপনার নির্দিষ্ট মডেলটি বেছে নিতে পারেন।

৪. settings.json এর মাধ্যমে Gemini CLI কনফিগারেশন

আপনি যদি জেমিনি চালানোর জন্য ক্লাউড শেল বেছে নেন, তাহলে জেমিনি সিএলআই-এর জন্য একটি ডিফল্ট থিম এবং প্রমাণীকরণ পদ্ধতি আপনার জন্য আগে থেকেই নির্বাচিত ও কনফিগার করা থাকে।

আপনি যদি আপনার মেশিনে Gemini CLI ইনস্টল করে প্রথমবার চালু করে থাকেন, তাহলে আপনি একটি থিম এবং তারপর একটি প্রমাণীকরণ পদ্ধতি নির্বাচন করেছেন।

এখন থেকে, Gemini CLI-এর পরবর্তী রানগুলিতে আপনাকে আর থিম এবং অথেনটিকেশন পদ্ধতি বেছে নিতে বলা হবে না। এর মানে হলো, এটি কোথাও সংরক্ষিত হয়ে যাচ্ছে এবং এর জন্য ব্যবহৃত ফাইলটির নাম settings.json , আর এটিই হলো Gemini CLI কাস্টমাইজ করার উপায়।

নিম্নলিখিত অগ্রাধিকার অনুসারে সেটিংস প্রয়োগ করা হয় (ক্লাউড শেল শুধুমাত্র ব্যবহারকারীর সেটিংস উপলব্ধ করে):

  1. সিস্টেম: /etc/gemini-cli/settings.json (সকল ব্যবহারকারীর জন্য প্রযোজ্য, ব্যবহারকারী এবং ওয়ার্কস্পেস সেটিংসকে অগ্রাহ্য করে)।
  2. ওয়ার্কস্পেস: .gemini/settings.json (ব্যবহারকারীর সেটিংসকে অগ্রাহ্য করে)।
  3. ব্যবহারকারী: ~/.gemini/settings.json .

উইন্ডোজ ব্যবহারকারী : %USERPROFILE%.gemini\settings.json (যা সাধারণত C:\Users<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 ফাইলটি নিচে দেখানো হলো। আপনি যদি অন্য কোনো থিম নির্বাচন করতেন, তাহলে সেখানে নামটি দেখতে পেতেন।

{
  "security": {
    "auth": {
      "selectedType": "oauth-personal" or "cloud-shell"
    }
  },
  "ui": {
    "theme": "Default"
  }
}

৫. জেমিনি সিএলআই-এর সাথে আমাদের প্রথম আলাপচারিতা

চলুন Gemini CLI দিয়ে শুরু করা যাক এবং নিচে দেখানো অনুযায়ী আপনার প্রথম কোয়েরিটি টাইপ করুন:

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

প্রত্যাশিত প্রতিক্রিয়া নিচে দেখানো হলো:

 > Give me a famous quote on Artificial Intelligence and who said that?                 
✦ "The only way to do great work is to love what you do." - Steve Jobs (While not directly about AI, it's a famous quote related to technology and innovation, which underpins AI development.)
Alternatively:
  "The development of full artificial intelligence could spell the end of the human race." - Stephen Hawking

Gemini CLI এবং এর সমর্থিত বিভিন্ন কমান্ডগুলো বোঝার একটি সহজ উপায় হলো /help (ফরোয়ার্ড স্ল্যাশ) টাইপ করা, এবং এর ফলে আপনি বিভিন্ন ধরনের কমান্ড ও কিবোর্ড শর্টকাট দেখতে পাবেন।

চলুন আপাতত Gemini CLI থেকে বেরিয়ে যাই। আপনি /quit কমান্ডের মাধ্যমে অথবা ইন্টারেক্টিভ Gemini CLI টার্মিনাল সেশনে দুইবার Ctrl-C চেপে এটি করতে পারেন। আপনি যখন Gemini CLI থেকে বের হবেন, তখন এটি আপনাকে আপনার সেশনের পরিসংখ্যান দেখাবে, যা থেকে আপনি আপনার সেশন, মডেলের ব্যবহার এবং অন্যান্য মেট্রিক সম্পর্কে ধারণা পাবেন।

৬. জেমিনি সিএলআই - কমান্ড প্যারামিটার

Gemini CLI চালু করার সময় কয়েকটি কমান্ড লাইন প্যারামিটার দেওয়া যায়। অপশনগুলোর সম্পূর্ণ তালিকা পেতে, আপনি নিচে দেখানো অনুযায়ী --help ব্যবহার করতে পারেন।

gemini --help

এতে উপলব্ধ সমস্ত বিকল্প দেখানো উচিত। আপনাকে এখান থেকে ডকুমেন্টেশনটি পড়ে দেখার জন্য উৎসাহিত করা হচ্ছে।

চলুন সেগুলোর কয়েকটি দেখে নেওয়া যাক। প্রথমটি হলো একটি নির্দিষ্ট জেমিনি মোড ব্যবহার করার জন্য জেমিনি সিএলআই (Gemini CLI) কনফিগার করা। বর্তমানে, এই ল্যাবটি আপডেট করার সময়, সমর্থিত মডেলগুলোর তালিকা নিচে দেওয়া হলো। একটি নির্দিষ্ট মডেল ব্যবহার করার জন্য, আপনি জেমিনি সিএলআই (Gemini CLI) শুরু করার সময় -m প্যারামিটারের মাধ্যমে তা করতে পারেন, যেমনটি নিচে দেখানো হয়েছে:

gemini -m "gemini-2.5-flash"

আপনি লক্ষ্য করবেন যে, উপরোক্ত পদ্ধতিতে শুরু করলে, আপনি জেমিনি সিএলআই টার্মিনালের নীচের ডানদিকে মডেলটি যাচাই করতে পারবেন।

একবার আপনি Gemini CLI অ্যাপ্লিকেশনে প্রবেশ করলে, আপনি /model কমান্ডটি ব্যবহার করে একটি ডায়ালগ বক্স খুলতে পারেন যা আপনাকে একটি মডেল বেছে নেওয়ার সুযোগ দেবে। নিচে একটি নমুনা রান দেখানো হয়েছে এবং আপনার প্রয়োজন ও প্রদত্ত নির্দেশনার উপর নির্ভর করে, কাজের জটিলতা এবং খরচ নিয়ন্ত্রণের প্রয়োজনীয়তার ওপর ভিত্তি করে সঠিক মডেলটি বেছে নিতে আপনি বারবার পরিবর্তন করতে পারেন।

69154a6bf6553f35.png

অ-ইন্টারেক্টিভ মোড

একটি আকর্ষণীয় বিকল্প হলো Gemini CLI-কে নন-ইন্টারেক্টিভ মোডে চালানো। এর মানে হলো, আপনি সরাসরি এটিকে প্রম্পট দেবেন এবং এটি Gemini CLI-এর ইন্টারেক্টিভ টার্মিনাল না খুলেই সেটির উত্তর দেবে। আপনি যদি স্ক্রিপ্ট বা অন্য কোনো অটোমেশন প্রক্রিয়ার অংশ হিসেবে Gemini CLI-কে স্বয়ংক্রিয়ভাবে ব্যবহার করার পরিকল্পনা করেন, তবে এটি খুবই কার্যকর। নিচে দেখানো অনুযায়ী, Gemini CLI-কে প্রম্পট দেওয়ার জন্য আপনি -p প্যারামিটারটি ব্যবহার করবেন:

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

মনে রাখবেন যে, পরবর্তী প্রশ্ন করে কথোপকথন চালিয়ে যাওয়ার কোনো সুযোগ নেই। এই মোডে আপনি টুলস (WriteFile সহ) অনুমোদন করতে বা শেল কমান্ড চালাতে পারবেন না।

মনে রাখবেন যে, আপনি যদি -p প্যারামিটারটি বাদ দিয়ে শুধু নিম্নলিখিতটি প্রদান করেন, তাহলে এটি প্রম্পট সহ Gemini CLI খুলে দেবে এবং এর ভেতরেই কার্যক্রম চালিয়ে যাবে।

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

৭. জেমিনি সিএলআই - অন্তর্নির্মিত টুলস

জেমিনি সিএলআই-এর সাথে কিছু বিল্ট-ইন টুল রয়েছে এবং টুলগুলোর ডকুমেন্টেশনে বলা হয়েছে, “জেমিনি মডেল আপনার লোকাল এনভায়রনমেন্টের সাথে ইন্টারঅ্যাক্ট করতে, তথ্য অ্যাক্সেস করতে এবং বিভিন্ন অ্যাকশন সম্পাদন করতে এই টুলগুলো ব্যবহার করে। এই টুলগুলো সিএলআই-এর সক্ষমতা বৃদ্ধি করে, যার ফলে এটি শুধু টেক্সট জেনারেশনের বাইরে গিয়ে আরও বিস্তৃত পরিসরের কাজে সহায়তা করতে পারে।”

বর্তমান বিল্ট-ইন টুলগুলির তালিকা পেতে, নিচে দেখানো অনুযায়ী /tools কমান্ডটি ব্যবহার করুন:

Available Gemini CLI tools:
  - Activate Skill (activate_skill)
  - Ask User (ask_user)
  - Edit (replace)
  - Enter Plan Mode (enter_plan_mode)
  - FindFiles (glob)
  - GoogleSearch (google_web_search)
  - Invoke Subagent (invoke_agent)
  - List Background Processes (list_background_processes)
  - Read Background Output (read_background_output)
  - ReadFile (read_file)
  - ReadFolder (list_directory)
  - SearchText (grep_search)
  - Shell (run_shell_command)
  - Update Topic Context (update_topic)
  - WebFetch (web_fetch)
  - WriteFile (write_file)

যে বিষয়টি আপনার মনে অবিলম্বে আসা উচিত তা হলো নিজেকে জিজ্ঞাসা করা যে, জেমিনি সিএলআই কি যখন ইচ্ছা তখন এই টুলগুলোকে সরাসরি কল করতে পারে? এর ডিফল্ট উত্তর হলো 'না' , বিশেষ করে যখন সংবেদনশীল অপারেশনের প্রশ্ন আসে, যার মধ্যে লোকাল সিস্টেমে লেখা, এক্সটার্নাল সিস্টেম থেকে পড়া, এক্সটার্নাল নেটওয়ার্কে যাওয়া ইত্যাদি অন্তর্ভুক্ত থাকতে পারে।

যদিও CLI চালু করার সময় একটি --yolo অপশন থাকে (যা সাধারণত সুপারিশ করা হয় না), আপনি দেখবেন যে 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

এক মুহূর্তের জন্য কল্পনা করুন এটির কী করা উচিত। আদর্শগতভাবে, আর্থিক খবর সরবরাহ করতে পারে এমন কিছু প্রাসঙ্গিক তথ্যের উৎস থেকে খবর পাওয়ার জন্য এটির একটি গুগল সার্চ করা প্রয়োজন। এরপর, এর বিষয়বস্তু দিয়ে finance-news-today.txt নামের একটি ফাইল তৈরি করতে হবে (এটি আপনার স্থানীয় সিস্টেমে একটি রাইট অপারেশন, যার জন্য আপনার অনুমতির প্রয়োজন হবে)।

দেখা যাক কি হয় (আপনার মেশিনেও একই কাজ চালিয়ে যাওয়া উচিত)।

এটি সর্বপ্রথম GoogleSearch টুলটি চালু করে ওয়েবে অনুসন্ধান চালায় এবং ফলাফল সংগ্রহ করে, যেমনটি নিচে দেখানো হয়েছে:

 Searching for Finance News: 
  I will first search for the latest finance headlines and then save them to a file.
  ✓  GoogleSearch  Searching the web for: "latest finance headlines"
   → Search results for "latest finance headlines" returned.
  Saving Finance News: I will now save the finance headlines to the file 'finance-news-today.txt'.

একবার সেটি হয়ে গেলে, এটি ফাইলে লেখার জন্য প্রস্তুত হবে এবং WriteFile টুলটি ব্যবহার করবে, কিন্তু যেহেতু এটি একটি সংবেদনশীল কাজ ( লেখা ), তাই এটি আপনার অনুমতি চাইবে। আপনি অনুমতির ধরন ঠিক করতে পারেন, যেমন—একবার অনুমতি, সর্বদা অনুমতি, ইত্যাদি। আপাতত একবার অনুমতি নির্বাচন করুন।

এরপর এটি তথ্যগুলো ফাইলে লিখে দেবে এবং নিচে একটি সফলতার বার্তা দেখানো হবে:

✦ I have saved the latest finance news to finance-news-today.txt.
  Finance News Saved: The task is complete.

ফাইলটি লেখা হয়েছে কি না, তা কীভাবে পরীক্ষা করবেন? এর কন্টেন্ট পড়ার জন্য আপনি @file ব্যবহার করতে পারেন। আপনি @ টাইপ করার সাথে সাথে, এটি বর্তমান ফোল্ডারের ফাইলগুলোর একটি তালিকা প্রদর্শন করে এবং এটি সদ্য তৈরি করা ফাইলটিও দেখায়। সেটি নির্বাচন করুন এবং প্রম্পটটি সাবমিট করুন। আমার প্রম্পটটি নিচে দেখানো হলো:

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

এর ফলে প্রয়োজনীয় টুলগুলো (ReadManyFiles, ReadFile) চালু হয় এবং বিষয়বস্তুগুলো নিচে দেখানো অনুযায়ী প্রদর্শিত হয়:

    ReadManyFiles  Attempting to read files from finance-news-today.txt  Read 1 file(s)
  Topic: Summarizing the financial news headlines.
 The latest finance headlines as of May 15, 2026, include:
  Global Markets & Economy:
   * The Dow Jones Industrial Average surpassed 50,000 for the first time, driven by strong earnings from Cisco
     Systems and a 2% rise in Nasdaq due to tech stocks.
   * Inflation concerns are growing, hinting at potential Fed interest rate hikes.
   * Kevin Warsh has been confirmed as the new Federal Reserve head.
   * A "constructive" U.S.-China summit took place in Beijing between President Trump and President Xi, with
     markets watching for impacts from proposed tariffs.
  Corporate & Tech News:
   
<REST OF THE CONTENT>

৮. জেমিনি সিএলআই - শেল মোড

Gemini CLI-এর ভেতর থেকে সরাসরি Shell-এর সাথে কীভাবে কাজ করতে হয়, তা শেখার জন্য এটি একটি ভালো সময়। মেসেজ বক্সে থাকা ! চাপার মাধ্যমে আপনি শেল মোডে প্রবেশ করতে পারেন। এটি শেল মোডে টগল করবে। আবার ! চেপে অথবা ESC কী চেপে আপনি ফিরে আসতে পারেন।

শেল মোডে থাকাকালীন, আপনি প্রম্পটের শুরুতে ! চিহ্নটি দেখতে পাবেন, যেমনটি নিচে দেখানো হয়েছে:

aab5d032116fa5e8.png

আপনি নিচে দেখানো pwd এবং ls মতো সাধারণ কমান্ড ব্যবহার করে সরাসরি পরীক্ষা করতে পারেন। অনুগ্রহ করে মনে রাখবেন যে, এই কমান্ডগুলো লিনাক্স ধরনের অপারেটিং সিস্টেমের জন্য প্রযোজ্য। আপনি যদি অন্য কোনো অপারেটিং সিস্টেম (উইন্ডোজ) ব্যবহার করেন, তবে অনুগ্রহ করে এর সমতুল্য কমান্ড যেমন ( cd , dir এবং type ) ব্যবহার করুন। উল্লেখ্য যে, এই কমান্ডগুলোর আউটপুট মডেলের কনটেক্সট উইন্ডোতে অন্তর্ভুক্ত থাকে।

f6e6d45174a9997d.png

আপনি cat কমান্ড ব্যবহার করেও ফাইলটির বিষয়বস্তু প্রিন্ট করতে পারেন, যেমন: cat finance-news-today.txt

অনুশীলন : এখানে চেষ্টা করার জন্য একটি ছোট অনুশীলন দেওয়া হলো। আপনার পছন্দের একটি RSS ফিড বেছে নিন। Gemini CLI-কে সেই RSS ফিডের বিষয়বস্তু সংগ্রহ করতে এবং ফলাফলগুলোকে আপনার জন্য একটি নির্দিষ্ট উপায়ে ফরম্যাট করতে নির্দেশ দিন। দিনের শুরুতে কোনো কাজ স্বয়ংক্রিয় করার জন্য এটি একটি ভালো উপায়। আপনি Gemini CLI-কে কোনো নির্দিষ্ট ক্ষেত্রের, যেমন Google Cloud Platform Release Notes-এর, কোনো RSS ফিড আছে কিনা তা খুঁজে বের করতেও বলতে পারেন।

নীচে একটি নমুনা প্রম্পট দেখানো হলো:

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

আদর্শগতভাবে, এই প্রম্পটটি প্রথমে গুগল ক্লাউড প্ল্যাটফর্ম আরএসএস ফিড খুঁজে বের করার জন্য গুগলসার্চ টুলটি চালু করবে এবং তারপর ওয়েবফেচ টুল ব্যবহার করে আরএসএস ফিডের বিষয়বস্তু সংগ্রহ করে তা প্রদর্শন করবে। এই টুলগুলো চালু করার জন্য আপনার কাছে অনুমতি চাওয়া হতে পারে, অনুগ্রহ করে প্রয়োজনীয় সম্মতি দিন।

৯. জেমিনি সিএলআই এক্সটেনশন

ডকুমেন্টেশনে যেমন বলা আছে, জেমিনি সিএলআই এক্সটেনশনগুলো প্রম্পট, এমসিপি সার্ভার এবং কাস্টম কমান্ডগুলোকে একটি পরিচিত ও ব্যবহারকারী-বান্ধব ফরম্যাটে প্যাকেজ করে। এক্সটেনশনের মাধ্যমে, আপনি জেমিনি সিএলআই-এর সক্ষমতা বাড়াতে এবং সেই ক্ষমতাগুলো অন্যদের সাথে শেয়ার করতে পারেন। জেমিনি সিএলআই-এর অন্তর্নির্মিত টুলগুলোর বাইরে এর কার্যকারিতা প্রসারিত করার এটিই প্রধান উপায়।

একটি এক্সটেনশন হলো একটি স্বয়ংসম্পূর্ণ, সংস্করণযোগ্য এবং সহজে বিতরণযোগ্য প্যাকেজ। এটিকে আপনার Gemini CLI কাস্টমাইজেশনের 'শিপিং কন্টেইনার' হিসেবে ভাবুন, যা একটি নির্দিষ্ট ওয়ার্কফ্লোর জন্য প্রয়োজনীয় সবকিছুকে একটি একক, পরিপাটি প্যাকেজে একত্রিত করে।

f5ae3e229462c130.png

একটি এক্সটেনশন নিম্নলিখিত যেকোনো সংমিশ্রণকে একত্রিত করতে পারে:

  • কাস্টম স্ল্যাশ কমান্ড (আপনার .toml ফাইলগুলো)।
  • এমসিপি সার্ভার কনফিগারেশন (যা পূর্বে settings.json-এ থাকত)।
  • মডেলকে নির্দিষ্ট নির্দেশনা ও নির্দেশিকা প্রদানের জন্য কনটেক্সট ফাইল (GEMINI.md)।
  • আরও নিরাপদ ও মনোযোগী পরিবেশ তৈরির জন্য টুলের উপর বিধিনিষেধ (excludeTools) আরোপ করা হয়েছে।

এক্সটেনশন গ্যালারি হলো গুগল-নির্মিত সকল অফিসিয়াল এবং থার্ড-পার্টি এক্সটেনশন খুঁজে পাওয়ার কেন্দ্রীয় বাজার:

  1. আপনার ব্রাউজারে নিম্নলিখিত URL-টি খুলুন: https://geminicli.com/extensions/
  2. এই গ্যালারিটি হলো ইকোসিস্টেমের জন্য কোনো কিছু খুঁজে পাওয়ার মূল চালিকাশক্তি। এখানে আপনি GitHub, Redis, এবং DynaTrace-এর মতো কোম্পানির এক্সটেনশনগুলো দেখতে পাবেন, যা উপলব্ধ টুলগুলোর ব্যাপকতা তুলে ধরে।
  3. নিচে স্ক্রোল করে ক্লাউড রানের এক্সটেনশন কার্ডটি খুঁজুন অথবা এখানে তার লিঙ্কটি দেওয়া আছে।
  4. লক্ষ্য করুন যে কার্ডটিতে একটি বিবরণ, লেখকের নাম (গুগল), এবং এক ক্লিকে Copy একটি কমান্ড বাটন রয়েছে। কোনো এক্সটেনশনের ইনস্টলেশন কমান্ড পাওয়ার এটিই সবচেয়ে সহজ উপায়।

জেমিনি সিএলআই এক্সটেনশন - ব্যবস্থাপনা কমান্ড

gemini extensions কমান্ডটি হলো আপনার স্থানীয় এক্সটেনশনগুলি পরিচালনা করার প্রবেশপথ।

উপলব্ধ কমান্ডগুলোর তালিকা দেখতে আপনার টার্মিনালে এটি চালান।

gemini extensions <command>
Manage Gemini CLI extensions.
Commands:
  gemini extensions install <source> [--auto-update] [--pre-release]
    Installs an extension from a git repository URL or a local path.
  gemini extensions uninstall [names..]                      
    Uninstalls one or more extensions.
  gemini extensions list                                     
    Lists installed extensions.
  gemini extensions update [<name>] [--all]                  
    Updates all extensions or a named extension to the latest version.
  gemini extensions disable [--scope] <name>                 
    Disables an extension.
  gemini extensions enable [--scope] <name>                  
    Enables an extension.
  gemini extensions link <path>                              
    Links an extension from a local path. Updates made to the local path 
    will always be reflected.
  gemini extensions new <path> [template]                    
    Create a new extension from a boilerplate example.
  gemini extensions validate <path>                          
    Validates an extension from a local path.
  gemini extensions config [name] [setting]                  
    Configure extension settings.
Options:

কমান্ডগুলো বেশ সহজবোধ্য (যেমন ইনস্টল/আনইনস্টল, তালিকা, আপডেট, সক্রিয়/নিষ্ক্রিয় ইত্যাদি) এবং আমরা এই কোডল্যাবে এই কমান্ডগুলোর কয়েকটি ব্যবহার করব।

আপনার এক্সটেনশনগুলির বর্তমান তালিকা পরীক্ষা করুন

কিছু ইনস্টল করার আগে, চলুন আমাদের 'পরিষ্কার অবস্থা' যাচাই করে নিই।

  1. gemini extensions list কমান্ডটি চালান:
  2. আপনি নিম্নলিখিত আউটপুটটি দেখতে পাবেন, যা নিশ্চিত করবে যে এখনও কোনো এক্সটেনশন ইনস্টল করা হয়নি।
No extensions installed.

ক্লাউড রান এমসিপি সার্ভার কনফিগার করা

Gemini CLI এক্সটেনশন গ্যালারিতে উপলব্ধ Cloud Run এক্সটেনশনটি একটি MCP সার্ভার, যা আমাদের অ্যাপ্লিকেশনগুলোকে Cloud Run-এ ডেপ্লয় করার সুযোগ দেয়।

এক্সটেনশন গ্যালারি থেকে ক্লাউড রান এক্সটেনশন কার্ডটি নিচে দেখানো হলো:

ed9b19eac1fbde78.png

প্রথমে, উপরে দেখানো Copy install কমান্ডে ক্লিক করে Cloud Run Extension ইনস্টল করুন। তারপর সেই কমান্ডটি Cloud Shell টার্মিনালে পেস্ট করুন (এটি নিচের মতো দেখতে হবে):

gemini extensions install https://github.com/GoogleCloudPlatform/cloud-run-mcp

উপরের কমান্ডটি চালালে, আপনার কাছে একটি নিশ্চিতকরণ বার্তা আসবে। এগিয়ে গিয়ে আপনার অনুমোদন দিন। ক্লাউড রান এক্সটেনশনটি আপনার গুগল প্রজেক্ট আইডি এবং গুগল প্রজেক্টের অবস্থান জানতে চাইবে। অনুগ্রহ করে তা প্রদান করুন। এরপর ক্লাউড রান এক্সটেনশনটি সফলভাবে ইনস্টল হয়ে যাবে।

আপনি এখন gemini extensions list কমান্ডটি চালালে, নিচে দেখানো ছবির মতো Cloud Run এক্সটেনশনটি ইনস্টল হতে দেখবেন:

✓ cloud-run (1.0.0)
 ID: 3c1a38909b6d7d90b6acc8ca1e80d97b4a867253a3cd12d841b2aab4e556a58f
 name: 0b1820c1f0c043bbb3b54f496d862c02172424c930eb965d61f468be52e6f127
 Path: /Users/romin/.gemini/extensions/cloud-run
 Source: https://github.com/GoogleCloudPlatform/cloud-run-mcp (Type: github-release)
 Release tag: v1.10.0
 Enabled (User): true
 Enabled (Workspace): true
 Context files:
  /Users/romin/.gemini/extensions/cloud-run/gemini-extension/GEMINI.md
 MCP servers:
  cloud-run
 Settings:
  Project ID: YOUR_GCP_PROJEC_ID (User - /Users/romin/.gemini/extensions/cloud-run/.env)
  Region: YOUR_GCP_PROJECT_LOCATION (User - /Users/romin/.gemini/extensions/cloud-run/.env)

আপনি যদি এখন Gemini CLI চালু করে /mcp list কমান্ডটি চালান, তাহলে নিম্নলিখিত বিষয়গুলো দেখতে পাবেন। Cloud Run MCP সার্ভারের টুলস এবং প্রম্পটগুলো লক্ষ্য করুন।

Configured MCP servers:
🟢 cloud-run (from cloud-run) - Ready (8 tools, 2 prompts)
  Tools:
  - mcp_cloud-run_create_project
  - mcp_cloud-run_deploy_container_image
  - mcp_cloud-run_deploy_file_contents
  - mcp_cloud-run_deploy_local_folder
  - mcp_cloud-run_get_service
  - mcp_cloud-run_get_service_log
  - mcp_cloud-run_list_projects
  - mcp_cloud-run_list_services
  Prompts:
  - deploy
  - logs

এটি জেমিনি সিএলআই এক্সটেনশনের একটি উদাহরণ, যার কনফিগার করার পদ্ধতি আমরা দেখিয়েছি। এ ধরনের আরও এক্সটেনশন খুঁজে পেতে আপনি এক্সটেনশন গ্যালারি দেখতে পারেন।

১০. পরীক্ষামূলক ব্যবহারের ক্ষেত্রসমূহ

জেমিনি সিএলআই ডেভেলপার এবং নন-ডেভেলপার উভয়ের জন্যই বিভিন্ন ক্ষেত্রে ব্যবহার করা যেতে পারে। এখানে কয়েকটি পরিস্থিতি তুলে ধরা হলো এবং আপনার আগ্রহের ক্ষেত্র অনুযায়ী, আপনি এগুলোর যেকোনো একটি বা সবগুলোই চেষ্টা করে দেখতে পারেন।

এই প্রতিটি ক্ষেত্রে, প্রম্পটটি প্রদান করা হয়। আপনি Gemini CLI চালু করার সময় -p প্যারামিটার ব্যবহার করে Gemini CLI ইন্টারেক্টিভ মোডে অথবা নন-ইন্টারেক্টিভ মোডে এটি পরীক্ষা করে দেখতে পারেন।

জেমিনি সিএলআই দিয়ে ভাইব কোডিং

চলুন, Gemini CLI ব্যবহার করে একটি অ্যাপ্লিকেশন ভাইব কোড করি। এই টাস্কে, আপনি Gemini CLI-কে একটি অ্যাপ্লিকেশন তৈরি করতে বলবেন এবং তারপর এর প্রাথমিক সংস্করণটি একটি GitHub রিপোজিটরিতে পুশ করবেন।

পূর্বশর্ত

এই বিভাগে বর্ণিত কাজগুলো সম্পাদন করার জন্য কয়েকটি পূর্বশর্ত রয়েছে:

  • গিট
  • জেমিনি সিএলআই
  • gh সেটআপ করুন ( গিটহাব CLI টুল )।
  • গিট-এর প্রাথমিক বিষয়গুলির সাথে পরিচিতি এবং প্রোগ্রামিং সম্পর্কে সামান্য জ্ঞান

আমরা ধরে নেব যে আপনি আপনার পছন্দের একটি নির্দিষ্ট ফোল্ডারে Gemini CLI চালু করেছেন। আমাদের ক্ষেত্রে, আমরা Gemini CLI চালু করেছি এর প্রাথমিক হোম ফোল্ডার ‘ gemini-cli-projects এবং এর ভেতরের event-website নামের আরেকটি ফোল্ডার থেকে।

একটি প্রাথমিক প্রম্পট দিয়ে শুরু করুন। এটিকে আপনার অ্যাপ্লিকেশনের জন্য একটি স্পেসিফিকেশন হিসেবে ভাবুন। আপনার প্রয়োজন অনুযায়ী এটি পরিবর্তন করতে পারেন। মনে রাখবেন যে 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. 

পরবর্তী কয়েকটি নির্দেশ ও তার উত্তর হলো একটি নমুনা কার্যপ্রবাহ যা পর্যবেক্ষণ করা হয়েছে। জেমিনি সিএলআই একটি পরিকল্পনা তৈরি করবে এবং আপনার কাছে কোনো নিশ্চিতকরণ বা স্পষ্টীকরণের জন্য জিজ্ঞাসা করবে, অথবা আপনাকে এগিয়ে যেতে বলবে। অনুগ্রহ করে নির্দেশাবলী অনুসরণ করুন। নমুনা হিসেবে, এটি আমার কথোপকথনের একটি নমুনা:

    Of course. I will start by creating a plan for the application.
  Plan:
   1. Backend (Node.js):
       * I'll set up a simple Node.js server using the Express.js framework.
       * This server will have two main purposes:
           1. Serve the static frontend files (HTML, CSS, JavaScript).
           2. Provide an API endpoint (e.g., /api/talks) that will send the event schedule data to the frontend as a JSON object.
       * The talk data will be stored in a separate talks.json file for easy management.
   2. Frontend (HTML, CSS, JS):
       * HTML: A single index.html file will define the structure of the page, including a container for the schedule and a search input field for filtering by category.
       * CSS: A style.css file will be used to style the website for a clean and professional look, ensuring the schedule is easy to read.
       * JavaScript: A script.js file will handle the dynamic aspects of the site:
           1. It will fetch the talk data from the backend API when the page loads.
           2. It will dynamically render the schedule on the page based on the fetched data.
           3. It will implement the search functionality. As the user types in the search box, it will filter the displayed talks based on the category keywords.
   3. Project Structure:
      I will organize the project with a clear and standard structure:
   1     /
   2     ├── public/
   3        ├── index.html
   4        ├── style.css
   5        └── script.js
   6     ├── talks.json
   7     └── server.js
   8     └── package.json
  Before I proceed with generating the code, I have a few questions to ensure the final product meets your expectations:

এটি আমাকে কয়েকটি প্রশ্নও জিজ্ঞাসা করে (নীচে দেখানো হলো, যেগুলোর উত্তর আমি দিই):

c6127207c54a776c.png

এরপর এটি কোড তৈরি করতে শুরু করে এবং বিভিন্ন পর্যায়ে আমার কাছে অনুমতি চায়, যেগুলোতে আমি এগিয়ে যাওয়ার জন্য প্রয়োজনীয় অনুমতি প্রদান করি।

অবশেষে এটি সার্ভারটি চালু করল এবং আমাকে পৃষ্ঠাটি পরিদর্শন করতে বলল:

The server is now running in the background.
  3. View Your Website
  You can now open your web browser and navigate to the following address to see your website:
  http://localhost:3000 (http://localhost:3000)
  4. Test the Search Functionality
  Once the page is loaded, you can test the search functionality by typing a category into the search bar (e.g., "AI", "Frontend", "Cybersecurity"). The list of talks
  will filter in real-time.
  This completes the setup and implementation of your event website. Let me know if you have any other questions.

এখানে এর দ্বারা তৈরি নমুনা পৃষ্ঠাটি দেওয়া হলো:

12664933302b3867.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. এটি লোকাল গিট রিপোজিটরি পরিচালনা করতে init, add, commit-এর মতো একাধিক গিট কমান্ড ব্যবহার করবে।
  3. এরপর এটি গিট রিমোট সেটআপ করবে এবং একটি পুশ করবে।

দ্রষ্টব্য: এমন কিছু পরিস্থিতি হতে পারে যেখানে Gemini CLI-এর সময়সীমা শেষ হয়ে যেতে পারে বা এটি ভুল ইউজারনেম ব্যবহার করতে পারে, ইত্যাদি। অনুগ্রহ করে এটির সাথে কাজ করুন এবং সমাধানের পরামর্শ দিন।

সবকিছু ঠিকঠাক থাকলে, আপনার একটি গিটহাব রিপোজিটরি তৈরি হয়ে যাবে। নিচে একটি নমুনা স্ক্রিনশট দেখানো হলো:

b393c67b13ddf19a.png

লক্ষ্য করুন যে আপনি এই প্রজেক্টটির জন্য কোনো README.md তৈরি করেননি এবং এটি পরবর্তী অংশের জন্য একটি ভালো অনুশীলন, যেখানে আমরা এখন আপনার তৈরি করা এই রিপোজিটরিটি নিয়ে কাজ করব।

গিটহাব রিপোজিটরিতে কাজ করার জন্য জেমিনি সিএলআই ব্যবহার করা

এই ব্যবহারিক ক্ষেত্রে, আপনাকে একটি গিটহাব রিপোজিটরি নিয়ে কাজ করার জন্য জেমিনি সিএলআই (Gemini CLI) ব্যবহার করতে হবে। আপনাকে একাধিক কাজ সম্পাদন করতে হবে, যার মধ্যে রয়েছে:

  • কোডবেস বোঝা
  • ডকুমেন্টেশন তৈরি করা
  • একটি নতুন বৈশিষ্ট্য বাস্তবায়ন করা হচ্ছে
  • রিপোজিটরিতে পরিবর্তনগুলো কমিট এবং পুশ করুন।
  • একটি গিটহাব ইস্যু তৈরি করুন এবং প্রস্তাবিত পরিবর্তনগুলো বাস্তবায়ন করুন।

এটি আপনাকে আপনার রিপোজিটরিগুলো নিয়ে কাজ করার এবং ডেভেলপার-নির্দিষ্ট এই কাজগুলোর ক্ষেত্রে সহকারী হিসেবে জেমিনি সিএলআই (Gemini CLI) ব্যবহার করার জন্য একটি ভালো ভিত্তি দেবে।

পূর্বশর্ত

এই বিভাগের কাজগুলো সম্পন্ন করতে আপনার নিম্নলিখিত জিনিসগুলোর প্রয়োজন হবে:

  • গিট
  • জেমিনি সিএলআই এবং gh ( গিটহাব সিএলআই টুল )।
  • গিট-এর প্রাথমিক ধারণা এবং প্রোগ্রামিং সম্পর্কে সামান্য জ্ঞান থাকা প্রয়োজন (এই উদাহরণে আমরা Node.js ব্যবহার করব, কারণ আপনার মেশিনে Gemini CLI ইনস্টল করা থাকায় এর জন্য প্রয়োজনীয় পরিবেশ হয়তো আগে থেকেই প্রস্তুত আছে)। তবে পরবর্তীতে আপনি ভিন্ন কোনো প্রোগ্রামিং ভাষা ও ফ্রেমওয়ার্ক ব্যবহার করে নিজের পছন্দমতো একটি রিপোজিটরি বেছে নিতে পারেন।
  • আপনার পূর্ববর্তী বিভাগটি সম্পন্ন করা এবং রিপোজিটরিটি হাতের কাছে থাকা উচিত, যেখানে আমরা একটি ইভেন্ট টকস ওয়েবসাইট তৈরি করেছি।

চলুন, ইভেন্ট টকস অ্যাপ্লিকেশনটি তৈরি করার জন্য ব্যবহৃত ফোল্ডার/ডিরেক্টরি থেকেই জেমিনি সিএলআই (Gemini CLI) ব্যবহার করা চালিয়ে যাই। অথবা, প্রয়োজনে আপনি রিপোজিটরিটি আপনার লোকাল মেশিনে ক্লোন করে তারপর সেই ডিরেক্টরি থেকে জেমিনি সিএলআই চালু করতে পারেন। নিচে তালিকাভুক্ত সিনারিওগুলো পরীক্ষা করে দেখুন:

কোডবেস বোঝা

  • আমি এই প্রজেক্টটি বিস্তারিতভাবে বুঝতে চাই। এর প্রধান বৈশিষ্ট্যগুলো বুঝতে আমাকে সাহায্য করুন এবং তারপর এটিকে সার্ভার ও ক্লায়েন্ট সাইডে ভাগ করে ব্যাখ্যা করুন। একটি নমুনা ফ্লো দেখিয়ে আমাকে বোঝান যে এর রিকোয়েস্ট এবং রেসপন্স কীভাবে কাজ করে।
  • Explain @server.js

একটি README ফাইল তৈরি করা

  • এই প্রজেক্টটির জন্য একটি README ফাইল তৈরি করুন।

একটি নতুন বৈশিষ্ট্য বাস্তবায়ন করা হচ্ছে

  • আমি একটি নতুন ফিচার চালু করতে চাই যেখানে ব্যবহারকারী কোনো নির্দিষ্ট স্পিকারের নাম দিয়েও সার্চ করতে পারবেন। প্রথমে আপনি এই পরিবর্তনটি কীভাবে বাস্তবায়ন করবেন তার একটি পরিকল্পনা দেখান, তারপর আমরা কোডটি তৈরি করতে পারব।

এটি আপনাকে একটি পরিকল্পনা দেবে, যা আপনি অনুমোদন করতে পারবেন। অনুমোদন পেলে, Gemini CLI সেই পরিবর্তনগুলো করে ফেলবে। আপনার করা পরিবর্তনগুলো পরীক্ষা করে দেখুন এবং যদি কোনো বাগ (যা থাকার সম্ভাবনা বেশি) থাকে, তবে Gemini CLI-কে তা ঠিক করতে বলুন।

পরিবর্তনগুলো ঠিকঠাক মনে হলে, আপনি একই ধাপগুলো অনুসরণ করে সেগুলোকে রিমোট রিপোজিটরিতে কমিট ও পুশ করতে পারেন। এমনকি এটি আপনার জন্য স্বয়ংক্রিয়ভাবেও এই কাজগুলো করে দিতে পারে। Gemini CLI কী করতে পারে বা পারে না, তা আপনি সবসময় জিজ্ঞাসা করে জেনে নিতে পারেন।

প্রস্তাবিত বৈশিষ্ট্যের উপর ভিত্তি করে ইস্যু তৈরি করুন

চলুন এখানে একটি আকর্ষণীয় কিছু চেষ্টা করা যাক। আপনি জেমিনি সিএলআই-কে জিজ্ঞাসা করবেন যে এই অ্যাপ্লিকেশনটির ব্যবহারকারীর অভিজ্ঞতা কীভাবে উন্নত করা যায় এবং এর মূল্যায়নের উপর ভিত্তি করে, এটি সেই পরামর্শগুলিকে একই গিটহাব রিপোজিটরিতে ইস্যু হিসাবে তৈরি করতে পারে। এটি গিটহাব এমসিপি সার্ভারের " create_issue " টুলটি ব্যবহার করবে।

নিম্নলিখিত নির্দেশটি চেষ্টা করুন:

  • আমি চাই আপনি ব্যবহারকারীর অভিজ্ঞতার দৃষ্টিকোণ থেকে অ্যাপ্লিকেশনটি মূল্যায়ন করুন। যেমন—ব্যবহারের সহজতা, দ্রুত সাড়া দেওয়ার ক্ষমতা, সহায়ক বার্তা এবং আরও অনেক কিছু। অনুগ্রহ করে উন্নতির জন্য একটি তালিকা তৈরি করুন এবং তারপর সেগুলোকে গিটহাব রিপোজিটরিতে ইস্যু হিসেবে তৈরি করুন।

আদর্শগতভাবে, এটি প্রথমে আপনার সাথে উন্নতিগুলো শেয়ার করবে এবং তারপর আপনার অনুমতি নিয়ে গিটহাব রিপোজিটরিতে ইস্যুগুলো তৈরি করার জন্য অগ্রসর হবে। আমাদের রান থেকে নেওয়া একটি নমুনা স্ক্রিনশট এখানে দেওয়া হলো:

10a31e665be46f9d.png

একটি গিটহাব ইস্যু তৈরি করুন এবং প্রস্তাবিত পরিবর্তনগুলো বাস্তবায়ন করুন।

আপনি এখন পূর্বে তৈরি হওয়া সমস্যাগুলোর মধ্যে একটি নিয়ে জেমিনি সিএলআই-কে দিয়ে সেটির ওপর কাজ ও বাস্তবায়ন করাতে পারেন।

এর ফলে সৃষ্ট একটি নমুনা সমস্যা নিচে দেখানো হলো:

2778bde35f41efe9.png

সম্পূর্ণ ইস্যু URL-টি নিন এবং এইরকম একটি প্রম্পট প্রদান করুন:

  • অনুগ্রহ করে <YOUR_ISSUE_URL> ইস্যুটি পর্যালোচনা করুন এবং কী কী পরিবর্তন করতে হবে তা বুঝুন। প্রথমে পরিকল্পনাটি নিয়ে আলোচনা করুন এবং তারপর প্রস্তাবিত পরিবর্তনগুলো কোডে দেখান।

আপনি নির্দ্বিধায় পরিবর্তনগুলো অনুমোদন করে রিপোজিটরিতে পুশ করতে পারেন। এমনকি আপনি ইস্যুটি বন্ধ করার জন্যও অনুরোধ করতে পারেন।

(ঐচ্ছিক) দৈনন্দিন কাজ

নীচে দেওয়া ব্যবহারের ক্ষেত্রগুলো হলো এমন কিছু কাজ যা আপনাকে নিয়মিত করতে হতে পারে। এর মধ্যে রয়েছে ফাইলগুলোকে ফোল্ডারে সাজানো, ওয়েব থেকে বিষয়বস্তু সংগ্রহ ও সারসংক্ষেপ করা, ইমেজ ফাইল প্রসেস করে তা থেকে বিষয়বস্তু বের করা, ডেটাবেস নিয়ে কাজ করা এবং আরও অনেক কিছু।

আপনার পছন্দমতো যেকোনো ব্যবহারের ক্ষেত্রগুলো অন্বেষণ করতে পারেন।

ফাইল/ফোল্ডার সাজানো

প্রয়োজন অনুযায়ী বিভিন্ন ফোল্ডারে ফাইলের ধরণ অনুসারে সাজাতে আপনি Gemini CLI ব্যবহার করতে পারেন। আপনার মেশিনের এমন একটি ফোল্ডারে যান যেখানে .txt, .png, .jpg, .pdf, .mp4 এবং অন্যান্য বেশ কিছু ফাইল রয়েছে। এটি সম্ভবত আপনার ডেস্কটপ অথবা ডাউনলোডস ফোল্ডার হবে।

এখানে একটি নমুনা ফোল্ডার দেওয়া হলো এবং এর ভেতরের ফাইলগুলো নিচে দেখানো হলো (আপনার ফোল্ডারে অন্য ফাইলও থাকতে পারে):

7011e3dfaf628e9b.png

ওই ফোল্ডারটিতে যান এবং Gemini CLI চালু করুন। প্রথমে আপনি Gemini CLI-কে Images, Documents, Videos-এর মতো কয়েকটি ফোল্ডার তৈরি করতে বলবেন এবং তারপর ফোল্ডারগুলোর মধ্যে ফাইলগুলো গুছিয়ে দিতে বলবেন।

জেমিনি সিএলআই প্রায়শই কমান্ড কার্যকর করার আগে আপনার কাছে অনুমতি চাইবে, বিশেষ করে যেগুলো আপনার ফাইল সিস্টেম পরিবর্তন করে (যেমন ফাইল লেখা, সরানো বা মুছে ফেলা)। অনুমতি দেওয়ার আগে সর্বদা এই অনুরোধগুলো সাবধানে পর্যালোচনা করুন। এটিই আপনার সুরক্ষা ব্যবস্থা।

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.

ফোল্ডারটির চূড়ান্ত অবস্থা কেমন হওয়া উচিত, তার একটি উদাহরণ নিচে দেখানো হলো। আপনি দেখবেন যে নতুন সাব-ফোল্ডার তৈরি হয়েছে এবং ফাইলগুলো তাদের ধরন অনুযায়ী নিজ নিজ সাব-ফোল্ডারে স্থানান্তরিত হয়েছে।

4c1ee9ddea4b3f5f.png

আরও কয়েকটি সাংগঠনিক পরিস্থিতি (প্রতিটি পরিস্থিতির পাশে নির্দেশাবলী দেওয়া আছে):

  1. সারসংক্ষেপ: 'Documents' ফোল্ডারের প্রতিটি ডকুমেন্টের জন্য, একই ফোল্ডারে 'summary_ORIGINAL_FILENAME.txt' নামে একটি txt ফাইল তৈরি করুন, যাতে ডকুমেন্টটির মূল বিষয়গুলির একটি ৩-বাক্যের সারসংক্ষেপ থাকবে।
  2. ধরণ অনুযায়ী শ্রেণীবদ্ধকরণ: এই ডিরেক্টরির সমস্ত PDF এবং DOCX ফাইল স্ক্যান করুন। যে সমস্ত ফাইলের নাম বা বিষয়বস্তুতে "invoice" শব্দটি আছে, সেগুলিকে 'Financial/Invoices' ফোল্ডারে সরান। যে ফাইলগুলিতে "receipt" শব্দটি আছে, সেগুলিকে 'Financial/Receipts' ফোল্ডারে সরান। অন্য যেকোনো .docx ফাইল 'Reports' ফোল্ডারে রাখুন।
  3. মূল তথ্য নিষ্কাশন (এবং "ট্যাগিং"): 'Financial/Invoices' ফোল্ডারের প্রতিটি PDF ফাইলের বিষয়বস্তু পড়ুন। যদি কোনো তারিখ খুঁজে পান, তাহলে ফাইলটির নাম পরিবর্তন করে YYYY-MM-DD ফরম্যাটে সেই তারিখটি অন্তর্ভুক্ত করুন, যেমন, 'invoice_2025-07-26_original_name.pdf'।

ছবি সাজানো

চলুন দেখি, আপনি আপনার মেশিনে ছবির বিষয়বস্তু কীভাবে সাজাতে পারেন।

এটি পরীক্ষা করে দেখতে:

  • আপনার একটি ডিরেক্টরি বা ফোল্ডারে বিভিন্ন ধরনের ছবির ফাইল (.jpg, .png, ইত্যাদি) রাখতে হবে। এর মধ্যে কিছু ছবিতে EXIF ​​ডেটা রাখুন (ক্যামেরা বা ফোনের বেশিরভাগ ছবিতেই এটি থাকে)।
  • এই ডিরেক্টরিতে প্রবেশ করুন।
  • জেমিনি সিএলআই চালু করুন।

নিচের যেকোনো একটি পরিস্থিতি চেষ্টা করে দেখুন (প্রতিটি পরিস্থিতির পাশে নির্দেশাবলী দেওয়া আছে):

  • তারিখ (EXIF ডেটা) অনুযায়ী নাম পরিবর্তন করুন : এই ডিরেক্টরির সমস্ত .jpg এবং .png ফাইলের নাম পরিবর্তন করে EXIF ​​ডেটা থেকে তাদের তৈরির তারিখ 'YYYYMMDD_HHMMSS_original_name.jpg' ফরম্যাটে অন্তর্ভুক্ত করুন। যদি কোনো EXIF ​​তারিখ খুঁজে না পাওয়া যায়, তাহলে ফাইলটির সর্বশেষ পরিবর্তনের তারিখ ব্যবহার করুন।
  • ছবির বিবরণ তৈরি করুন: এই ফোল্ডারের প্রতিটি ছবির জন্য, ছবিটিতে কী আছে তা বর্ণনা করুন এবং সেই বিবরণটি একই ডিরেক্টরিতে 'description_ORIGINAL_FILENAME.txt' নামের একটি টেক্সট ফাইলে সংরক্ষণ করুন।
  • ডুপ্লিকেট শনাক্ত করুন (ধারণাগত, আরও উন্নত যুক্তির প্রয়োজন): এই ফোল্ডারে থাকা ছবিগুলোর দৃশ্যগত বিষয়বস্তুর ওপর ভিত্তি করে যেকোনো ডুপ্লিকেট ছবি খুঁজুন এবং তাদের ফাইলের নাম তালিকাভুক্ত করুন। আপাতত সেগুলো মুছে ফেলবেন না।

প্রবন্ধের সারসংক্ষেপ (স্থানীয় ফাইল বা ওয়েব)

নীচের প্রতিটি পরিস্থিতির জন্য, প্রয়োজন অনুযায়ী ইউআরএল, আগ্রহের বিষয় এবং স্থানীয় ফাইলের নাম পরিবর্তন করতে পারেন। প্রদত্ত ফাইলের নামগুলো নমুনা নাম, আপনি আপনার সিস্টেমে থাকা ফাইলগুলোর নাম দিয়ে এগুলো প্রতিস্থাপন করতে পারেন।

নিচের যেকোনো একটি পরিস্থিতি চেষ্টা করে দেখুন (প্রতিটি পরিস্থিতির পাশে নির্দেশাবলী দেওয়া আছে):

  • একটি ওয়েব আর্টিকেলের (একক ইউআরএল) সারসংক্ষেপ করুন: https://medium.com/google-cloud/getting-started-with-gemini-cli-8cc4674a1371 লিঙ্কে যান এবং এই সংবাদ নিবন্ধটি থেকে শীর্ষ ৩টি মূল শিক্ষণীয় বিষয় সংক্ষেপে তুলে ধরুন।
  • একাধিক ওয়েব আর্টিকেলের সারসংক্ষেপ করুন (যেমন, সার্চ থেকে): গুগল সার্চ ব্যবহার করে 'Gemini CLI' সম্পর্কিত সর্বশেষ সংবাদ আর্টিকেলগুলো খুঁজুন। শীর্ষ ৫টি প্রাসঙ্গিক আর্টিকেলের প্রত্যেকটির সারসংক্ষেপ ২-৩টি বাক্যে লিখুন এবং সেগুলোর URL তালিকাভুক্ত করুন।
  • একটি স্থানীয় টেক্সট ফাইলের সারসংক্ষেপ করুন: 'my_research_paper.txt' ফাইলে প্রবন্ধটির মূল বিষয়গুলো সারসংক্ষেপ করুন। পদ্ধতি এবং উপসংহারের উপর মনোযোগ দিন।
  • একটি স্থানীয় পিডিএফ-এর সারসংক্ষেপ করুন: 'financial_report_Q2_2025.pdf' ফাইলটি পড়ুন। এতে উল্লেখিত আর্থিক কর্মক্ষমতা এবং প্রধান প্রতিবন্ধকতাগুলোর একটি সারসংক্ষেপ প্রদান করুন।

নির্দিষ্ট তথ্য নিষ্কাশন (স্থানীয় ফাইল বা ওয়েব)

নীচের প্রতিটি পরিস্থিতির জন্য, প্রয়োজন অনুযায়ী ইউআরএল, আগ্রহের বিষয় এবং স্থানীয় ফাইলের নাম পরিবর্তন করতে পারেন। প্রদত্ত ফাইলের নামগুলো নমুনা নাম, আপনি আপনার সিস্টেমে থাকা ফাইলগুলোর নাম দিয়ে এগুলো প্রতিস্থাপন করতে পারেন।

নিচের যেকোনো একটি পরিস্থিতি চেষ্টা করে দেখুন (প্রতিটি পরিস্থিতির পাশে নির্দেশাবলী দেওয়া আছে):

  • একটি স্থানীয় নিবন্ধ থেকে তথ্যসমূহ নিষ্কাশন করুন: 'biography.txt' থেকে, নামযুক্ত সকল ব্যক্তি এবং তাদের সাথে সম্পর্কিত গুরুত্বপূর্ণ তারিখগুলির একটি তালিকা তৈরি করুন।
  • একটি PDF-এর টেবিল থেকে ডেটা বের করুন: 'quarterly_sales.pdf' ফাইলের ৩ নং পৃষ্ঠায় থাকা "অঞ্চল অনুযায়ী পণ্যের বিক্রয়" শীর্ষক টেবিল থেকে ডেটা বের করে একটি Markdown টেবিল ফরম্যাটে উপস্থাপন করুন।
  • একটি সংবাদ ওয়েবসাইট থেকে সংবাদের শিরোনাম ও উৎস সংগ্রহ করুন: 'https://news.google.com/' (বা অনুরূপ কোনো সংবাদ সাইট)-এ যান। প্রথম পাতা থেকে প্রধান শিরোনামগুলো এবং সেগুলোর সংশ্লিষ্ট সংবাদ উৎসগুলো সংগ্রহ করুন। সেগুলোকে একটি বুলেট তালিকা আকারে উপস্থাপন করুন।
  • একটি ই-কমার্স পৃষ্ঠা থেকে পণ্যের বিবরণ খুঁজুন: 'https://www.amazon.in/Google-Cloud-Certified-Associate-Engineer/dp/1119871441' ব্রাউজ করুন (উদাহরণস্বরূপ একটি বই)। বইটির শিরোনাম, লেখক এবং অন্যান্য বিবরণ বের করুন। এটিকে একটি কাঠামোগত JSON ফরম্যাটে উপস্থাপন করুন।
  • একটি ভিডিও থেকে সময়কাল একটি নির্দিষ্ট ফরম্যাটে (যেমন "২ ঘণ্টা ৩৭ মিনিট ৪২ সেকেন্ড") বের করুন।

বিষয়বস্তুর উপর ভিত্তি করে প্রশ্নের উত্তর দেওয়া (RAG-সদৃশ আচরণ)

নীচের প্রতিটি পরিস্থিতির জন্য, প্রয়োজন অনুযায়ী ইউআরএল, আগ্রহের বিষয় এবং স্থানীয় ফাইলের নাম পরিবর্তন করতে পারেন। প্রদত্ত ফাইলের নামগুলো নমুনা নাম, আপনি আপনার সিস্টেমে থাকা ফাইলগুলোর নাম দিয়ে এগুলো প্রতিস্থাপন করতে পারেন।

নিচের যেকোনো একটি পরিস্থিতি চেষ্টা করে দেখুন (প্রতিটি পরিস্থিতির পাশে নির্দেশাবলী দেওয়া আছে):

  • স্থানীয় একটি ডকুমেন্টের উপর প্রশ্নোত্তর: আমি 'user_manual.pdf' ফাইলটি সংযুক্ত করছি। নেটওয়ার্ক সংযোগের সমস্যা সমাধানের ধাপগুলো কী কী?
  • একটি ওয়েব পেজে প্রশ্নোত্তর: 'https://www.who.int/news-room/fact-sheets/detail/climate-change-and-health' এর তথ্য ব্যবহার করে, বিশ্ব স্বাস্থ্য সংস্থার (WHO) মতে জলবায়ু পরিবর্তনের সাথে সম্পর্কিত প্রধান স্বাস্থ্য ঝুঁকিগুলো কী কী?
  • একাধিক উৎস থেকে প্রাপ্ত তথ্যের তুলনা করুন: আমার কাছে দুটি সংবাদ নিবন্ধ আছে: 'article1.txt' এবং 'article2.txt', উভয়টিতেই সাম্প্রতিক অর্থনৈতিক নীতি পরিবর্তন নিয়ে আলোচনা করা হয়েছে। ক্ষুদ্র ব্যবসার উপর এর সম্ভাব্য প্রভাব সম্পর্কে তাদের মতামতের মধ্যে তুলনা ও বৈসাদৃশ্য তুলে ধরুন।

সংগৃহীত তথ্যের উপর ভিত্তি করে বিষয়বস্তু তৈরি

নীচের প্রতিটি পরিস্থিতির জন্য, প্রয়োজন অনুযায়ী ইউআরএল, আগ্রহের বিষয় এবং স্থানীয় ফাইলের নাম পরিবর্তন করতে পারেন।

নিচের যেকোনো একটি পরিস্থিতি চেষ্টা করে দেখুন (প্রতিটি পরিস্থিতির পাশে নির্দেশাবলী দেওয়া আছে):

  • একটি আর্টিকেল থেকে নিউজ ব্রিফ তৈরি করুন: @tech_innovation_article.txt আর্টিকেলটি পড়ুন। নতুন প্রযুক্তি এবং এর সম্ভাবনা তুলে ধরে কোম্পানির নিউজলেটারের জন্য উপযুক্ত একটি সংক্ষিপ্ত ও আকর্ষণীয় নিউজ ব্রিফ (প্রায় ১৫০ শব্দ) লিখুন।
  • মিটিংয়ের কার্যবিবরণীর সারসংক্ষেপ করে একটি ইমেলের খসড়া তৈরি করুন: এখানে মিটিংয়ের কার্যবিবরণী ফাইলটি রয়েছে: @meeting_transcript.txt। গৃহীত প্রধান সিদ্ধান্ত এবং নির্ধারিত করণীয় বিষয়গুলোর সারসংক্ষেপ করে টিমের কাছে একটি ইমেলের খসড়া তৈরি করুন, এবং প্রতিটির জন্য কে দায়ী তাও উল্লেখ করুন।

জেমিনি সিএলআই মাল্টি-মোডাল সাপোর্ট

Gemini CLI has multi-model support via Gemini and you can ask it to process files of different content formats as per your requirements.

You are going to process a bunch of invoice images with Gemini CLI and extract key information from them. Follow the steps given below:

  • Create a folder on your machine and download some invoices from the following GitHub repository .
  • Launch Gemini CLI from that folder

Give the following prompt to extract out information from the invoices in the form of a table.

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.

You should ideally get an output that looks like this:

7203d699d875a91f.png

Here is another scenario, where you can ask for additional derived columns. Let's say that you want to show a red cross emoji for all the invoice due dates that are in the past. You can give a prompt as follows:

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.

This produces the following output:

e11fcde0400f5a0b.png

Apply this to any of your own files that are in formats other than text.

Using Gemini CLI to work with databases

You can use Gemini CLI to more efficiently work with various databases. You can use it for multiple scenarios: querying with natural language, exporting data, designing database schemas, generating realistic test data and more.

You shall be using SQLite3 to do this task. You will need to install SQLite3 and have the sample Chinook database .

Here are brief instructions for setting up SQLite3:

  1. macOS: SQLite3 comes pre-installed. Verify with sqlite3 --version . If needed, install with Homebrew: brew install sqlite3 .
  2. Windows: Download the precompiled binaries from the SQLite website . Extract the files to a directory (eg, C:\sqlite ). Add that directory to your system's PATH environment variable.
  3. Linux: Debian/Ubuntu: sudo apt update && sudo apt install sqlite3

Download the sample Chinook database (here is a direct link to download it).

To run these prompts, it is suggested that you create a folder ( database-tasks ) in the gemini-cli-projects directory. Copy the Chinook database file to that folder. Ensure that the sqlite3 tool is set up on your system and available in the path, so that Gemini CLI can use that. Launch Gemini CLI.

The database schema diagram is shown below:

4178b54e03a07d60.png

Let's assume that you are in a folder named database-tasks and the Chinook database file is named chinook.db .

Several prompts are given below that can help you work with databases. Let's cover the first one in brief to demonstrate the permission that will be requested.

Start off with the prompt to list down the tables that are present in the database, give the following prompt:

What tables are present in the file: chinook.db 

This uses the tool to read the file and then wants to use sqlite3 utility present on your system to do the needful:

a8d782201eba1eb8.png

Provide the permission to run it once to get the expected output:

69e96f22610e7892.png

Try out the following prompts or any other prompt of your choice:

  • How many employees are there?
  • What is the schema of the invoices table?
  • Which are the top 3 invoices by total and which customers have placed those invoices?

You will notice that Gemini CLI takes care of two things: Generating the correct SQL statement to meet your requirement and giving the correct sqlite3 command.

Using Gemini CLI to generate data

You can prompt Gemini CLI to produce data in various data formats. This could range from content pieces to JSON data, that you might need to mock. Let's focus here on scenarios applicable to developers/testers.

Here are some prompts to try out:

Generate JSON data of sample customer reviews

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

Generating Mock API Responses (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').

Generating Sample Database Insert Statements (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'.

Generating CSV Data for Data Loading/Analysis

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

Generate a Configuration file (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.

Generating Test Data for Edge Cases/Validation

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

১১. অভিনন্দন

Congratulations, you've successfully explored Gemini CLI, its capabilities and applied it to a few use cases.

Reference docs