1. ভূমিকা
এই কোডল্যাবে, আপনি জেমিনি সিএলআই সম্পর্কে শিখবেন, একটি ওপেন-সোর্স এআই এজেন্ট যা জেমিনির শক্তি সরাসরি আপনার টার্মিনালে নিয়ে আসে।
তুমি কি শিখবে
- জেমিনি সিএলআই ইনস্টল এবং কনফিগার করা
- জেমিনি সিএলআই-তে সরঞ্জাম, অন্তর্নির্মিত কমান্ড এবং এমসিপি সার্ভার কনফিগার করা অন্বেষণ করা
-
GEMINI.mdফাইলের মাধ্যমে Gemini CLI কাস্টমাইজ করা - জেমিনি সিএলআই-এর কয়েকটি ব্যবহারের উদাহরণ অন্বেষণ করা হচ্ছে
তোমার যা লাগবে
এই কোডল্যাবটি সম্পূর্ণরূপে গুগল ক্লাউড শেলের মধ্যে চালানো যেতে পারে, যা জেমিনি সিএলআই-এর সাথে আগে থেকে ইনস্টল করা থাকে।
বিকল্পভাবে, যদি আপনি নিজের মেশিনে কাজ করতে পছন্দ করেন, তাহলে স্থানীয়ভাবে জেমিনি সিএলআই ইনস্টল করার জন্য একটি বিভাগ রয়েছে।
আপনার নিম্নলিখিতগুলির প্রয়োজন হবে:
- ক্রোম ওয়েব ব্রাউজার
- একটি জিমেইল অ্যাকাউন্ট
এই কোডল্যাবটি সকল স্তরের ব্যবহারকারী এবং ডেভেলপারদের জন্য তৈরি (নতুনদের সহ)। কোডল্যাবের ব্যবহারের ক্ষেত্রে ডেভেলপার এবং নন-ডেভেলপার কাজে শ্রেণীবদ্ধ করা হয়েছে। ডেভেলপার ব্যবহারের ক্ষেত্রে জেমিনি CLI-এর সাথে কোড ভাইব করার পদ্ধতি এবং কোড ব্যাখ্যা/বোঝা, ডকুমেন্টেশন তৈরি, সমস্যা সমাধান এবং আরও অনেক কিছুর মতো সাধারণ ডেভেলপমেন্ট কাজ সম্পাদনের জন্য একটি Github রিপোজিটরির সাথে কাজ করার পদ্ধতি দেখানো হয়েছে। কোডল্যাবে এই ব্যবহারের ক্ষেত্রেগুলি সম্পূর্ণ করার পরামর্শ দেওয়া হচ্ছে। শেষে একটি ঐচ্ছিক বিভাগ রয়েছে যা ডেভেলপার-কেন্দ্রিক নয় এমন বেশ কয়েকটি দৈনন্দিন কাজ কভার করে।
2. শুরু করার আগে
একটি প্রকল্প তৈরি করুন
- গুগল ক্লাউড কনসোলে , প্রজেক্ট সিলেক্টর পৃষ্ঠায়, একটি গুগল ক্লাউড প্রজেক্ট নির্বাচন করুন বা তৈরি করুন।
- আপনার ক্লাউড প্রোজেক্টের জন্য বিলিং সক্ষম আছে কিনা তা নিশ্চিত করুন। কোনও প্রোজেক্টে বিলিং সক্ষম আছে কিনা তা কীভাবে পরীক্ষা করবেন তা শিখুন।
- আপনি ক্লাউড শেল ব্যবহার করবেন, এটি গুগল ক্লাউডে চলমান একটি কমান্ড-লাইন পরিবেশ যা bq সহ প্রিলোডেড আসে। গুগল ক্লাউড কনসোলের শীর্ষে অ্যাক্টিভেট ক্লাউড শেল ক্লিক করুন।

- ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি নিম্নলিখিত কমান্ড ব্যবহার করে পরীক্ষা করতে পারবেন যে আপনি ইতিমধ্যেই প্রমাণীকরণপ্রাপ্ত এবং প্রকল্পটি আপনার প্রকল্প আইডিতে সেট করা আছে কিনা:
gcloud auth list
- gcloud কমান্ড আপনার প্রকল্প সম্পর্কে জানে কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান।
gcloud config list project
- যদি আপনার প্রকল্পটি সেট না করা থাকে, তাহলে এটি সেট করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
gcloud config set project <YOUR_PROJECT_ID>
3. ইনস্টলেশন
জেমিনি সিএলআই সেটআপ করার এবং চালানোর আগে, আসুন আমরা একটি ফোল্ডার তৈরি করি যা আমরা এর ভিতরে তৈরি করা সমস্ত প্রকল্পের জন্য আমাদের হোম ফোল্ডার হিসাবে ব্যবহার করব। এটি জেমিনি সিএলআইয়ের সাথে কাজ করার জন্য একটি সূচনা বিন্দু, যদিও এটি আপনার সিস্টেমে কিছু অন্যান্য ফোল্ডারও উল্লেখ করবে এবং প্রয়োজনে আপনি পরে যেগুলিতে আসবেন।
একটি নমুনা ফোল্ডার তৈরি করুন ( gemini-cli-projects ) এবং নীচে দেখানো কমান্ডগুলির মাধ্যমে সেখানে নেভিগেট করুন। যদি আপনি অন্য কোনও ফোল্ডারের নাম ব্যবহার করতে চান, তাহলে দয়া করে তা করুন।
mkdir gemini-cli-projects
চলুন সেই ফোল্ডারে যাই:
cd gemini-cli-projects
আপনি gemini কমান্ডের মাধ্যমে সরাসরি Gemini CLI চালু করতে পারেন।
অনুগ্রহ করে সরাসরি পরবর্তী বিভাগে যান (settings.json এর মাধ্যমে Gemini CLI কনফিগারেশন)।
আপনি যদি স্থানীয়ভাবে জেমিনি সিএলআই ইনস্টল করতে চান, তাহলে নীচের নির্দেশাবলী অনুসরণ করুন।
প্রথম ধাপ হল আপনার মেশিনে Node 20+ ইনস্টল করা । এটি সম্পন্ন হলে, আপনি নিম্নলিখিত যেকোনো পদ্ধতির মাধ্যমে Gemini CLI ইনস্টল এবং চালাতে পারেন:
- আপনি প্রথমে আপনার সিস্টেমে বিশ্বব্যাপী জেমিনি সিএলআই ইনস্টল করতে পারেন। এই ধাপটি সম্পাদন করার জন্য আপনার প্রশাসকের অ্যাক্সেসের প্রয়োজন হতে পারে।
# option 1: install Gemini CLI
npm install -g @google/gemini-cli
# .. and then run
gemini
- নিম্নলিখিত কমান্ড দিয়ে এটি চালান:
# option 2: run without installing Gemini CLI
npx https://github.com/google-gemini/gemini-cli
আপনি নিম্নলিখিত কমান্ডগুলি চালিয়ে নিশ্চিত করতে পারেন যে CLI ইনস্টল করা আছে:
gemini --version
ধরে নিচ্ছি যে আপনি উপরের যেকোনো পদ্ধতির মাধ্যমে জেমিনি সিএলআই চালু করেছেন, তাহলে আপনার নিচের স্ক্রিনটি দেখতে পাওয়া উচিত যেখানে আপনাকে একটি থিম বেছে নেওয়ার বিষয়ে জিজ্ঞাসা করা হবে। এগিয়ে যান এবং আপনার পছন্দের একটি নির্বাচন করুন:

একবার আপনি এটি নির্বাচন করলে, এটি প্রমাণীকরণ পদ্ধতির জন্য জিজ্ঞাসা করবে। এই ল্যাবে আপনার ব্যক্তিগত Google অ্যাকাউন্ট ব্যবহার করার পরামর্শ দেওয়া হচ্ছে, নন-Google বা Google Workspace সম্পর্কিত অ্যাকাউন্ট ব্যবহার না করে। এই বিনামূল্যের লাইসেন্সটি আপনাকে Gemini 2.5 Pro এবং এর 1 মিলিয়ন টোকেন কনটেক্সট উইন্ডোতে অ্যাক্সেস দেয়। বিনামূল্যের স্তরটি প্রতি মিনিটে 60টি মডেল অনুরোধ এবং প্রতিদিন 1,000টি অনুরোধ বিনামূল্যে করার অনুমতি দেয়।
যদি আপনি গুগল অ্যাকাউন্টগুলিতে প্রদত্ত বর্তমান বিনামূল্যের কোটার সীমা অতিক্রম করেন, তাহলে আপনি জেমিনি এপিআই কী বা এমনকি গুগল ক্লাউড ভার্টেক্স এআই ব্যবহার করতে পারেন, যেখানে আপনার একটি প্রকল্প আইডি এবং সেই প্রকল্পের জন্য অবস্থানের নাম থাকতে হবে। যদি আপনি প্রমাণীকরণের অন্যান্য পদ্ধতি ব্যবহার করার পরিকল্পনা করেন, তাহলে ডকুমেন্টেশনের প্রমাণীকরণ বিভাগটি দেখুন।

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

৪. settings.json এর মাধ্যমে Gemini CLI কনফিগারেশন
যদি আপনি জেমিনি চালানোর জন্য ক্লাউড শেল বেছে নেন, তাহলে জেমিনি সিএলআই-এর জন্য একটি ডিফল্ট থিম এবং প্রমাণীকরণ পদ্ধতি ইতিমধ্যেই আপনার জন্য নির্বাচিত এবং কনফিগার করা আছে।
আপনি যদি আপনার মেশিনে জেমিনি সিএলআই ইনস্টল করে প্রথমবারের মতো চালু করেন, তাহলে আপনি একটি থিম এবং তারপর একটি প্রমাণীকরণ পদ্ধতি নির্বাচন করেছেন।
এখন, পরবর্তীকালে Gemini CLI চালানোর সময়, আপনাকে আর কোনও থিম এবং প্রমাণীকরণ পদ্ধতি নির্বাচন করতে বলা হবে না। এর অর্থ হল এটি কোথাও স্থায়ী হচ্ছে এবং এটি যে ফাইলটি ব্যবহার করে তার নাম settings.json এবং এটি Gemini CLI কাস্টমাইজ করার উপায়।
সেটিংস নিম্নলিখিত অগ্রাধিকার সহ প্রয়োগ করা হয় (ক্লাউড শেল শুধুমাত্র ব্যবহারকারীর সেটিংস উপলব্ধ করে):
- সিস্টেম:
/etc/gemini-cli/settings.json(সকল ব্যবহারকারীর জন্য প্রযোজ্য, ব্যবহারকারী এবং কর্মক্ষেত্র সেটিংস ওভাররাইড করে)। - কর্মক্ষেত্র:
.gemini/settings.json(ব্যবহারকারীর সেটিংস ওভাররাইড করে)। - ব্যবহারকারী:
~/.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 ফাইলটি নিচে দেখানো হল। যদি আপনি অন্য কোনও থিম নির্বাচন করে থাকেন, তাহলে আপনি সেখানে নামটি দেখতে পেতেন।
{
"theme": "Default",
"selectedAuthType": "oauth-personal" or "cloud-shell"
}
৫. জেমিনি সিএলআই-এর সাথে আমাদের প্রথম মিথস্ক্রিয়া
চলুন জেমিনি সিএলআই দিয়ে শুরু করি এবং নীচে দেখানো হিসাবে আপনার প্রথম কোয়েরিটি টাইপ করি:
Give me a famous quote on Artificial Intelligence and who said that?
প্রত্যাশিত প্রতিক্রিয়া নীচে দেখানো হয়েছে:
GoogleSearch Searching the web for: "famous quote on Artificial Intelligence and who said it" ...
Search results for "famous quote on Artificial Intelligence and who said it" returned.
✦ "The development of full artificial intelligence could spell the end of the human race." - Stephen Hawking.
আপনি লক্ষ্য করবেন যে আমাদের প্রশ্নের ফলে একটি GoogleSearch টুল (Gemini CLI-তে একটি অন্তর্নির্মিত টুল) ব্যবহার করা হয়েছে। অন্য কথায়, আপনি ইতিমধ্যেই Gemini CLI-এর একটি শক্তিশালী অন্তর্নির্মিত টুল ব্যবহার করেছেন, যার নাম GoogleSearch যা ওয়েব থেকে প্রাপ্ত তথ্যের উপর ভিত্তি করে তার প্রতিক্রিয়া তৈরি করে। আপনি পরবর্তী বিভাগে Tools সম্পর্কে আরও জানতে পারবেন।
জেমিনি সিএলআই এবং এটি যে বিভিন্ন কমান্ড সমর্থন করে তা বোঝার একটি দ্রুত উপায় হল /help (ফরওয়ার্ড স্ল্যাশ) টাইপ করা এবং আপনি বিভিন্ন কমান্ড এবং কীবোর্ড শর্টকাট দেখতে পাবেন।
আপাতত Gemini CLI বন্ধ করে দেওয়া যাক। আপনি /quit কমান্ডের মাধ্যমে এটি করতে পারেন অথবা ইন্টারেক্টিভ Gemini CLI টার্মিনাল সেশনে দুবার Ctrl-C করতে পারেন।
৬. জেমিনি সিএলআই - কমান্ড প্যারামিটার
জেমিনি সিএলআই শুরু করার সময় কয়েকটি কমান্ড লাইন প্যারামিটার প্রদান করা যেতে পারে। বিকল্পগুলির সম্পূর্ণ তালিকা পেতে, আপনি নীচে দেখানো --help ব্যবহার করতে পারেন।
gemini --help
এটিতে উপলব্ধ বিকল্পগুলির সম্পূর্ণ পরিসর দেখানো উচিত। আপনাকে এখানে ডকুমেন্টেশনগুলি পড়ার জন্য উৎসাহিত করা হচ্ছে।
আসুন আমরা তাদের কয়েকটি দেখে নিই। প্রথমটি হল প্রো অথবা ফ্ল্যাশ মডেল ব্যবহার করার জন্য জেমিনি সিএলআই কনফিগার করা। বর্তমানে, এই ল্যাবটি লেখার সময়, এই দুটি মডেলই সমর্থিত। ডিফল্টরূপে জেমিনি ২.৫ প্রো মডেলটি ব্যবহার করা হয়, তবে আপনি যদি ফ্ল্যাশ মডেল ব্যবহার করতে চান, তাহলে আপনি নীচে দেখানো -m প্যারামিটারের মাধ্যমে জেমিনি সিএলআই শুরু করার সময় এটি করতে পারেন:
gemini -m "gemini-2.5-flash"
আপনি লক্ষ্য করবেন যে আপনি যদি উপরের পদ্ধতিতে শুরু করেন, তাহলে আপনি নীচে দেখানো জেমিনি সিএলআই টার্মিনালের নীচে ডানদিকে মডেলটি পরীক্ষা করতে পারেন:

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

নন-ইন্টারেক্টিভ মোড
একটি আকর্ষণীয় বিকল্প হল নন-ইন্টারেক্টিভ মোডে জেমিনি সিএলআই চালানো। এর অর্থ হল আপনি সরাসরি এটিকে প্রম্পটটি সরবরাহ করবেন এবং এটি এগিয়ে যাবে এবং জেমিনি সিএলআই ইন্টারেক্টিভ টার্মিনালটি না খুলেই এতে সাড়া দেবে। আপনি যদি স্ক্রিপ্ট বা অন্য কোনও অটোমেশন প্রক্রিয়ার অংশ হিসাবে জেমিনি সিএলআইকে স্বয়ংক্রিয়ভাবে ব্যবহার করার পরিকল্পনা করেন তবে এটি খুবই কার্যকর। আপনি নীচে দেখানো হিসাবে জেমিনি সিএলআইকে প্রম্পট সরবরাহ করতে -p প্যারামিটার ব্যবহার করতে পারেন অথবা প্রম্পট দেওয়ার জন্য কেবল অবস্থানগত যুক্তি ব্যবহার করতে পারেন।
gemini "What is the gcloud command to deploy to Cloud Run"
মনে রাখবেন যে পরবর্তী প্রশ্নগুলির সাথে কথোপকথন চালিয়ে যাওয়ার কোনও সুযোগ নেই। এই মোডটি আপনাকে সরঞ্জামগুলি (WriteFile সহ) অনুমোদন করার বা শেল কমান্ড চালানোর অনুমতি দেয় না।
৭. জেমিনি সিএলআই - অন্তর্নির্মিত সরঞ্জাম
জেমিনি সিএলআই-এর সাথে কিছু বিল্ট-ইন টুল রয়েছে এবং টুল ডকুমেন্টেশনে বলা হয়েছে, "জেমিনি মডেল আপনার স্থানীয় পরিবেশের সাথে যোগাযোগ করতে, তথ্য অ্যাক্সেস করতে এবং ক্রিয়া সম্পাদন করতে এই টুলগুলি ব্যবহার করে। এই টুলগুলি সিএলআই-এর ক্ষমতা বৃদ্ধি করে, এটি টেক্সট জেনারেশনের বাইরে যেতে এবং বিস্তৃত কাজে সহায়তা করতে সক্ষম করে।"
বর্তমান বিল্ট-ইন টুলের তালিকা পেতে, নীচের চিত্রের মতো /tools কমান্ডটি ব্যবহার করুন:
Available Gemini CLI tools:
- Codebase Investigator Agent (codebase_investigator)
- Edit (replace)
- FindFiles (glob)
- GoogleSearch (google_web_search)
- ReadFile (read_file)
- ReadFolder (list_directory)
- SaveMemory (save_memory)
- SearchText (search_file_content)
- Shell (run_shell_command)
- WebFetch (web_fetch)
- WriteFile (write_file)
- WriteTodos (write_todos)
আপনার মনে একটা জিনিস অবিলম্বে আসা উচিত, তা হল নিজেকে জিজ্ঞাসা করা যে জেমিনি সিএলআই কি এই টুলগুলিকে যখন ইচ্ছা তখনই কল করতে পারে? ডিফল্ট উত্তর হল না , যখন সংবেদনশীল অপারেশনগুলির কথা আসে যেখানে স্থানীয় সিস্টেমে লেখা, বহিরাগত সিস্টেম থেকে পড়া, বহিরাগত নেটওয়ার্কে যাওয়া ইত্যাদি অন্তর্ভুক্ত থাকতে পারে।
CLI শুরু করার সময় --yolo পাওয়া যায় (সাধারণত সুপারিশ করা হয় না), আপনি দেখতে পাবেন যে 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 টুল ব্যবহার করে, যেমনটি নীচে দেখানো হয়েছে:
GoogleSearch Searching the web for: "latest finance headlines today"
Search results for "latest finance headlines today" returned.
একবার এটি হয়ে গেলে, এটি ফাইলে এটি লেখার জন্য প্রস্তুত এবং এটি WriteFile টুল ব্যবহার করবে, কিন্তু যেহেতু এটি একটি সংবেদনশীল অপারেশন ( write ), এটি আপনার অনুমতি চাইবে। আপনি অনুমতির ধরণ নির্ধারণ করতে পারেন যেমন allow once, always, ইত্যাদি। এগিয়ে যান এবং allow once নির্বাচন করুন।

এরপর এটি ফাইলে তথ্য লিখবে এবং একটি সাফল্যের বার্তা নীচে দেখানো হবে:
✦ I have successfully saved the latest finance headlines into the file finance-news-today.txt.
ফাইলটি লেখা আছে কিনা তা কীভাবে পরীক্ষা করবেন? আপনি @file ব্যবহার করে কন্টেন্টটি পড়তে বলতে পারেন। আপনি @ টাইপ করার সাথে সাথে এটি বর্তমান ফোল্ডারে থাকা ফাইলগুলির একটি তালিকা প্রদর্শন করে এবং এটিতে তৈরি করা ফাইলটি দেখানো হয়েছে। এটি নির্বাচন করুন এবং প্রম্পটটি জমা দিন। আমার প্রম্পটটি নীচে দেখানো হয়েছে:
read the contents of @finance-news-today.txt
এর ফলে প্রয়োজনীয় টুল (ReadManyFiles, ReadFile) ব্যবহার করা হবে এবং কন্টেন্টগুলো নীচে দেখানো পদ্ধতিতে প্রদর্শিত হবে:

৮. জেমিনি সিএলআই - শেল মোড
জেমিনি সিএলআই-এর মধ্যে থেকে শেলের সাথে সরাসরি কাজ করার পদ্ধতি শেখার জন্য এটি একটি ভালো সময়। আপনি মেসেজ বক্সে ! টিপে শেল মোডে যেতে পারেন। এটি শেল মোডে টগল করবে। আপনি আবার ! টিপে অথবা ESC কী টিপে ফিরে আসতে পারেন।
শেল মোডে থাকাকালীন, আপনি প্রম্পটের শুরুতে ! দেখতে পাবেন যা নীচে দেখানো হয়েছে:

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

আপনি আজই cat কমান্ডের মাধ্যমে ফাইলের বিষয়বস্তু প্রিন্ট করতে পারবেন।

ব্যায়াম : এখানে চেষ্টা করার জন্য একটি ছোট অনুশীলনী দেওয়া হল। আপনার পছন্দের একটি RSS ফিড বেছে নিন। RSS ফিডের বিষয়বস্তু আনতে এবং আপনার জন্য ফলাফলগুলিকে একটি নির্দিষ্ট উপায়ে ফর্ম্যাট করার জন্য Gemini CLI-কে অনুরোধ করুন। দিনের শুরুতে কোনও কিছু স্বয়ংক্রিয় করার এটি একটি ভাল উপায়। আপনি এমনকি 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.
এই প্রম্পটটি আদর্শভাবে প্রথমে Google Cloud Platform RSS ফিড খুঁজে বের করার জন্য GoogleSearch টুলটি ব্যবহার করবে এবং তারপর এটি WebFetch টুল ব্যবহার করে RSS ফিডের বিষয়বস্তু খুঁজে বের করবে এবং সেগুলি প্রদর্শন করবে।
৯. জেমিনি সিএলআই এক্সটেনশন
ডকুমেন্টেশনে যেমন বলা হয়েছে, জেমিনি সিএলআই এক্সটেনশন প্যাকেজ প্রম্পট, এমসিপি সার্ভার এবং কাস্টম কমান্ডগুলিকে একটি পরিচিত এবং ব্যবহারকারী-বান্ধব ফর্ম্যাটে রূপান্তরিত করা হয়েছে। এক্সটেনশনের সাহায্যে, আপনি জেমিনি সিএলআই-এর ক্ষমতা প্রসারিত করতে পারেন এবং সেই ক্ষমতাগুলি অন্যদের সাথে ভাগ করে নিতে পারেন। এটি জেমিনি সিএলআই-এর কার্যকারিতাকে এর অন্তর্নির্মিত সরঞ্জামগুলির বাইরেও প্রসারিত করার প্রাথমিক প্রক্রিয়া।
এক্সটেনশন হলো একটি স্বয়ংসম্পূর্ণ, সংস্করণযোগ্য এবং সহজে বিতরণযোগ্য প্যাকেজ। এটিকে আপনার জেমিনি CLI কাস্টমাইজেশনের জন্য "শিপিং কন্টেইনার" হিসেবে ভাবুন, যা একটি নির্দিষ্ট কর্মপ্রবাহের জন্য প্রয়োজনীয় সবকিছুকে একটি একক, সুন্দর প্যাকেজে একত্রিত করে।

একটি এক্সটেনশন নিম্নলিখিত যেকোনো সমন্বয়কে একত্রিত করতে পারে:
- কাস্টম স্ল্যাশ কমান্ড (আপনার .toml ফাইল)।
- MCP সার্ভার কনফিগারেশন (যা পূর্বে settings.json-এ থাকত)।
- মডেলটিকে নির্দিষ্ট নির্দেশাবলী এবং নির্দেশিকা প্রদানের জন্য কনটেক্সট ফাইল (GEMINI.md)।
- একটি নিরাপদ, আরও মনোযোগী পরিবেশ তৈরি করতে টুল সীমাবদ্ধতা (টুল বাদে)।
এক্সটেনশন গ্যালারি ঘুরে দেখুন
এক্সটেনশন গ্যালারি হল সমস্ত অফিসিয়াল গুগল-নির্মিত এবং তৃতীয় পক্ষের এক্সটেনশন আবিষ্কারের কেন্দ্রীয় বাজার:
- আপনার ব্রাউজারে নিম্নলিখিত URL টি খুলুন:
https://geminicli.com/extensions/browse/। - এই গ্যালারিটি ইকোসিস্টেমের আবিষ্কারযোগ্যতা ইঞ্জিন। আপনি GitHub, Redis এবং DynaTrace এর মতো কোম্পানিগুলির এক্সটেনশনগুলি দেখতে পারেন, যা উপলব্ধ সরঞ্জামগুলির বিস্তৃতি দেখায়।
- নিচে স্ক্রোল করুন এবং ক্লাউড রানের এক্সটেনশন কার্ডটি খুঁজুন।
- লক্ষ্য করুন যে কার্ডটিতে একটি বিবরণ, লেখক (গুগল) এবং একটি এক-ক্লিক
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 listকমান্ডটি চালান: - আপনার নিম্নলিখিত আউটপুটটি দেখতে হবে, যা নিশ্চিত করবে যে কোনও এক্সটেনশন এখনও ইনস্টল করা হয়নি।
No extensions installed.
গিথুব এমসিপি সার্ভার কনফিগার করা হচ্ছে
জেমিনি সিএলআই এক্সটেনশনের একটি প্রকার হল এমসিপি সার্ভার। এমসিপি সার্ভার হল এমন একটি অ্যাপ্লিকেশন যা মডেল কনটেক্সট প্রোটোকলের মাধ্যমে জেমিনি সিএলআই-এর কাছে সরঞ্জাম এবং সংস্থানগুলি প্রকাশ করে, যা এটিকে বহিরাগত সিস্টেম এবং ডেটা উত্সগুলির সাথে ইন্টারঅ্যাক্ট করার অনুমতি দেয়। এমসিপি সার্ভারগুলি জেমিনি মডেল এবং আপনার স্থানীয় পরিবেশ বা এপিআই-এর মতো অন্যান্য পরিষেবার মধ্যে একটি সেতু হিসাবে কাজ করে।
আমাদের কাছে Gethub MCP সার্ভারটি Gemini Extensions Gallery তে পাওয়া যাচ্ছে । এটিতে ক্লিক করলে Extensions কার্ডটি খুলবে, যেখানে আপনি এক্সটেনশনটি ইনস্টল করার কমান্ডটিও দেখতে পাবেন:

কেবল এটি অনুলিপি করুন অথবা নীচের কমান্ডটি ব্যবহার করুন:
gemini extensions install https://github.com/github/github-mcp-server
প্রয়োজনীয় অনুমতি নিয়ে এগিয়ে যান। ইনস্টল করার পরে, আপনি যখন gemini extensions list কমান্ড দেবেন তখন এক্সটেনশনের তালিকায় এই এক্সটেনশনটি উপলব্ধ দেখতে পাবেন।
✓ github (1.0.0)
ID: faa318861b48de8d83c95eb8cd5e82c02393493978d198a0e7bf67fcb1bd22cb
name: c0b0109d9439de57fe3cf03abeccbc52f4c98170c732d3b69af5e6395ace574e
Path: /home/romin/.gemini/extensions/github
Source: https://github.com/github/github-mcp-server (Type: git)
Enabled (User): true
Enabled (Workspace): true
MCP servers:
github
আপনি এক্সটেনশনের পাথ দেখতে পাবেন এবং সেই ফোল্ডারে, আপনার কাছে gemini-extension.json নামে একটি ফাইল থাকবে, যার বিষয়বস্তু নীচে দেখানো হয়েছে:
{
"name": "github",
"version": "1.0.0",
"mcpServers": {
"github": {
"description": "--description–",
"httpUrl": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "Bearer $GITHUB_MCP_PAT"
}
}
}
}
আপনি লক্ষ্য করবেন যে এতে একটি এনভায়রনমেন্ট ভেরিয়েবলের মাধ্যমে পার্সোনাল অ্যাক্সেস টোকেন (PAT) পড়া হচ্ছে। প্রথমে আপনার Github থেকে একটি পার্সোনাল অ্যাক্সেস টোকেন (PAT) থাকা প্রয়োজন। একবার আপনার কাছে এটি হয়ে গেলে, নিশ্চিত করুন যে আপনি একটি .env ফাইল সম্পূর্ণরূপে তৈরি করেছেন এবং সেখানে এই মানটি রেখেছেন অথবা নিম্নরূপ একটি এনভায়রনমেন্ট ভেরিয়েবল তৈরি করেছেন ( PAT_VALUE প্রকৃত মান দিয়ে প্রতিস্থাপন করুন):
export GITHUB_MCP_PAT=PAT_VALUE
আপনার Gemini CLI পুনরায় চালু করা উচিত। এটি চালু হয়ে গেলে, আপনি /mcp list কমান্ড ব্যবহার করে MCP সার্ভার এবং তাদের উপলব্ধ সরঞ্জামগুলির তালিকা দেখতে পারেন। আপনি GitHub MCP সার্ভারটি সবুজ রঙে দেখানো এবং এর সরঞ্জামগুলি (30+) দেখতে সক্ষম হবেন। নীচে একটি আংশিক তালিকা দেখানো হয়েছে:
🟢 গিটহাব (গিটহাব থেকে) - প্রস্তুত (৪০টি টুল)
সরঞ্জাম:
- পর্যালোচনার_মুলতুবি_তে_মন্তব্য_যোগ করুন
- ইস্যু_মন্তব্য_যোগ করুন
- ইস্যুতে_সহ-পাইলট_অ্যাসাইন করুন
- create_branch সম্পর্কে
- ফাইল তৈরি করুন অথবা আপডেট করুন
- তৈরি_টান_অনুরোধ
- সংগ্রহস্থল তৈরি করুন
- ফাইল মুছে ফেলুন
- ফর্ক_রিপোজিটরি
- কমিট করুন
- ফাইলের_বিষয়বস্তু_পান
- লেবেল পান
- সর্বশেষ_প্রকাশ_পান
- আমাকে পেতে দাও
- ট্যাগের মাধ্যমে_মুক্তি_পান
- ট্যাগ পান
- দলের_সদস্যদের_পান
- দল_পান
- ইস্যু_পড়া
চলুন শুরু করা যাক একটি প্রম্পট দিয়ে যা Github MCP সার্ভার থেকে যেকোনো একটি টুল ব্যবহার করবে। নিম্নলিখিত প্রম্পটটি দিন (GitHub-এ আমি কে?)। এর ফলে Gemini CLI সঠিক টুলটি নির্বাচন করবে এবং আপনার অনুমতি চাইবে।

একবার আপনি এগিয়ে যাওয়ার অনুমতি দিলে, এটি নীচে দেখানো ফলাফলটি পুনরুদ্ধার করবে:
✦ You are rominirani, a Developer Advocate at Google Cloud, located in Mumbai. You have 125 public repositories and 256 followers.
এখন তোমার গিথুব প্রকল্পগুলির একটিতে কাজ করা উচিত। তোমার প্রশ্নগুলো স্বাভাবিক ভাষায় দাও যেমন:
- আমাকে <repo-name> এর বর্ণনা দাও?
- আমার স্থানীয় মেশিনে <repo-name> ক্লোন করুন।
- @<file-name> অথবা @<directory-name>/ বর্ণনা করুন
- এই সংগ্রহস্থলের বিভিন্ন উপাদান কী কী?
- আমি প্রয়োজনীয় পরিবর্তন করেছি। আপনি কি পরিবর্তনগুলো গিথুবে পুশ করতে পারেন এবং গিথুব এমসিপি সার্ভার টুল ব্যবহার করে তা করতে পারেন?
Github MCP সার্ভারের সাথে কাজ করার জন্য একটি অনুশীলনী আপনি ল্যাবে পরে বিস্তারিতভাবে পাবেন।
ক্লাউড রান এমসিপি সার্ভার কনফিগার করা হচ্ছে
জেমিনি সিএলআই এক্সটেনশন গ্যালারিতে উপলব্ধ ক্লাউড রান এক্সটেনশনটি একটি এমসিপি সার্ভার যা আমাদের অ্যাপ্লিকেশনগুলিকে ক্লাউড রানে স্থাপন করতে দেয়।
এক্সটেনশন গ্যালারির ক্লাউড রান এক্সটেনশন কার্ডটি নীচে দেখানো হয়েছে:

প্রথমে উপরে দেখানো Copy install কমান্ডে ক্লিক করে Cloud Run Extension ইনস্টল করা যাক। তারপর সেই কমান্ডটি Cloud Shell টার্মিনালে পেস্ট করুন (এটি নিম্নলিখিতগুলির মতো হওয়া উচিত):
gemini extensions install https://github.com/GoogleCloudPlatform/cloud-run-mcp
উপরের কমান্ডটি চালানোর পরে, আপনার কাছ থেকে একটি নিশ্চিতকরণ প্রয়োজন হবে। এগিয়ে যান এবং এটিকে আপনার অনুমোদন দিন। এরপর ক্লাউড রান এক্সটেনশনটি সফলভাবে ইনস্টল হবে।
এখন যদি আপনি gemini extensions list কমান্ডটি কার্যকর করেন, তাহলে আপনি নীচের চিত্রের মতো ক্লাউড রান এক্সটেনশনটি ইনস্টল করা দেখতে পাবেন:
✓ cloud-run (1.0.0)
ID: 3c1a38909b6d7d90b6acc8ca1e80d97b4a867253a3cd12d841b2aab4e556a58f
name: 0b1820c1f0c043bbb3b54f496d862c02172424c930eb965d61f468be52e6f127
Path: /home/romin/.gemini/extensions/cloud-run
Source: https://github.com/GoogleCloudPlatform/cloud-run-mcp (Type: git)
Enabled (User): true
Enabled (Workspace): true
Context files:
/home/romin/.gemini/extensions/cloud-run/gemini-extension/GEMINI.md
MCP servers:
cloud-run
যদি আপনি এখনই Gemini CLI চালু করেন এবং /mcp list কমান্ডটি কার্যকর করেন, তাহলে আপনি নিম্নলিখিতটি দেখতে পাবেন:
🟢 cloud-run (from cloud-run) - Ready (8 tools, 2 prompts)
Tools:
- create_project
- deploy_container_image
- deploy_file_contents
- deploy_local_folder
- get_service
- get_service_log
- list_projects
- list_services
Prompts:
- deploy
- logs
উপরে কয়েকটি জেমিনি সিএলআই এক্সটেনশন রয়েছে যা আমরা কীভাবে কনফিগার করতে হয় তা দেখিয়েছি। আপনি এক্সটেনশন গ্যালারিতে আরও কিছু আবিষ্কার করতে পারেন অথবা " জেমিনি সিএলআই এক্সটেনশন দিয়ে শুরু করা " কোডল্যাবও করতে পারেন।
১০. চেষ্টা করার জন্য কেস ব্যবহার করুন
জেমিনি সিএলআই বিভিন্ন ধরণের ব্যবহারের ক্ষেত্রে প্রয়োগ করা যেতে পারে যা ডেভেলপার এবং নন-ডেভেলপার উভয়ের ক্ষেত্রেই প্রযোজ্য। এখানে কয়েকটি পরিস্থিতি উপস্থাপন করা হল এবং আপনার আগ্রহের ক্ষেত্রের উপর নির্ভর করে, আপনি যেকোনো একটি বা সবগুলি চেষ্টা করে দেখতে পারেন।
এই প্রতিটি ক্ষেত্রে, প্রম্পট প্রদান করা হয়। আপনি জেমিনি CLI চালু করার সময় -p প্যারামিটারের মাধ্যমে জেমিনি CLI ইন্টারেক্টিভ মোডে অথবা নন-ইন্টারেক্টিভ মোডে এটি চেষ্টা করে দেখতে পারেন।
জেমিনি সিএলআই দিয়ে ভাইব কোডিং
আসুন একটি অ্যাপ্লিকেশন কোড করার জন্য জেমিনি সিএলআই ব্যবহার করি। এই কাজে, আপনি জেমিনি সিএলআইকে একটি অ্যাপ্লিকেশন তৈরি করতে বলবেন এবং তারপর প্রাথমিক সংস্করণটি একটি গিথুব রিপোজিটরিতে পুশ করবেন।
পূর্বশর্ত
এই বিভাগের কাজগুলি সম্পাদন করার জন্য, কয়েকটি পূর্বশর্ত রয়েছে:
- গিট
- Github Gemini CLI এক্সটেনশনের সাথে Gemini CLI (আমরা আগে এটি করেছি) অথবা যদি আপনি
gh( Github 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.
পরবর্তী কয়েকটি প্রম্পট এবং প্রতিক্রিয়া হল একটি নমুনা প্রবাহ যা পর্যবেক্ষণ করা হয়েছে। জেমিনি সিএলআই একটি পরিকল্পনা নিয়ে আসবে এবং আপনার কাছে কোনও নিশ্চিতকরণ / স্পষ্টীকরণের জন্য জিজ্ঞাসা করবে অথবা এগিয়ে যান। অনুগ্রহ করে নির্দেশাবলী অনুসরণ করুন। নমুনা হিসাবে, এটি আমার নমুনা কথোপকথন থ্রেড:
1. Backend (Node.js/Express):
* Set up an Express server to serve the static frontend files.
* Create an /api/schedule endpoint that will:
* Generate the event schedule dynamically, including talk timings and the lunch break, based on your requirements.
* Store mock talk data (title, speakers, category, description).
* Filter the schedule based on a category query parameter.
2. Frontend (HTML, CSS, JavaScript):
* Create an index.html file for the main structure.
* Develop style.css for a clean and responsive design.
* Write script.js to:
* Fetch the schedule data from the backend.
* Dynamically render the talks and lunch break on the page.
* Implement a search input that filters talks by category, updating the displayed schedule without a full page reload.
3. Schedule Logic:
* The backend will handle calculating the precise start and end times for each 1-hour talk, factoring in the 10:00 AM start, 10-minute transitions, and the 1-hour lunch break.
Before I proceed with the code, could you please clarify the following:
* Example Talk Data: Could you provide some example talk titles, speakers, categories (keywords), and descriptions? This will help me create realistic dummy data for the schedule.
* Lunch Break Placement: Where should the 1-hour lunch break be placed in the schedule? (e.g., after the 3rd talk, at 1 PM, etc.)
* Styling Preferences: Do you have any specific styling preferences (e.g., color scheme, modern/minimalist, etc.)? If not, I will go with a clean, simple design.
✦ I will create a single-page website for your event. Here's my plan:
✓ WriteTodos Set 7 todo(s)
✦ I am waiting for your clarifications regarding the example talk data, lunch break placement, and styling preferences before I proceed with generating the code.
অবশেষে, এটি আমাকে নিম্নলিখিত সারাংশ দিয়েছে:
✦ Instructions to Run and Test Locally:
1. Start the server:
Open your terminal in the project directory (/home/romin/gemini-cli-projects/event-website/) and run:
1 node server.js
You should see a message in the terminal indicating: Server running on http://localhost:3000.
2. Open in your browser:
Open your web browser and navigate to:
http://localhost:3000
3. Test functionality:
* You should see the event schedule displayed on the page, with talks and a lunch break.
* Search by category: In the "Search by category..." input box, type a category keyword (e.g., "AI", "Web Development", "Python", "Security").
* Click the "Search" button. The schedule displayed should filter to only show talks matching that category.
* Click the "Reset" button to clear the search filter and view the full schedule again.
Let me know if you encounter any issues or if you'd like to make any modifications or additions to the website!
সার্ভার চালু করার নির্দেশাবলী অনুসরণ করে হোম পেজে যাওয়ার পর, আমরা নীচে দেখানো একটি নমুনা সাইট পেয়েছি (যদি আপনি একই প্রম্পট ব্যবহার করেন তবে আপনি একই ধরণের সাইটের একটি রূপ দেখতে পাবেন):

জেমিনি সিএলআই-এর সাহায্যে আপনি আরও পরিবর্তন করতে পারবেন। একবার আপনি পরিবর্তনগুলি নিয়ে সন্তুষ্ট হয়ে গেলে, আপনি এটিকে গিথুব রিপোজিটরিতে ঠেলে দিতে পারেন।
প্রথমে, একটি .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
এটি এখানে বেশ কয়েকটি কমান্ডের মধ্য দিয়ে যাবে:
- সংগ্রহস্থল তৈরি করুন।
- এটি স্থানীয় গিট রিপোজিটরি পরিচালনা করতে একাধিক গিট কমান্ড ব্যবহার করবে: init, add, commit।
- এরপর এটি গিট রিমোট সেটআপ করবে এবং একটি পুশ করবে
দ্রষ্টব্য: এমন কিছু ঘটনা আছে যেখানে জেমিনি সিএলআই টাইমআউট হতে পারে অথবা ভুল ব্যবহারকারীর নাম ব্যবহার করতে পারে, ইত্যাদি। এর সাথে যোগাযোগ করুন এবং সমাধানের পরামর্শ দিন।
সবকিছু ঠিকঠাক থাকলে, আপনার কাছে একটি Github রিপোজিটরি থাকা উচিত। একটি নমুনা স্ক্রিনশট নীচে দেখানো হয়েছে:

মনে রাখবেন যে আপনি এই প্রকল্পের জন্য README.md তৈরি করেননি এবং এটি পরবর্তী বিভাগের জন্য একটি ভাল অনুশীলন, যেখানে আমরা এখন আপনার তৈরি করা এই সংগ্রহস্থলটি নিয়ে কাজ করব।
গিথুব রিপোজিটরিতে কাজ করার জন্য জেমিনি সিএলআই ব্যবহার করা
এই ব্যবহারের ক্ষেত্রে, আপনাকে Github রিপোজিটরির সাথে কাজ করার জন্য Gemini CLI ব্যবহার করতে হবে। আপনি একাধিক কাজ সম্পাদন করবেন যার মধ্যে রয়েছে:
- কোড বেস বোঝা
- ডকুমেন্টেশন তৈরি করা হচ্ছে
- একটি নতুন বৈশিষ্ট্য বাস্তবায়ন করা হচ্ছে
- পরিবর্তনগুলি কমিট করুন এবং রিপোজিটরিতে ফিরিয়ে আনুন
- একটি গিথুব ইস্যুতে কাজ করুন এবং প্রস্তাবিত পরিবর্তনগুলি বাস্তবায়ন করুন
এটি আপনাকে আপনার রিপোজিটরিগুলির সাথে কাজ করার জন্য এবং ডেভেলপার-নির্দিষ্ট কাজের জন্য সহকারী হিসেবে জেমিনি সিএলআই ব্যবহার করার জন্য একটি ভাল ভিত্তি প্রদান করবে।
পূর্বশর্ত
এই বিভাগের কাজগুলি সম্পাদন করার জন্য, আপনাকে নিম্নলিখিতগুলি করতে হবে:
- গিট
- Github MCP Gemini CLI এক্সটেনশনের সাথে Gemini CLI (আমরা আগে এটি করেছি) অথবা যদি আপনি
gh( Github CLI টুল ) সেট আপ করে থাকেন তবে এটিও কাজ করবে। - গিটের বেসিকগুলির সাথে পরিচিতি এবং প্রোগ্রামিং সম্পর্কে কিছুটা জ্ঞান (এই উদাহরণে আমরা Node.js ব্যবহার করব কারণ আপনার মেশিনে Gemini CLI ইনস্টল করার কারণে পরিবেশটি ইতিমধ্যেই প্রস্তুত থাকতে পারে)। তবে পরে আপনার পছন্দের একটি সংগ্রহস্থল বেছে নিতে দ্বিধা করবেন না, যেখানে একটি ভিন্ন প্রোগ্রামিং ভাষা এবং ফ্রেমওয়ার্ক থাকবে।
- তোমার পূর্ববর্তী অংশটি সম্পূর্ণ করা উচিত ছিল এবং সংগ্রহস্থলটি হাতের কাছে রাখা উচিত ছিল, যেখানে আমরা একটি ইভেন্ট টকস ওয়েবসাইট তৈরি করেছি।
ইভেন্ট টকস অ্যাপ্লিকেশন তৈরি করার জন্য আপনি যে ফোল্ডার/ডিরেক্টরি ব্যবহার করেছিলেন, সেখান থেকে জেমিনি সিএলআই ব্যবহার করা চালিয়ে যাওয়া যাক অথবা প্রয়োজনে, আপনি আপনার স্থানীয় মেশিনে রিপোজিটরিটি ক্লোন করতে পারেন এবং তারপর সেই ডিরেক্টরি থেকে জেমিনি সিএলআই শুরু করতে পারেন। নীচে তালিকাভুক্ত নিম্নলিখিত পরিস্থিতিগুলি চেষ্টা করে দেখুন:
কোড বেস বোঝা
- আমি এই প্রকল্পটি বিস্তারিতভাবে বুঝতে চাই। আমাকে প্রধান বৈশিষ্ট্যগুলি বুঝতে সাহায্য করুন এবং তারপর এটিকে সার্ভার এবং ক্লায়েন্ট সাইডে ভাগ করুন। একটি নমুনা প্রবাহ নিন এবং অনুরোধ এবং প্রতিক্রিয়া কীভাবে কাজ করে তা আমাকে দেখান।
-
Explain @server.js
একটি README ফাইল তৈরি করা হচ্ছে
- এই প্রকল্পের জন্য একটি
READMEফাইল তৈরি করুন।
একটি নতুন বৈশিষ্ট্য বাস্তবায়ন করা হচ্ছে
- আমি একটি নতুন বৈশিষ্ট্য বাস্তবায়ন করতে চাই যেখানে ব্যবহারকারী একটি নির্দিষ্ট স্পিকার দ্বারা অনুসন্ধান করার অনুমতি পাবেন। প্রথমে আমাকে এই পরিবর্তনটি কীভাবে বাস্তবায়ন করবেন তার একটি পরিকল্পনা দেখান এবং তারপরে আমরা কোড তৈরি করতে পারি।
এটি আপনাকে একটি পরিকল্পনা প্রদান করবে, যা আপনি অনুমোদন করতে পারবেন। অনুমোদনের পর, জেমিনি সিএলআই এগিয়ে যাবে এবং সেই পরিবর্তনগুলি করবে। আপনার পরিবর্তনগুলি পরীক্ষা করে দেখুন এবং যদি কোনও বাগ (সম্ভবত) থাকে, তাহলে জেমিনি সিএলআইকে এটি ঠিক করতে বলুন।
পরিবর্তনগুলি ভালো দেখা গেলে, আপনি কমিট করার জন্য একই ধাপগুলি অনুসরণ করতে পারেন এবং সেগুলিকে রিমোট রিপোজিটরিতে পুশ করতে পারেন।
প্রস্তাবিত বৈশিষ্ট্যগুলির উপর ভিত্তি করে সমস্যা তৈরি করুন
এখানে কিছু মজার চেষ্টা করা যাক। আপনি জেমিনি সিএলআইকে জিজ্ঞাসা করতে যাচ্ছেন যে এটি কীভাবে এই অ্যাপ্লিকেশনটির ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে পারে এবং এর মূল্যায়নের উপর ভিত্তি করে, এটি একই গিথুব সংগ্রহস্থলে সমস্যা হিসাবে সেই পরামর্শগুলি তৈরি করতে পারে। এটি গিথুব এমসিপি সার্ভার থেকে " create_issue " টুলটি ব্যবহার করবে।
নিম্নলিখিত প্রম্পটটি চেষ্টা করে দেখুন:
- আমি চাই আপনি ব্যবহারকারীর অভিজ্ঞতার দৃষ্টিকোণ থেকে অ্যাপ্লিকেশনটি মূল্যায়ন করুন। ব্যবহারের সহজতা, প্রতিক্রিয়াশীলতা, সহায়ক বার্তা এবং আরও অনেক কিছু। অনুগ্রহ করে উন্নতির একটি তালিকা তৈরি করুন এবং আমি চাই আপনি সেগুলি Github সংগ্রহস্থলে সমস্যা হিসাবে তৈরি করুন।
আদর্শভাবে এটি প্রথমে আপনার সাথে উন্নতিগুলি ভাগ করে নেবে এবং তারপর আপনার অনুমতি নিয়ে Github সংগ্রহস্থলে সমস্যাগুলি তৈরি করার জন্য এগিয়ে যাবে। আমাদের রান থেকে এখানে একটি নমুনা স্ক্রিনশট দেওয়া হল:

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

সম্পূর্ণ ইস্যু URL টি নিন এবং এইরকম একটি প্রম্পট দিন:
- অনুগ্রহ করে সমস্যাটি পড়ুন:
<YOUR_ISSUE_URL>এবং কী পরিবর্তন করা প্রয়োজন তা বুঝুন। প্রথমে পরিকল্পনাটি নিয়ে আলোচনা করুন এবং তারপর কোডে প্রস্তাবিত পরিবর্তনগুলি দেখান।
পরিবর্তনগুলি অনুমোদন করতে এবং সেগুলি সংগ্রহস্থলে পাঠাতে দ্বিধা করবেন না। এমনকি আপনি সমস্যাটি বন্ধ করতেও বলতে পারেন।
(ঐচ্ছিক) দৈনন্দিন কাজ
নিচে দেওয়া ব্যবহারের ক্ষেত্রে এমন কাজগুলি রয়েছে যা আপনি নিয়মিত করতে পারেন। এর মধ্যে রয়েছে ফোল্ডারে ফাইল সাজানো, ওয়েব থেকে কন্টেন্ট আনা এবং সারসংক্ষেপ করা, ইমেজ ফাইল প্রক্রিয়াকরণ এবং সেগুলো থেকে কন্টেন্ট বের করা, ডাটাবেস নিয়ে কাজ করা এবং আরও অনেক কিছু।
আপনার পছন্দের যেকোনো ব্যবহারের ক্ষেত্রে নির্দ্বিধায় অন্বেষণ করুন।
ফাইল/ফোল্ডার সংগঠিত করা
প্রয়োজন অনুসারে বিভিন্ন ফোল্ডারের ধরণের উপর নির্ভর করে ফাইলগুলি সাজানোর জন্য আপনি জেমিনি সিএলআই ব্যবহার করতে পারেন। আপনার মেশিনের এমন একটি ফোল্ডারে যান যেখানে .txt, .png, .jpg, .pdf, .mp4 এবং অন্যান্য ফাইল রয়েছে। এটি সম্ভবত আপনার ডেস্কটপ অথবা আপনার ডাউনলোড ফোল্ডার হতে পারে।
এখানে একটি নমুনা ফোল্ডার এবং ফোল্ডারের বিষয়বস্তু নীচে দেখানো হয়েছে (আপনার অন্যান্য ফাইল থাকতে পারে):

সেই ফোল্ডারে যান এবং 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.
ফোল্ডারের চূড়ান্ত অবস্থা কেমন হওয়া উচিত তার একটি উদাহরণ নিচে দেখানো হল। আপনি নতুন সাব-ফোল্ডার তৈরি এবং ফাইলগুলিকে তাদের ধরণের উপর নির্ভর করে সংশ্লিষ্ট সাব-ফোল্ডারে স্থানান্তরিত দেখতে পাবেন।

আরও কিছু আয়োজনের দৃশ্যকল্প (প্রতিটি দৃশ্যকল্পের পাশে প্রম্পটগুলি দেওয়া আছে):
- সারসংক্ষেপ: 'ডকুমেন্টস' ফোল্ডারের প্রতিটি ডকুমেন্টের জন্য, 'summary_ORIGINAL_FILENAME.txt' নামে একই ফোল্ডারে একটি txt ফাইল তৈরি করুন যাতে ডকুমেন্টের মূল বিষয়গুলির 3-বাক্যের সারসংক্ষেপ থাকে।
- প্রকার অনুসারে শ্রেণীবদ্ধকরণ: এই ডিরেক্টরিতে থাকা সমস্ত PDF এবং DOCX ফাইল স্ক্যান করুন। "ইনভয়েস" নাম বা বিষয়বস্তু সহ সমস্ত ফাইল 'ফাইনান্সিয়াল/ইনভয়েস' ফোল্ডারে সরান। "রসিদ" সহ ফাইলগুলি 'ফাইনান্সিয়াল/রসিদ'-এ সরান। অন্য যেকোনো .docx ফাইল 'রিপোর্ট'-এ যায়।
- মূল তথ্য বের করা (এবং "ট্যাগিং"): 'আর্থিক/ইনভয়েস' ফোল্ডারে প্রতিটি পিডিএফ ফাইলের জন্য, তার বিষয়বস্তু পড়ুন। যদি আপনি একটি তারিখ খুঁজে পান, তাহলে ফাইলটির নাম পরিবর্তন করে 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' নামে একটি টেক্সট ফাইলে সংরক্ষণ করুন।
- ডুপ্লিকেট শনাক্ত করুন (ধারণাগত, আরও উন্নত যুক্তির প্রয়োজন): এই ফোল্ডারে থাকা যেকোনো ডুপ্লিকেট ছবি তাদের ভিজ্যুয়াল কন্টেন্টের উপর ভিত্তি করে খুঁজুন এবং তাদের ফাইলের নাম তালিকাভুক্ত করুন। এখনও মুছে ফেলবেন না।
নিবন্ধের সারসংক্ষেপ (স্থানীয় ফাইল বা ওয়েব)
নিচের প্রতিটি পরিস্থিতিতে, URL, আগ্রহের বিষয় এবং প্রযোজ্য ক্ষেত্রে স্থানীয় ফাইলের নাম পরিবর্তন করতে দ্বিধা করবেন না। প্রদত্ত ফাইলের নামগুলি নমুনা ফাইলের নাম, আপনি আপনার সিস্টেমে থাকা ফাইলের নাম দিয়ে সেগুলি প্রতিস্থাপন করতে পারেন।
নিম্নলিখিত যেকোনো একটি পরিস্থিতি চেষ্টা করে দেখুন (প্রতিটি দৃশ্যের পাশে প্রম্পটগুলি দেওয়া আছে):
- একটি ওয়েব নিবন্ধের সারসংক্ষেপ (একক URL): https://medium.com/google-cloud/getting-started-with-gemini-cli-8cc4674a1371 এ যান এবং এই সংবাদ নিবন্ধ থেকে শীর্ষ 3টি গুরুত্বপূর্ণ বিষয় সংক্ষেপে আলোচনা করুন।
- একাধিক ওয়েব নিবন্ধের সারসংক্ষেপ তৈরি করুন (যেমন, একটি অনুসন্ধান থেকে): গুগল অনুসন্ধান ব্যবহার করে "জেমিনি সিএলআই" সম্পর্কে সর্বশেষ সংবাদ নিবন্ধগুলি খুঁজুন। শীর্ষ ৫টি প্রাসঙ্গিক নিবন্ধের জন্য, প্রতিটি ২-৩ বাক্যে সারসংক্ষেপ করুন এবং তাদের URL তালিকাভুক্ত করুন।
- একটি স্থানীয় টেক্সট ফাইলের সারসংক্ষেপ করুন: 'my_research_paper.txt'-এ প্রবন্ধের মূল বিষয়গুলি সারসংক্ষেপ করুন। পদ্ধতি এবং সিদ্ধান্তের উপর মনোযোগ দিন।
- একটি স্থানীয় PDF ফাইলের সারসংক্ষেপ তৈরি করুন: 'financial_report_Q2_2025.pdf' পড়ুন। উল্লেখিত আর্থিক কর্মক্ষমতা এবং মূল চ্যালেঞ্জগুলির একটি সারসংক্ষেপ প্রদান করুন।
নির্দিষ্ট তথ্য (স্থানীয় ফাইল বা ওয়েব) বের করা
নিচের প্রতিটি পরিস্থিতিতে, URL, আগ্রহের বিষয় এবং প্রযোজ্য ক্ষেত্রে স্থানীয় ফাইলের নাম পরিবর্তন করতে দ্বিধা করবেন না। প্রদত্ত ফাইলের নামগুলি নমুনা ফাইলের নাম, আপনি আপনার সিস্টেমে থাকা ফাইলের নাম দিয়ে সেগুলি প্রতিস্থাপন করতে পারেন।
নিম্নলিখিত যেকোনো একটি পরিস্থিতি চেষ্টা করে দেখুন (প্রতিটি দৃশ্যের পাশে প্রম্পটগুলি দেওয়া আছে):
- Extract entities from a local article: From 'biography.txt', list all named individuals and the significant dates associated with them.
- Extract data from a table in a PDF: In 'quarterly_sales.pdf', extract the data from the table on page 3 that shows "Product Sales by Region" and present it in a Markdown table format.
- Extract news headlines and sources from a news website: Go to 'https://news.google.com/' (or a similar news site). Extract the main headlines from the front page and their corresponding news sources. Present them as a bulleted list.
- Find product specifications from an e-commerce page: Browse to 'https://www.amazon.in/Google-Cloud-Certified-Associate-Engineer/dp/1119871441' (example for a book). Extract the book title, author and other details. Present this in a structured JSON format.
- Extract duration from a video , in a certain format (eg "2h37m42s").
Answering Questions based on Content (RAG-like behavior)
For each of the scenarios below, feel free to change the url, topic of interest and the local file names as applicable. The filenames provided are sample file names, you can replace them with filenames of files that you have on your system.
Try out any of the following scenarios (the prompts are given next to each scenario):
- Q&A on a local document: I'm attaching 'user_manual.pdf'. What are the steps to troubleshoot network connectivity issues?
- Q&A on a web page: Using the content from 'https://www.who.int/news-room/fact-sheets/detail/climate-change-and-health', what are the primary health risks associated with climate change according to WHO?
- Compare information across multiple sources: I have two news articles: 'article1.txt' and 'article2.txt', both discussing the recent economic policy changes. Compare and contrast their views on the potential impact on small businesses.
Content Generation based on Extracted Information
For each of the scenarios below, feel free to change the url, topic of interest and the local file names as applicable.
Try out any of the following scenarios (the prompts are given next to each scenario):
- Generate a news brief from an article: Read @tech_innovation_article.txt. Write a short, engaging news brief (around 150 words) suitable for a company newsletter, highlighting the new technology and its potential.
- Draft an email summarizing a meeting transcript: Here is a meeting transcript file: @meeting_transcript.txt. Draft an email to the team summarizing the key decisions made and action items assigned, including who is responsible for each.
Gemini CLI multi-modal support
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:

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:

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:
- macOS: SQLite3 comes pre-installed. Verify with
sqlite3 --version. If needed, install with Homebrew:brew install sqlite3. - 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. - 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:

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:

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

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).
11. Congratulations
Congratulations, you've successfully explored Gemini CLI, its capabilities and applied it to a few use cases.