১. ভূমিকা
এই কোডল্যাবে আপনি জেমিনি সিএলআই (Gemini CLI) সম্পর্কে জানতে পারবেন, যা একটি ওপেন-সোর্স এআই এজেন্ট এবং এটি জেমিনির ক্ষমতা সরাসরি আপনার টার্মিনালে নিয়ে আসে।
আপনি যা শিখবেন
- জেমিনি সিএলআই ইনস্টল এবং কনফিগার করা
- Gemini CLI-তে টুলস ও বিল্ট-ইন কমান্ড অন্বেষণ এবং MCP সার্ভার কনফিগার করা
-
GEMINI.mdফাইলের মাধ্যমে Gemini CLI কাস্টমাইজ করা - Gemini CLI দিয়ে কয়েকটি ব্যবহারের ক্ষেত্র অন্বেষণ করা হচ্ছে
আপনার যা যা লাগবে
এই কোডল্যাবটি সম্পূর্ণভাবে গুগল ক্লাউড শেল-এর মধ্যেই চালানো যায়, যেখানে জেমিনি সিএলআই আগে থেকেই ইনস্টল করা থাকে।
বিকল্পভাবে, যদি আপনি নিজের মেশিনে কাজ করতে পছন্দ করেন, তবে স্থানীয়ভাবে Gemini CLI ইনস্টল করার জন্য একটি বিভাগ রয়েছে।
আপনার নিম্নলিখিত জিনিসগুলির প্রয়োজন হবে:
- ক্রোম ওয়েব ব্রাউজার
- একটি জিমেইল অ্যাকাউন্ট
এই কোডল্যাবটি সকল স্তরের (শিক্ষানবিশ সহ) ব্যবহারকারী এবং ডেভেলপারদের জন্য ডিজাইন করা হয়েছে। কোডল্যাবের ইউজ কেসগুলোকে ডেভেলপার এবং নন-ডেভেলপার টাস্ক হিসেবে শ্রেণীবদ্ধ করা হয়েছে। ডেভেলপার ইউজ কেসগুলোতে দেখানো হয়েছে কীভাবে Gemini CLI ব্যবহার করে কোড ভাইব করতে হয় এবং একটি GitHub রিপোজিটরির সাথে কাজ করে কোডের ব্যাখ্যা/বোঝা, ডকুমেন্টেশন তৈরি, ইস্যু সমাধান এবং আরও অনেক সাধারণ ডেভেলপমেন্ট টাস্ক সম্পাদন করতে হয়। কোডল্যাবের এই ইউজ কেসগুলো সম্পন্ন করার জন্য আপনাকে পরামর্শ দেওয়া হচ্ছে। শেষে একটি ঐচ্ছিক বিভাগ রয়েছে যেখানে নন-ডেভেলপারদের জন্য বেশ কিছু দৈনন্দিন কাজ অন্তর্ভুক্ত করা হয়েছে।
২. শুরু করার আগে
একটি প্রকল্প তৈরি করুন
- গুগল ক্লাউড কনসোলের প্রজেক্ট সিলেক্টর পেজে, একটি গুগল ক্লাউড প্রজেক্ট নির্বাচন করুন বা তৈরি করুন।
- আপনার ক্লাউড প্রোজেক্টের জন্য বিলিং চালু আছে কিনা তা নিশ্চিত করুন। কোনো প্রোজেক্টে বিলিং চালু আছে কিনা তা কীভাবে পরীক্ষা করবেন, তা জেনে নিন।
- আপনি ক্লাউড শেল ব্যবহার করবেন, যা গুগল ক্লাউডে চলমান একটি কমান্ড-লাইন পরিবেশ এবং এটি bq-এর সাথে আগে থেকেই লোড করা থাকে। গুগল ক্লাউড কনসোলের শীর্ষে থাকা ‘Activate Cloud Shell’-এ ক্লিক করুন।

- ক্লাউড শেলে সংযুক্ত হওয়ার পর, আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করে যাচাই করে নিন যে আপনি ইতিমধ্যেই প্রমাণীকৃত এবং প্রজেক্টটি আপনার প্রজেক্ট আইডিতে সেট করা আছে:
gcloud auth list
- gcloud কমান্ডটি আপনার প্রজেক্ট সম্পর্কে অবগত আছে কিনা, তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান।
gcloud config list project
- আপনার প্রজেক্টটি সেট করা না থাকলে, এটি সেট করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
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 ইনস্টল করতে চান, তাহলে নিচে দেওয়া নির্দেশাবলী অনুসরণ করুন।
প্রথম ধাপ হলো আপনার মেশিনে Node 20+ ইনস্টল করা । এটি সম্পন্ন হয়ে গেলে, আপনি নিচের যেকোনো একটি পদ্ধতির মাধ্যমে Gemini CLI ইনস্টল ও রান করতে পারবেন:
- প্রথমে আপনি আপনার সিস্টেমে 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
ধরে নিচ্ছি যে আপনি উপরের যেকোনো একটি পদ্ধতির মাধ্যমে Gemini CLI চালু করেছেন, তাহলে আপনি নিম্নলিখিত স্ক্রিনটি দেখতে পাবেন যেখানে আপনাকে একটি থিম বেছে নিতে বলা হবে। আপনার পছন্দের একটি থিম বেছে নিন:

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

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

৪. settings.json এর মাধ্যমে Gemini CLI কনফিগারেশন
আপনি যদি জেমিনি চালানোর জন্য ক্লাউড শেল বেছে নেন, তাহলে জেমিনি সিএলআই-এর জন্য একটি ডিফল্ট থিম এবং প্রমাণীকরণ পদ্ধতি আপনার জন্য আগে থেকেই নির্বাচিত ও কনফিগার করা থাকে।
আপনি যদি আপনার মেশিনে 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"
}
৫. জেমিনি সিএলআই-এর সাথে আমাদের প্রথম আলাপচারিতা
চলুন Gemini CLI দিয়ে শুরু করা যাক এবং নিচে দেখানো অনুযায়ী আপনার প্রথম কোয়েরিটি টাইপ করুন:
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 টুলটি (জেমিনি সিএলআই-এর একটি অন্তর্নির্মিত টুল) সক্রিয় হয়েছে। অন্য কথায়, আপনি ইতোমধ্যেই জেমিনি সিএলআই-এর অন্যতম শক্তিশালী অন্তর্নির্মিত টুল GoogleSearch ব্যবহার করেছেন, যা ওয়েব থেকে প্রাপ্ত তথ্যের উপর ভিত্তি করে তার প্রতিক্রিয়া জানায়। পরবর্তী বিভাগে আপনি টুলস সম্পর্কে আরও জানতে পারবেন।
Gemini CLI এবং এর সমর্থিত বিভিন্ন কমান্ডগুলো বোঝার একটি সহজ উপায় হলো /help (ফরোয়ার্ড স্ল্যাশ) টাইপ করা, এবং এর ফলে আপনি বিভিন্ন ধরনের কমান্ড ও কিবোর্ড শর্টকাট দেখতে পাবেন।
চলুন আপাতত Gemini CLI থেকে বেরিয়ে যাই। আপনি /quit কমান্ডের মাধ্যমে অথবা ইন্টারেক্টিভ Gemini CLI টার্মিনাল সেশনে দুইবার Ctrl-C চেপে এটি করতে পারেন।
৬. জেমিনি সিএলআই - কমান্ড প্যারামিটার
Gemini CLI চালু করার সময় কয়েকটি কমান্ড লাইন প্যারামিটার দেওয়া যায়। অপশনগুলোর সম্পূর্ণ তালিকা পেতে, আপনি নিচে দেখানো অনুযায়ী --help ব্যবহার করতে পারেন।
gemini --help
এতে উপলব্ধ সমস্ত বিকল্প দেখানো উচিত। আপনাকে এখান থেকে ডকুমেন্টেশনটি পড়ে দেখার জন্য উৎসাহিত করা হচ্ছে।
চলুন সেগুলোর কয়েকটি দেখে নেওয়া যাক। প্রথমটি হলো প্রো অথবা ফ্ল্যাশ মডেল ব্যবহার করার জন্য Gemini CLI কনফিগার করা। বর্তমানে, এই ল্যাবটি লেখার সময়, কেবল এই দুটি মডেলই সমর্থিত। ডিফল্টরূপে Gemini 2.5 Pro মডেলটি ব্যবহৃত হয়, কিন্তু আপনি যদি ফ্ল্যাশ মডেলটি ব্যবহার করতে চান, তবে নিচে দেখানো পদ্ধতি অনুযায়ী Gemini CLI চালু করার সময় -m প্যারামিটারের মাধ্যমে তা করতে পারেন:
gemini -m "gemini-2.5-flash"
আপনি লক্ষ্য করবেন যে, উপরোক্ত পদ্ধতিতে শুরু করলে, নীচে দেখানো অনুযায়ী জেমিনি সিএলআই টার্মিনালের নীচের ডানদিকে মডেলটি পরীক্ষা করতে পারবেন:

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

অ-ইন্টারেক্টিভ মোড
একটি আকর্ষণীয় বিকল্প হলো জেমিনি সিএলআই (Gemini CLI)-কে নন-ইন্টারেক্টিভ মোডে চালানো। এর মানে হলো, আপনি সরাসরি এটিকে প্রম্পট দেবেন এবং এটি জেমিনি সিএলআই-এর ইন্টারেক্টিভ টার্মিনাল না খুলেই সেটির উত্তর দেবে। আপনি যদি স্ক্রিপ্ট বা অন্য কোনো অটোমেশন প্রক্রিয়ার অংশ হিসেবে জেমিনি সিএলআই স্বয়ংক্রিয়ভাবে ব্যবহার করার পরিকল্পনা করেন, তবে এটি খুবই কার্যকর। নিচে দেখানো অনুযায়ী জেমিনি সিএলআই-কে প্রম্পট দেওয়ার জন্য আপনি -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 তার বেছে নেওয়া টুলটি চালানোর জন্য আপনার কাছে অনুমতি চাইবে। আপনি অনুমতি দিতে অস্বীকার করতে পারেন, অথবা এটিকে একবার চলতে দিতে পারেন, কিংবা সবসময় চলার জন্য সার্বিক অনুমতি দিয়ে দিতে পারেন। সবকিছু আপনার সম্পূর্ণ নিয়ন্ত্রণে আছে এবং থাকা উচিত।
চলুন এমন একটি প্রম্পট ব্যবহার করি যা জেমিনি সিএলআই-কে এর অন্তর্নির্মিত টুলগুলোর মধ্যে থেকে একটি বেছে নিয়ে কার্যকর করতে বলবে এবং এর মাধ্যমে আপনি পুরো বিষয়টি কীভাবে কাজ করে সে সম্পর্কে একটি ভালো ধারণা পাবেন।
এমন একটি পরিস্থিতির কথা ভাবুন যেখানে আপনি সারা বিশ্বের সর্বশেষ আর্থিক খবরের তথ্য সংগ্রহ করে, যেখান থেকে 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 টুলটি চালু করে ওয়েবে অনুসন্ধান চালায় এবং ফলাফল সংগ্রহ করে, যেমনটি নিচে দেখানো হয়েছে:
GoogleSearch Searching the web for: "latest finance headlines today"
Search results for "latest finance headlines today" returned.
একবার সেটি হয়ে গেলে, এটি ফাইলে লেখার জন্য প্রস্তুত হবে এবং WriteFile টুলটি ব্যবহার করবে, কিন্তু যেহেতু এটি একটি সংবেদনশীল কাজ ( লেখা ), তাই এটি আপনার অনুমতি চাইবে। আপনি অনুমতির ধরন ঠিক করতে পারেন, যেমন—একবার অনুমতি, সর্বদা অনুমতি, ইত্যাদি। আপাতত একবার অনুমতি নির্বাচন করুন।

এরপর এটি তথ্যগুলো ফাইলে লিখে দেবে এবং নিচে একটি সফলতার বার্তা দেখানো হবে:
✦ 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) চালু হয় এবং বিষয়বস্তুগুলো নিচে দেখানো অনুযায়ী প্রদর্শিত হয়:

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

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

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

অনুশীলন : এখানে চেষ্টা করার জন্য একটি ছোট অনুশীলন দেওয়া হলো। আপনার পছন্দের একটি 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 কাস্টমাইজেশনের 'শিপিং কন্টেইনার' হিসেবে ভাবুন, যা একটি নির্দিষ্ট ওয়ার্কফ্লোর জন্য প্রয়োজনীয় সবকিছুকে একটি একক, পরিপাটি প্যাকেজে একত্রিত করে।

একটি এক্সটেনশন নিম্নলিখিত যেকোনো সংমিশ্রণকে একত্রিত করতে পারে:
- কাস্টম স্ল্যাশ কমান্ড (আপনার .toml ফাইলগুলো)।
- এমসিপি সার্ভার কনফিগারেশন (যা পূর্বে settings.json-এ থাকত)।
- মডেলকে নির্দিষ্ট নির্দেশনা ও নির্দেশিকা প্রদানের জন্য কনটেক্সট ফাইল (GEMINI.md)।
- আরও নিরাপদ ও মনোযোগী পরিবেশ তৈরির জন্য টুলের উপর বিধিনিষেধ (excludeTools) আরোপ করা হয়েছে।
এক্সটেনশন গ্যালারি অন্বেষণ করুন
এক্সটেনশন গ্যালারি হলো গুগল-নির্মিত সকল অফিসিয়াল এবং থার্ড-পার্টি এক্সটেনশন খুঁজে পাওয়ার কেন্দ্রীয় বাজার:
- আপনার ব্রাউজারে নিম্নলিখিত 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.
গিটহাব এমসিপি সার্ভার কনফিগার করা
জেমিনি সিএলআই এক্সটেনশন প্রকারগুলোর মধ্যে একটি হলো এমসিপি সার্ভার। এমসিপি সার্ভার হলো এমন একটি অ্যাপ্লিকেশন যা মডেল কনটেক্সট প্রোটোকলের মাধ্যমে জেমিনি সিএলআই-এর কাছে বিভিন্ন টুল ও রিসোর্স উন্মুক্ত করে, যার ফলে এটি বাহ্যিক সিস্টেম এবং ডেটা সোর্সের সাথে যোগাযোগ করতে পারে। এমসিপি সার্ভারগুলো জেমিনি মডেল এবং আপনার স্থানীয় পরিবেশ বা এপিআই-এর মতো অন্যান্য পরিষেবার মধ্যে একটি সেতু হিসেবে কাজ করে।
জেমিনি এক্সটেনশনস গ্যালারিতে আমাদের গিটহাব এমসিপি সার্ভারটি রয়েছে। সেটিতে ক্লিক করলে এক্সটেনশনস কার্ডটি খুলে যাবে, যেখানে আপনি এক্সটেনশনটি ইনস্টল করার কমান্ডটিও দেখতে পাবেন:

সরাসরি সেটি কপি করুন অথবা নিচের কমান্ডটি ব্যবহার করুন:
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 সার্ভারটিকে সবুজ রঙে তার টুলগুলো (৩০টিরও বেশি) সহ দেখতে পাবেন। নিচে একটি আংশিক তালিকা দেখানো হলো:
🟢 গিটহাব (গিটহাব থেকে) - প্রস্তুত (৪০টি টুল)
সরঞ্জাম:
- অপেক্ষাধীন পর্যালোচনায় মন্তব্য যোগ করুন
- add_issue_comment
- অ্যাসাইন_কোপাইলট_টু_ইস্যু
- শাখা তৈরি করুন
- ফাইল তৈরি বা আপডেট করুন
- পুল অনুরোধ তৈরি করুন
- রিপোজিটরি তৈরি করুন
- ফাইল মুছুন
- ফর্ক_রিপোজিটরি
- get_commit
- ফাইলের বিষয়বস্তু পান
- get_label
- get_latest_release
- get_me
- ট্যাগ দ্বারা রিলিজ পান
- get_tag
- দলের সদস্যদের পান
- get_teams
- ইস্যু_রিড
চলুন এমন একটি প্রম্পট দিয়ে শুরু করা যাক যা গিটহাব এমসিপি সার্ভারের একটি টুল চালু করবে। নিম্নলিখিত প্রম্পটটি দিন (আমি গিটহাবে কে?)। এর ফলে জেমিনি সিএলআই সঠিক টুলটি নির্বাচন করবে এবং আপনার অনুমতি চাইবে।

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

প্রথমে, উপরে দেখানো 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: /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
উপরে আমরা জেমিনি সিএলআই এক্সটেনশনগুলোর মধ্যে মাত্র কয়েকটির কনফিগার করার পদ্ধতি দেখিয়েছি। এ ধরনের আরও এক্সটেনশন সম্পর্কে জানতে আপনি এক্সটেনশন গ্যালারি দেখতে পারেন, অথবা " জেমিনি সিএলআই এক্সটেনশন দিয়ে শুরু করা " শীর্ষক কোডল্যাবটিও করতে পারেন।
১০. পরীক্ষামূলক ব্যবহারের ক্ষেত্রসমূহ
জেমিনি সিএলআই ডেভেলপার এবং নন-ডেভেলপার উভয়ের জন্যই বিভিন্ন ক্ষেত্রে ব্যবহার করা যেতে পারে। এখানে কয়েকটি পরিস্থিতি তুলে ধরা হলো এবং আপনার আগ্রহের ক্ষেত্র অনুযায়ী, আপনি এগুলোর যেকোনো একটি বা সবগুলোই চেষ্টা করে দেখতে পারেন।
এই প্রতিটি ক্ষেত্রে, প্রম্পটটি প্রদান করা হয়। আপনি Gemini CLI চালু করার সময় -p প্যারামিটার ব্যবহার করে Gemini CLI ইন্টারেক্টিভ মোডে অথবা নন-ইন্টারেক্টিভ মোডে এটি পরীক্ষা করে দেখতে পারেন।
জেমিনি সিএলআই দিয়ে ভাইব কোডিং
চলুন, Gemini CLI ব্যবহার করে একটি অ্যাপ্লিকেশন ভাইব কোড করি। এই টাস্কে, আপনি Gemini CLI-কে একটি অ্যাপ্লিকেশন তৈরি করতে বলবেন এবং তারপর এর প্রাথমিক সংস্করণটি একটি GitHub রিপোজিটরিতে পুশ করবেন।
পূর্বশর্ত
এই বিভাগে বর্ণিত কাজগুলো সম্পাদন করার জন্য কয়েকটি পূর্বশর্ত রয়েছে:
- গিট
- গিটহাব জেমিনি সিএলআই এক্সটেনশন সহ জেমিনি সিএলআই (যা আমরা আগেই করেছি) অথবা আপনার যদি
gh( গিটহাব সিএলআই টুল ) সেট আপ করা থাকে, তাহলেও কাজ করবে। - গিট-এর প্রাথমিক বিষয়গুলির সাথে পরিচিতি এবং প্রোগ্রামিং সম্পর্কে সামান্য জ্ঞান
আমরা ধরে নেব যে আপনি আপনার পছন্দের একটি নির্দিষ্ট ফোল্ডারে Gemini CLI চালু করেছেন।
একটি প্রাথমিক প্রম্পট দিয়ে শুরু করুন। আপনার প্রয়োজন অনুযায়ী এটি পরিবর্তন করতে পারেন। মনে রাখবেন যে 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.
পরবর্তী কয়েকটি নির্দেশ ও তার উত্তর হলো একটি নমুনা কার্যপ্রবাহ যা পর্যবেক্ষণ করা হয়েছে। জেমিনি সিএলআই একটি পরিকল্পনা তৈরি করবে এবং আপনার কাছে কোনো নিশ্চিতকরণ বা স্পষ্টীকরণের জন্য জিজ্ঞাসা করবে, অথবা আপনাকে এগিয়ে যেতে বলবে। অনুগ্রহ করে নির্দেশাবলী অনুসরণ করুন। নমুনা হিসেবে, এটি আমার কথোপকথনের একটি নমুনা:
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!
সার্ভার চালু করার নির্দেশাবলী অনুসরণ করে হোম পেজে যাওয়ার পর, আমরা নীচে দেখানো একটি নমুনা সাইট পেয়েছি (আপনি যদি একই প্রম্পট ব্যবহার করে থাকেন, তাহলে একই ধরনের একটি সাইটের ভিন্ন রূপ দেখতে পাবেন):

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

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

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

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

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

আরও কয়েকটি সাংগঠনিক পরিস্থিতি (প্রতিটি পরিস্থিতির পাশে নির্দেশাবলী দেওয়া আছে):
- সারসংক্ষেপ: 'Documents' ফোল্ডারের প্রতিটি ডকুমেন্টের জন্য, একই ফোল্ডারে 'summary_ORIGINAL_FILENAME.txt' নামে একটি txt ফাইল তৈরি করুন, যাতে ডকুমেন্টটির মূল বিষয়গুলির একটি ৩-বাক্যের সারসংক্ষেপ থাকবে।
- ধরণ অনুযায়ী শ্রেণীবদ্ধকরণ: এই ডিরেক্টরির সমস্ত PDF এবং DOCX ফাইল স্ক্যান করুন। যে সমস্ত ফাইলের নাম বা বিষয়বস্তুতে "invoice" শব্দটি আছে, সেগুলিকে 'Financial/Invoices' ফোল্ডারে সরান। যে ফাইলগুলিতে "receipt" শব্দটি আছে, সেগুলিকে 'Financial/Receipts' ফোল্ডারে সরান। অন্য যেকোনো .docx ফাইল 'Reports' ফোল্ডারে রাখুন।
- মূল তথ্য নিষ্কাশন (এবং "ট্যাগিং"): '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-সদৃশ আচরণ)
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.