1. Giriş
Bu codelab'de, Gemini'ın gücünü doğrudan terminalinize getiren açık kaynaklı bir yapay zeka temsilcisi olan Gemini CLI hakkında bilgi edineceksiniz.
Gemini CLI projesi açık kaynaklıdır ve herkese açık yol haritasını buradan inceleyebilirsiniz.
Bu codelab'de aşağıdaki gibi etkinliklerde adım adım bir yaklaşım kullanacaksınız:
- Gemini CLI'yı yükleme
- Temel yapılandırma
- Gemini CLI'daki araçları ve yerleşik komutları keşfetme
GEMINI.md
dosyası aracılığıyla Gemini CLI'yı özelleştirme- Gemini CLI ile birkaç kullanım alanını keşfetme
Gerekenler
- Chrome web tarayıcısı
- Gmail hesabı
- Makinenize Node 20+'ın yüklü olduğu bir yerel makine.
Bu codelab, yeni başlayanlar da dahil olmak üzere her seviyeden kullanıcı ve geliştirici için tasarlanmıştır.
2. Kurulum
Kurulumu çalıştırmadan ve Gemini CLI'yı çalıştırmadan önce, içinde oluşturabileceğimiz tüm projeler için ana klasör olarak kullanacağımız bir klasör oluşturalım. Bu, Gemini CLI'nın çalışması için bir başlangıç noktasıdır. Ancak gerektiğinde sisteminizdeki diğer bazı klasörlere de başvurur. Bu klasörlere daha sonra değineceğiz.
Devam edin ve bir örnek klasör (gemini-cli-projects
) oluşturun ve aşağıdaki komutları kullanarak bu klasöre gidin. Dilerseniz başka bir klasör adı kullanabilirsiniz.
mkdir gemini-cli-projects
Şimdi o klasöre gidelim:
cd gemini-cli-projects
Gemini CLI'yı çalıştırmak için aşağıdaki yöntemlerden herhangi birini kullanabilirsiniz:
- Aşağıdaki komutla çalıştırın:
npx https://github.com/google-gemini/gemini-cli
- Öncelikle Gemini CLI'yi sisteminize genel olarak yükleyebilirsiniz. Bunu yapmak için yönetici haklarına sahip olduğunuzdan emin olun.
npm install -g @google/gemini-cli
ve ardından aşağıdaki komutla çalıştırın:
gemini
Gemini CLI'yı yukarıdaki yöntemlerden herhangi biriyle başlattığınızı varsayarsak tema seçimiyle ilgili aşağıdaki ekranı görürsünüz. İstediğiniz birini seçin:
Bu seçeneği belirlediğinizde kimlik doğrulama yöntemi istenir. Bu laboratuvarda Google dışı veya Google Workspace ile ilgili hesaplar yerine kişisel Google Hesabınızı kullanmanızı öneririz. Bu ücretsiz lisansla Gemini 2.5 Pro'ya ve 1 milyon parçalık bağlam penceresine erişebilirsiniz. Ücretsiz katman,dakikada 60 model isteğine ve günde 1.000 isteğe ücretsiz olarak izin verir.
Google Hesaplarına verilen mevcut ücretsiz kotayla sınırlara ulaşırsanız Gemini API anahtarını veya Google Cloud Vertex AI'ı kullanmayı tercih edebilirsiniz. Bu durumda, ilgili proje için bir proje kimliğiniz ve konum adınız olması gerekir. Diğer kimlik doğrulama yöntemlerini kullanmayı planlıyorsanız dokümanların Kimlik Doğrulama bölümüne bakın.
Enter'ı tıklayın. Tarayıcıda Google kimlik doğrulama sayfası açılır. Google Hesabınızla kimlik doğrulama işlemine devam edin, şartları kabul edin. Kimlik doğrulama işlemi başarıyla tamamlandıktan sonra Gemini CLI'nın hazır olduğunu ve komutunuzu beklediğini görürsünüz. Örnek ekran görüntüsü aşağıda verilmiştir:
/help
(öne eğik çizgi) yazın. Aşağıda gösterildiği gibi çeşitli komutlar ve klavye kısayolları görürsünüz:
Gemini CLI ile ilk etkileşimimiz
İlk mesajınızı kutuya yazın. Şu gibi bir sorgu gönderelim:
Sorgumuzun, GoogleSearch
aracının (Gemini CLI'da yerleşik bir araç) çağrılmasıyla sonuçlandığını göreceksiniz. Bu, Gemini CLI'ın güçlü yerleşik araçlarından biri olan GoogleSearch
'ı kullanarak yanıtlarını web'den aldığı bilgilere dayandırdığımız ilginç bir yöntemdir. Araçlar hakkında daha fazla bilgiyi sonraki bölümde bulabilirsiniz.
Şimdilik Gemini CLI'dan çıkalım. Bu işlemi /quit
komutuyla veya etkileşimli Gemini KSA terminal oturumunda Ctrl-C
komutunu iki kez çalıştırarak yapabilirsiniz.
Gemini CLI özelleştirme dosyası : settings.json
Gemini KSA'yı ilk kez başlattığımızda tema ve kimlik doğrulama yöntemi seçmemiz istenmişti. Gemini CLI'nın sonraki çalıştırmalarında tema ve kimlik doğrulama yöntemi seçmeniz tekrar istenmez. Bu, ayarların bir yerde kalıcı olarak saklandığı ve kullanılan dosyanın settings.json
olarak adlandırıldığı anlamına gelir. Bu dosya, Gemini CLI'yı özelleştirmenin yoludur.
Ayarlar, aşağıdaki öncelik sırasına göre uygulanır:
- Çalışma alanı:
.gemini/settings.json
(kullanıcı ve sistem ayarlarını geçersiz kılar). - Kullanıcı:
~/.gemini/settings.json
(sistem ayarlarını geçersiz kılar). - Sistem:
/etc/gemini-cli/settings.json
(tüm kullanıcılar için geçerlidir).
Hatırlarsanız temayı seçerken ayarların kullanıcı ayarlarında kaydedilmesini istemiştik. Bu nedenle ~/.gemini folder
adresini ziyaret ettiğinizde settings.json
dosyasını görürsünüz.
settings.json
dosyam aşağıda gösteriliyor. Başka bir tema seçtiyseniz adı orada görürsünüz.
{
"theme": "Default",
"selectedAuthType": "oauth-personal"
}
3. Gemini CLI Komut Parametreleri
Gemini KSA'yı başlatırken kullanabileceğiniz birkaç komut satırı parametresi vardır. Seçeneklerin tam listesini görmek için aşağıda gösterildiği gibi --help
kullanabilirsiniz.
gemini --help
Bu işlem, mevcut seçeneklerin tamamını gösterir. Buradaki belgeleri incelemeniz önerilir.
Bunlardan birkaçına göz atalım. İlk yöntem, Gemini CLI'yı Pro veya Flash modelini kullanacak şekilde yapılandırmaktır. Bu laboratuvarın yazıldığı sırada yalnızca bu iki model destekleniyordu. Varsayılan olarak Gemini 2.5 Pro modeli kullanılır. Ancak Flash modelini kullanmak isterseniz aşağıdaki örnekte gösterildiği gibi -m
parametresiyle Gemini CLI'yı başlatırken bunu yapabilirsiniz:
gemini -m "gemini-2.5-flash"
Yukarıdaki şekilde başlarsanız modeli, Gemini CLI terminalinin sağ alt kısmında aşağıdaki gibi kontrol edebilirsiniz:
Etkileşimsiz mod
İlginç bir seçenek de Gemini CLI'yi etkileşimli olmayan bir modda çalıştırmaktır. Bu durumda, istemi doğrudan sağladığınızda Gemini CLI etkileşimli terminali açılmadan yanıt verilir. Bu, Gemini CLI'yı komut dosyasının veya başka bir otomasyon sürecinin parçası olarak otomatik bir şekilde kullanmayı planlıyorsanız çok yararlıdır. Aşağıda gösterildiği gibi, Gemini CLI'ye istemi sağlamak için -p parametresini kullanırsınız:
gemini -p "What is the gcloud command to deploy to Cloud Run"
Sohbete devam ederek konuyla ilgili başka sorular soramayacağınızı unutmayın.
4. Gemini CLI - Yerleşik Araçlar
Gemini CLI, bir dizi yerleşik araçla birlikte gelir ve araç dokümanlarında "Gemini modeli, yerel ortamınızla etkileşim kurmak, bilgilere erişmek ve işlemleri gerçekleştirmek için bu araçları kullanır. Bu araçlar, CLI'nın özelliklerini geliştirerek metin oluşturmanın ötesine geçmesini ve çok çeşitli görevlerde yardımcı olmasını sağlar."
Mevcut Yerleşik Araçlar listesini almak için aşağıdaki gibi /tools
komutunu çağırmamız yeterlidir:
Hemen dikkatinizi çekmesi gereken şeylerden biri, Gemini CLI'ın istediği zaman bu araçları basitçe çağırıp çağıramayacağını kendinize sormaktır. Yerel sisteme yazma, harici bir sistemden okuma, harici ağa gitme gibi hassas işlemler söz konusu olduğunda varsayılan yanıt hayır'dır.
KSA'yı başlattığınızda --yolomode
kullanılabilir ancak bu aracı kullanmayacağız. Gemini KSA'nın, seçtiği aracı çalıştırmak için sizden izin isteyeceğini göreceksiniz. İzni reddedebilir, tek bir kez çalışmasına izin verebilir veya her zaman çalışması için genel izin verebilirsiniz. Her şeyin kontrolü sizde olmalıdır.
Gemini CLI'ın, yerleşik araçlardan birini seçerek çalıştıracağı ve tüm sürecin nasıl işlediğini anlamamızı sağlayacak bir istem girelim.
Dünyadaki en son finans haberleri hakkında bilgi edinmek ve bu bilgileri, Gemini CLI'yi başlattığımız yerel çalışma dizinimizdeki bir dosyaya kaydetmek istiyoruz. Aşağıdaki istemi gönderiyoruz:
Search for the latest headlines today in the world of finance and save them in a file named finance-news-today.txt
Bir an için ne yapması gerektiğini düşünün. İdeal olarak, finansal haberler sağlayabilecek bazı alakalı bilgi kaynaklarından haber almak için Google Arama yapması gerekir. Ardından, içeriğiyle birlikte finance-news-today.txt
adlı bir dosya oluşturması gerekir (yerel sisteminizde yazma işlemi için izniniz gerekir).
Ne olacağına bakalım (makinenizde de aynı işlemi yapmanız gerekir).
Bu araç, ilk olarak web'de arama yapmak için GoogleSearch
aracını çağırır.
Arama tamamlandığında veriler aşağıda gösterildiği gibi alınır:
Bu işlem tamamlandıktan sonra dosyaya yazmaya hazır olur ve WriteFile
aracını kullanır. Ancak bu hassas bir işlem (yazma) olduğundan izninizi ister. İzin türüne (ör. bir kez izin ver, her zaman izin ver) karar verebilirsiniz. Şimdilik "bir kez izin ver"i seçiyoruz.
Ardından bilgiler dosyaya yazılır ve aşağıda başarı mesajı gösterilir:
Dosyanın yazılı olup olmadığını nasıl kontrol ederiz? @file
simgesini kullanarak içeriği okumasını isteyebiliriz. Aşağıda gösterildiği gibi bir istem veriyoruz. @
yazdığımızda geçerli klasördeki dosyaların listesi gösteriliyor ve yeni oluşturulan dosya da bu listede yer alıyor. Bunu seçip istemi gönderin. İstemim aşağıda gösterilmiştir:
read the contents of @finance-news-today.txt
Bu işlem, gerekli araçların (ReadManyFiles, ReadFile) çağrılmasına ve içeriklerin aşağıda gösterildiği gibi görüntülenmesine neden olur:
Bu, Gemini CLI'dan doğrudan Shell ile nasıl çalışacağınızı öğrenmek için de iyi bir zamandır. İleti kutusunda !
tuşuna basarak kabuk moduna geçebilirsiniz. Bu işlem, kabuk moduna geçiş yapar. !
tuşuna tekrar basarak veya ESC
tuşuna basarak geri dönebilirsiniz.
Kabuk modundayken istemin başında !
simgesini görürsünüz.
Aşağıda gösterildiği gibi pwd
ve ls
gibi standart komutları kullanarak doğrudan kontrol edebilirim:
Dosyanın içeriğini bugün cat
komutuyla yazdırabiliriz.
Alıştırma: Deneyebileceğiniz kısa bir alıştırma. Tercih ettiğiniz bir RSS feed'i seçin. Gemini CLI'ya RSS özet akışının içeriğini getirmesi ve sonuçları sizin için belirli bir şekilde biçimlendirmesi için istem girin. Bu, güne başlarken bir şeyi otomatize etmenin iyi bir yoludur.
İpucu: Gemini CLI'nin WebFetch
aracını kullanmasını sağlamanız gerekir.
5. Model Context Protocol (MCP) sunucularını yapılandırma
MCP sunucusu, Model Context Protocol aracılığıyla Gemini CLI'ye araçlar ve kaynaklar sunan, bu sayede harici sistemler ve veri kaynaklarıyla etkileşim kurmasına olanak tanıyan bir uygulamadır. MCP sunucuları, Gemini modeli ile yerel ortamınız veya API'ler gibi diğer hizmetler arasında köprü görevi görür.
Bir MCP sunucusu, Gemini CLI'nin araçları keşfedip yürütmesini sağlayarak Gemini CLI'nin yerleşik özelliklerinin ötesinde işlemler yapma (ör. veritabanları, API'ler, özel komut dosyaları veya özel iş akışlarıyla etkileşim kurma) yeteneklerini genişletir.
Gemini CLI, özel araçları keşfetmek ve kullanmak için MCP sunucularının yapılandırılmasını destekler. Gemini CLI'yi başlattıysanız aşağıda gösterildiği gibi /mcp
komutunu kullanarak yapılandırılan MCP sunucularını kontrol edebilirsiniz:
Herhangi bir MCP sunucusu yapılandırmadıysanız Gemini CLI'nın MCP sunucusu dokümanı başlatılır.
MCP sunucularını ~/.gemini/settings.json
dosyasında veya projenizin kök dizininde genel düzeyde yapılandırabilirsiniz. .gemini/settings.json
dosyasını oluşturun veya açın. Dosyaya, aşağıda gösterildiği gibi mcpServers
yapılandırma bloğunu eklemeniz gerekir:
"mcpServers": {
"server_name_1": {},
"server_name_2": {},
"server_name_n": {}
}
Her sunucu yapılandırması aşağıdaki özellikleri destekler ( Referans belgeleri):
Zorunlu (aşağıdakilerden biri)
- command (string): Stdio aktarımı için yürütülebilir dosyanın yolu
- url (dize): SSE uç nokta URL'si (ör. "http://localhost:8080/sse")
- httpUrl (dize): HTTP akışı uç nokta URL'si
İsteğe bağlı
- args (string[]): Stdio aktarımı için komut satırı bağımsız değişkenleri
- headers (object): URL veya httpUrl kullanılırken özel HTTP üstbilgileri
- env (nesne): Sunucu işlemi için ortam değişkenleri. Değerler, $VAR_NAME veya ${VAR_NAME} söz dizimini kullanarak ortam değişkenlerine başvurabilir.
- cwd (string): Stdio aktarımı için çalışma dizini
- timeout (sayı): İstek zaman aşımı (milisaniye cinsinden) (varsayılan: 600.000 ms = 10 dakika)
- trust (boolean): Doğru olduğunda bu sunucu için tüm araç çağrısı onaylarını atlar (varsayılan: yanlış)
- includeTools (string[]): Bu MCP sunucusundan dahil edilecek araç adlarının listesi. Belirtildiğinde, bu sunucuda yalnızca burada listelenen araçlar kullanılabilir (beyaz liste davranışı). Belirtilmezse sunucudaki tüm araçlar varsayılan olarak etkinleştirilir.
- excludeTools (string[]): Bu MCP sunucusundan hariç tutulacak araç adlarının listesi. Burada listelenen araçlar, sunucu tarafından kullanıma sunulmuş olsalar bile model tarafından kullanılamaz. Not: Bir araç her iki listede de yer alıyorsa hariç tutulur. excludeTools, includeTools'a göre önceliklidir.
Github ile çalışıyorsanız ihtiyacınız olabilecek temel MCP sunucularından birini yapılandıralım. Ancak Gemini CLI'nin, sisteminizde bulunan git araçlarını çağıracağını ve Gemini CLI'yi bunun yerine kullanmaya da yönlendirebileceğinizi unutmayın. Bu nedenle, komutlar konusunda size yardımcı olacağını ve bunları sizin için yürüteceğini ancak bu araçların sisteminizde kurulu olması gerektiğini unutmayın.
Github MCP Sunucusu
Github'un resmi MCP sunucusu, sunduğu araçlar ve bunların nasıl yapılandırılacağı hakkında yeterli belge sağlar. Gemini CLI, uzaktan MCP sunucularını da desteklediğinden yerel veya uzaktan çalıştırma konusunda tercihinizi yapabilirsiniz.
Bu eğiticide, Github'da Uzak MCP Sunucusu seçeneğini kullanmayı tercih ettik. Bunun için öncelikle GitHub'dan kişisel erişim jetonu (PAT) almanız gerekir.
Bu işlemden sonra settings.json
dosyasına MCP Sunucusu nesnesini eklemeniz gerekir. Sistemimdeki settings.json dosyasının tamamı aşağıda gösterilmektedir. Başka ayarlarınız da olabilir ancak mcpServers
nesnesi aşağıdaki gibi olmalıdır:
{
"theme": "Default",
"selectedAuthType": "oauth-personal",
"mcpServers": {
"github": {
"httpUrl": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "GITHUB_PAT"
},
"timeout": 5000
}
}
}
settings.json
dosyasını GitHub MCP sunucu yapılandırmasıyla güncelledikten sonra Gemini CLI'yı yeniden başlatabilir veya /mcp refresh
komutunu çalıştırabilirsiniz. Aşağıdaki ekran görüntüsünde, makinemde yapılandırılmış olan GitHub MCP sunucusu ve Gemini CLI'nin MCP ile çalışmak için kullanabileceği çeşitli araçlar vurgulanmaktadır.
Github MCP sunucusundaki araçlardan birini çağıracak bir istemle başlayalım. Aşağıdaki istemi girin:
Bu aracın, Github MCP Sunucusu'ndan doğru aracı seçeceğini ancak diğer yerleşik araçlarda olduğu gibi, bu aracı çağırmak için de açık izin vermeniz gerektiğini unutmayın. Hangi çıktıyı alacağınızı görün.
Artık GitHub projelerinizden biriyle çalışabilirsiniz. Sorgularınızı doğal dilde girin. Örneğin:
- Describe the <repo-name> to me? (<repo-name> deposunu bana açıkla.)
- Yerel makinemde <repo-name> kod deposunu klonla.
- @<dosya-adı> veya @<dizin-adı> hakkında açıklama yap/
- Bu depodaki farklı bileşenler nelerdir?
- Gerekli değişiklikleri yaptım. Değişiklikleri GitHub'a gönderebilir ve bu işlemi yapmak için GitHub MCP Server araçlarını kullanabilirsiniz.
Laboratuvarın ilerleyen bölümlerinde Github MCP sunucusuyla çalışma alıştırması yapacağız.
Context7 MCP Sunucusu
Context7, LLM'ler ve yapay zeka kodu düzenleyicileri için güncel dokümanlar sağlar. Seçtiğiniz çerçeveyle ilgili en son dokümanlarla LLM'ye bağlam sağlamak istiyorsanız Context7 MCP sunucusunu yapılandırabilirsiniz.
Kitaplığınızın Context7 ana sayfasında listelendiğinden emin olun.
settings.json
dosyasına eklemeniz gereken MCP sunucusu aşağıda verilmiştir.
"context7": {
"httpUrl": "https://mcp.context7.com/mcp"
}
MCP sunucusu yapılandırılıp Gemini CLI başarıyla yüklendikten sonra Context7 araçlarını aşağıdaki gibi görüntüleyebilirsiniz:
Artık isteminizde net olabilirsiniz ve Gemini CLI'dan belirli bir XYZ çerçevesini kullanarak uygulamanızı veya kod snippet'inizi oluştururken en son dokümanlar için Context7
kullanmasını isteyebilirsiniz.
Google'ın Agent Development Kit'ini (ADK) kullanarak bir Agent yazmak istediğim örnek istemi aşağıda bulabilirsiniz. İstemimde, Context7 MCP sunucusu üzerinden aynı dokümanı aramasını belirtiyorum.
I am working on coding an Agent using the Agent Development Kit (ADK) from Google. I would like to know how to create the LLMAgent in Python. Use Context7 for the latest documentation on ADK and specifically use /google/adk-python, /google/adk-docs and adk.wiki
Alınan çıkış:
Google Slaytlar MCP Sunucusu
https://github.com/matteoantoci/google-slides-mcp adresindeki GitHub projesi, Google Slaytlar API'si ile etkileşim kurmak için bir MCP sunucusu sağlar. Google Slaytlar sunularını programatik olarak oluşturmanıza, okumanıza ve değiştirmenize olanak tanır.
MCP sunucusunu yapılandırma adımları projede verilmiştir. Sunucuyu oluşturduğunuz, Google Cloud projesini ve OAuth 2.0 jetonlarını yapılandırdığınız ve ardından settings.json dosyasında MCP sunucusunu yapılandırdığınız bir Node.js ortamınızın olması gerekir.
Kurulumdan sonra aşağıdaki gibi istemler çalıştırabilirsiniz:
- "web_url"den en son bilgileri ayıkla, bunları temel noktalar halinde özetle ve "my_presentation" adlı bir sunu oluştur.
Mutlaka deneyin!
Diğer MCP sunucuları
İlginizi çekebilecek ek MCP sunucularının listesini aşağıda bulabilirsiniz:
- Firebase MCP Sunucusu
- Google Gen AI Media Services (Imagen, Veo, Lyria)
- Veritabanları için MCP Araç Kutusu (Firestore, BigQuery, Google Cloud veritabanlarıyla çalışma)
- Google Workspace MCP Sunucusu (Dokümanlar, E-Tablolar, Takvim ve Gmail ile çalışma)
Yukarıdaki MCP sunucularını ayarlama talimatları bu blog yayınında yayınlanmıştır.
6. Deneyebileceğiniz kullanım alanları
Gemini CLI, hem geliştiriciler hem de geliştirici olmayanlar için geçerli olan çok çeşitli kullanım alanlarında uygulanabilir. Burada birkaç senaryo sunulmaktadır. İlgi alanınıza bağlı olarak bu senaryolardan herhangi birini veya tümünü deneyebilirsiniz.
Bu durumlarda istem sağlanır. Bu özelliği, Gemini CLI'yi başlatırken -p
parametresini kullanarak Gemini CLI'nin etkileşimli veya etkileşimsiz modunda deneyebilirsiniz.
Dosyaları/Klasörleri Düzenleme
Gemini CLI'yı kullanarak dosyaları türlerine göre çeşitli klasörlerde düzenleyebilirsiniz. Makinenizde .txt, .png, .jpg, .pdf, .mp4 ve diğer uzantılı dosyaların bulunduğu bir klasöre gidin. Bu klasör büyük olasılıkla masaüstünüz veya İndirilenler klasörünüzdür.
İlgili klasöre gidip Gemini CLI'yı başlatın. Öncelikle burada bizim için birkaç klasör oluşturmasını isteyeceğiz: Resimler, Belgeler, Videolar. Ardından, dosyaları klasörlerde düzenlemesini isteyeceğiz.
Gemini CLI, özellikle dosya sisteminizi değiştiren (ör. dosya yazma, taşıma veya silme) komutları yürütmeden önce genellikle sizden izin ister. İzin vermeden önce bu istemleri her zaman dikkatlice inceleyin. Bu, güvenlik ağınızdır.
Create the following folders "Images","Documents","Videos"
Ardından aşağıdaki istemi girin:
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.
Diğer bazı düzenleme senaryoları (istemler her senaryonun yanında verilmiştir):
- Özetleme: "Documents" (Dokümanlar) klasöründeki her doküman için aynı klasörde "summary_ORIGINAL_FILENAME.txt" adında bir txt dosyası oluşturun. Bu dosya, dokümanın ana noktalarının 3 cümlelik özetini içermelidir.
- Türe Göre Kategorize Etme: Bu dizindeki tüm PDF ve DOCX dosyalarını tarayın. Adında veya içeriğinde "fatura" kelimesi geçen tüm dosyaları "Finansal/Faturalar" klasörüne taşıyın. "Makbuz" içeren dosyaları "Finans/Makbuzlar" klasörüne taşıyın. Diğer tüm .docx dosyaları "Raporlar" klasörüne gider.
- Önemli Bilgileri Ayıklama (ve "Etiketleme"): "Finansal/Faturalar" klasöründeki her PDF dosyasının içeriğini okuyun. Bir tarih bulursanız dosyayı YYYY-AA-GG biçiminde bu tarihi içerecek şekilde yeniden adlandırın. Örneğin: ‘invoice_2025-07-26_original_name.pdf'.
Görüntüleri düzenleme
Makinenizdeki resim içeriklerini nasıl düzenleyebileceğimize bakalım.
Bu özelliği denemek için:
- Çeşitli resim dosyalarının (.jpg, .png vb.) bulunduğu bir dizininiz/klasörünüz olmalıdır. EXIF verileri içeren bazı fotoğraflar ekleyin (kameralardan/telefonlardan alınan çoğu fotoğrafta bu veriler bulunur).
- Bu dizine gidin.
- Gemini CLI'yı başlatın.
Aşağıdaki senaryolardan herhangi birini deneyin (istemler her senaryonun yanında verilmiştir):
- Tarihe Göre Yeniden Adlandır (EXIF Verileri): Bu dizindeki tüm .jpg ve .png dosyalarını, EXIF verilerindeki oluşturulma tarihlerini "YYYYMMDD_HHMMSS_original_name.jpg" biçiminde içerecek şekilde yeniden adlandırın. EXIF tarihi bulunamazsa dosyanın son değiştirilme tarihi kullanılır.
- Resim Açıklamaları Oluşturma: Bu klasördeki her resim için resimde ne olduğunu açıklayın ve bu açıklamayı aynı dizinde "description_ORIGINAL_FILENAME.txt" adlı bir metin dosyasına kaydedin.
- Kopyaları Belirle (Kavramsal, daha gelişmiş mantık gerektirir): Bu klasördeki görsel içeriklerine göre tüm kopya resimleri bulun ve dosya adlarını listeleyin. Henüz silmeyin.
Makaleleri Özetleme (Yerel Dosyalar veya Web)
Aşağıdaki senaryoların her birinde URL'yi, ilgi alanını ve yerel dosya adlarını uygun şekilde değiştirebilirsiniz. Belirtilen dosya adları örnek dosya adlarıdır. Bunları sisteminizdeki dosyaların dosya adlarıyla değiştirebilirsiniz.
Aşağıdaki senaryolardan herhangi birini deneyin (istemler her senaryonun yanında verilmiştir):
- Web makalesini özetleme (tek URL): https://medium.com/google-cloud/getting-started-with-gemini-cli-8cc4674a1371 adresine gidin ve bu haber makalesindeki en önemli 3 bilgiyi özetleyin.
- Birden fazla web makalesini özetleme (ör. arama sonuçlarından): Google Arama'yı kullanarak "Gemini CLI" ile ilgili en son haber makalelerini bulun. En alakalı ilk 5 makaleyi 2-3 cümleyle özetleyin ve URL'lerini listeleyin.
- Yerel bir metin dosyasını özetleme: "my_research_paper.txt" dosyasındaki makalenin ana noktalarını özetle. Metodolojiye ve sonuçlara odaklanın.
- Yerel bir PDF'yi özetleme: "financial_report_Q2_2025.pdf" dosyasını oku. Bahsedilen finansal performansın ve temel zorlukların bir özetini sağlayın.
Belirli Bilgileri Çıkarma (Yerel Dosyalar veya Web)
Aşağıdaki senaryoların her birinde URL'yi, ilgi alanını ve yerel dosya adlarını uygun şekilde değiştirebilirsiniz. Belirtilen dosya adları örnek dosya adlarıdır. Bunları sisteminizdeki dosyaların dosya adlarıyla değiştirebilirsiniz.
Aşağıdaki senaryolardan herhangi birini deneyin (istemler her senaryonun yanında verilmiştir):
- Yerel bir makaleden öğe ayıklama: "biyografi.txt" dosyasından, adı geçen tüm kişileri ve onlarla ilişkili önemli tarihleri listeleyin.
- PDF'deki bir tablodan veri ayıklama: "quarterly_sales.pdf" dosyasında, 3. sayfadaki "Bölgeye Göre Ürün Satışları" tablosundan verileri ayıklayıp Markdown tablo biçiminde sun.
- PDF'deki bir tablodan veri ayıklama: "quarterly_sales.pdf" dosyasında, 3. sayfadaki "Bölgeye Göre Ürün Satışları" tablosundan verileri ayıklayıp Markdown tablo biçiminde sun.
- Bir haber web sitesinden haber başlıklarını ve kaynaklarını ayıklama: "https://news.google.com/" (veya benzer bir haber sitesi) adresine gidin. Ana sayfadaki ana başlıkları ve ilgili haber kaynaklarını ayıklayın. Bunları madde işaretli liste olarak sun.
- E-ticaret sayfasından ürün spesifikasyonlarını bulma: "https://www.amazon.in/Google-Cloud-Certified-Associate-Engineer/dp/1119871441" adresine gidin (kitap örneği). Kitap başlığını, yazarı ve diğer ayrıntıları ayıklayın. Bunu yapılandırılmış bir JSON biçiminde sun.
İçeriğe dayalı soruları yanıtlama (RAG benzeri davranış)
Aşağıdaki senaryoların her birinde URL'yi, ilgi alanını ve yerel dosya adlarını uygun şekilde değiştirebilirsiniz. Belirtilen dosya adları örnek dosya adlarıdır. Bunları sisteminizdeki dosyaların dosya adlarıyla değiştirebilirsiniz.
Aşağıdaki senaryolardan herhangi birini deneyin (istemler her senaryonun yanında verilmiştir):
- Yerel bir dokümanla ilgili soru-cevap: "user_manual.pdf" dosyasını ekliyorum. Ağ bağlantısı sorunlarını gidermek için hangi adımlar uygulanır?
- Web sayfasında soru-cevap: "https://www.who.int/news-room/fact-sheets/detail/climate-change-and-health" adresindeki içeriği kullanarak, DSÖ'ye göre iklim değişikliğiyle ilişkili başlıca sağlık riskleri nelerdir?
- Birden fazla kaynaktaki bilgileri karşılaştır: "article1.txt" ve "article2.txt" adlı iki haber makalem var. Her ikisinde de son ekonomik politika değişiklikleri ele alınıyor. Küçük işletmeler üzerindeki potansiyel etkiyle ilgili görüşlerini karşılaştırın ve aralarındaki farkları belirleyin.
Ayıklanan bilgilere dayalı içerik oluşturma
Aşağıdaki senaryoların her birinde URL'yi, ilgi alanını ve yerel dosya adlarını uygun şekilde değiştirebilirsiniz.
Aşağıdaki senaryolardan herhangi birini deneyin (istemler her senaryonun yanında verilmiştir):
- Bir makaleden haber özeti oluşturma: @tech_innovation_article.txt dosyasını oku. Yeni teknolojiyi ve potansiyelini vurgulayan, şirket bülteni için uygun, kısa ve ilgi çekici bir haber özeti (yaklaşık 150 kelime) yaz.
- Toplantı transkriptini özetleyen bir e-posta taslağı oluştur: Toplantı transkripti dosyası: @meeting_transcript.txt. Alınan önemli kararları ve atanan yapılacak işleri (her birinden kimin sorumlu olduğunu da belirterek) özetleyen bir e-posta taslağı oluşturun.
Gemini CLI'da çok formatlı destek
Gemini CLI, Gemini aracılığıyla çoklu model desteğine sahiptir ve farklı içerik biçimlerindeki dosyaları gereksinimlerinize göre işlemesini isteyebilirsiniz.
Bu bölümde, Gemini CLI ile bir grup fatura resmini işleyip bu resimlerden önemli bilgileri ayıklayacağız. Aşağıdaki adımları uygulayın:
- Makinenizde bir klasör oluşturun ve aşağıdaki GitHub deposundan bazı faturaları indirin.
- Gemini CLI'yı bu klasörden başlatın.
Faturalardaki bilgileri tablo şeklinde ayıklamak için aşağıdaki istemi girelim.
The current folder contains a list of invoice image files. Go through all the files in this folder and extract the following invoice information in the form of a table: Invoice No, Invoice Date, Invoice Sent By, Due Date, Due Amount.
İdeal olarak şu şekilde bir çıkış almanız gerekir:
Bu özelliği, metin biçiminde olmayan kendi dosyalarınızda kullanabilirsiniz.
Veritabanlarıyla çalışmak için Gemini CLI'yı kullanma
Çeşitli veritabanlarıyla daha verimli çalışmak için Gemini CLI'yı kullanabilirsiniz. Bu aracı doğal dilde sorgulama, veri dışa aktarma, veritabanı şemaları tasarlama, gerçekçi test verileri oluşturma gibi birçok senaryoda kullanabilirsiniz.
Bunu göstermek için SQLite3
kullanacağız. SQLite3'ü yüklememiz ve örnek Chinook veritabanına sahip olmamız gerekir.
SQLite3'ü ayarlamayla ilgili kısa talimatları aşağıda bulabilirsiniz:
- macOS: SQLite3 önceden yüklenmiş olarak gelir.
sqlite3 --version
ile doğrulayın. Gerekirse Homebrew ile yükleyin:brew install sqlite3
. - Windows: Önceden derlenmiş ikili dosyaları SQLite web sitesinden indirin. Dosyaları bir dizine (ör.
C:\sqlite
). Bu dizini sisteminizin PATH ortam değişkenine ekleyin. - Linux: Debian/Ubuntu:
sudo apt update && sudo apt install sqlite3
Örnek Chinook veritabanını indirin (indirmek için doğrudan bağlantıyı kullanabilirsiniz).
Bu istemleri çalıştırmak için gemini-cli-projects
dizininde bir klasör (database-tasks
) oluşturmanız önerilir. Chinook veritabanı dosyasını bu klasöre kopyalayın. Gemini KSA'nın kullanabilmesi için sqlite3 aracının sisteminizde ayarlandığından ve yolda kullanılabilir olduğundan emin olun. Gemini CLI'yı başlatın.
Veritabanı şema diyagramı aşağıda gösterilmektedir:
database-tasks
adlı bir klasörde olduğunuzu ve Chinook veritabanı dosyasının chinook.db
olarak adlandırıldığını varsayacağız.
Aşağıda, veritabanlarıyla çalışmanıza yardımcı olabilecek çeşitli istemler verilmiştir. İstenecek izni göstermek için ilkini kısaca inceleyeceğiz.
Veritabanında bulunan tabloları listeleme istemiyle başlıyoruz. Aşağıdaki istemi gönderiyoruz:
What tables are present in the @chinook.db
Bu, dosyayı okumak için aracı kullanıyor ve ardından gerekli işlemleri yapmak için sistemimde bulunan sqlite3
yardımcı programını kullanmak istiyor:
Bir kez çalıştırma izni verdiğinizde gerekli çıkışı alırız:
Aşağıdaki istemleri veya istediğiniz başka bir istemi deneyin:
- Kaç çalışan var?
- Faturalar tablosunun şeması nedir?
- Toplam tutara göre ilk 3 fatura hangileri ve bu faturaları hangi müşteriler oluşturdu?
Gemini CLI'nın iki şeyi hallettiğini fark edeceksiniz: İhtiyacınızı karşılayacak doğru SQL ifadesini oluşturma ve doğru sqlite3
komutunu verme.
Veri oluşturmak için Gemini CLI'yı kullanma
Gemini KSA'dan çeşitli veri biçimlerinde veri üretmesini isteyebilirsiniz. Bu, içerik parçalarından taklit etmeniz gerekebilecek JSON verilerine kadar değişebilir. Burada geliştiriciler/test kullanıcıları için geçerli olan senaryolara odaklanacağız.
Deneyebileceğiniz bazı istemler:
Örnek müşteri yorumlarının JSON verilerini oluşturma
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).
Sahte API yanıtları oluşturma (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').
Örnek Veritabanı Ekleme İfadeleri (SQL) Oluşturma
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'.
Veri yükleme/analiz için CSV verileri oluşturma
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).
Yapılandırma dosyası (YAML) oluşturma
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.
Sınır durumları/doğrulama için test verileri oluşturma
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).
Gemini CLI ile kodlama
Bir uygulamayı vibe code etmek için Gemini CLI'yi kullanalım. Gemini CLI'dan uygulama oluşturmasını isteyeceğiz ve ardından ilk sürümü bir GitHub deposuna göndereceğiz.
Ön koşul
Bu bölümdeki görevleri gerçekleştirmek için aşağıdakileri yapmanız gerekir:
- Git
- Github MCP Sunucusu ile Gemini CLI (bunu daha önce yaptık)
- Git'in temelleri ve biraz programlama bilgisi
Gemini CLI'yı istediğiniz belirli bir klasörde başlattığınızı varsayacağız. Özellikle GitHub MCP sunucusu olmak üzere MCP sunucularının başarıyla başlatıldığından emin olun.
Aşağıdaki istemi girin. İstediğiniz gibi değiştirebilirsiniz. Gemini CLI ile oturum boyunca dosyaları oluşturmak için sizden izin isteyeceğini unutmayın. Gerekli izinleri verin.
Ayrıca, biraz daha fazla kontrol istediğimiz için Gemini CLI'nin uygulamayı çalıştırmasını veya bizim için test etmesini istemediğimizi de belirtmek isteriz. Ancak bunu nasıl yapacağınız tamamen size bağlıdır.
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.
İlk yanıt için deneyimimi aşağıda paylaşıyorum. Tamamen farklı bir yanıt alabilirsiniz. Bu nedenle, planı inceleyin ve gerektiğinde Gemini CLI ile etkileşime geçin.
Sunucuları başlatmamasını istememe rağmen, aynı sunucular için kabuk komutunu gösterdi ve benim için çalıştırıp çalıştıramayacağını sordu. Kendi başıma başlatmak için bu özelliği kullanmamaya karar verdim.
Aşağıdaki mesajı verdim:
Talimatları uyguladım, sunucuyu başlattım ve aşağıdaki sitenin iyi çalıştığını görüyorum:
Gemini CLI'ın yardımıyla daha fazla değişiklik yapabilirsiniz ancak bunu bir GitHub deposuna göndermemiz gerektiğinden şimdilik bu yeterli olacaktır.
Öncelikle .gitignore dosyası oluşturalım ve Gemini CLI'dan yardım alalım.
Create a .gitignore file for this project.
Şimdi Gemini CLI'ya bu depoyu GitHub hesabımızda göndermesi için talimat vereceğiz. Bu işlem, arka planda GitHub MCP Server araçlarını kullanacaktır.
Aşağıdakine benzer bir istem girin:
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
Burada çeşitli komutlar çalıştırılır:
- Kod deposunu oluşturun.
- Yerel Git deposunu yönetmek için init, add, commit gibi birden fazla Git komutu kullanılır.
- Ardından Git remote'u kurar ve push işlemi yapar.
Not: Gemini CLI'nin zaman aşımına uğradığı veya yanlış kullanıcı adı kullandığı durumlar olabilir. Bu gibi durumlarda Gemini CLI ile etkileşime geçerek düzeltmeleri önerin.
Her şey yolunda giderse bir GitHub deposu oluşturmuş olursunuz. Örnek ekran görüntüsü aşağıda gösterilmiştir:
Normalde yapacağımız README.md
ve diğer işlemleri yapmadık. Ancak bu, bir sonraki bölüm için iyi bir alıştırma olacak. Şimdi, az önce oluşturduğunuz bu depoyla çalışacağız.
GitHub deposunda çalışmak için Gemini CLI'ı kullanma
Bu kullanım alanında, GitHub deposuyla çalışmak için Gemini CLI'yı kullanacağız. Aşağıdakiler de dahil olmak üzere çeşitli senaryoları inceleyeceğiz:
- Kod tabanını anlama
- Belge oluşturma
- Yeni bir özelliği uygulama
- Değişiklikleri kaydedip depoya geri aktarma
- Bir GitHub sorunu üzerinde çalışma ve önerilen değişiklikleri uygulama
Bu, depolarınızla çalışmak ve Gemini CLI'ı bu geliştiriciye özel görevlerde yardımcı olarak kullanmak için iyi bir temel oluşturur.
Ön koşul
Bu bölümdeki görevleri gerçekleştirmek için aşağıdakileri yapmanız gerekir:
- Git
- Github MCP Sunucusu ile Gemini CLI (bunu daha önce yaptık)
- Git'in temelleri ve biraz programlama bilgisi (Gemini CLI'yı yüklediğiniz için makinenizde ortam zaten hazır olabilir. Bu nedenle bu örnekte Node.js'yi kullanacağız). Ancak daha sonra farklı bir programlama dili ve çerçeveyle istediğiniz depoyu seçebilirsiniz.
- Önceki bölümü tamamlamış olmanız ve Event Talks web sitesini oluşturduğumuz depoyu hazır bulundurmanız gerekir.
Event Talks uygulamasını oluşturmak için kullandığınız klasör/dizinden Gemini CLI'ı kullanmaya devam edelim. Gerekirse depoyu yerel makinenize klonlayıp Gemini CLI'ı bu dizinden başlatabilirsiniz. Aşağıda listelenen senaryoları deneyin:
Kod tabanını anlama
- Bu projeyi ayrıntılı olarak anlamak istiyorum. Ana özellikleri anlamama yardımcı ol ve ardından bunları sunucu ve istemci tarafı olarak ayır. Örnek bir akış al ve istek ile yanıtın nasıl çalıştığını göster.
- @server.js dosyasını açıkla
README dosyası oluşturma
- Bu proje için bir README dosyası oluşturun.
Bu durumda Gemini CLI, README dosyasını oluşturmakla kalmadı, aynı zamanda Git deposuna eklemek ve değişiklikleri uzak depoya göndermek için komutları yürütmek istedi. Bunu yapmasına izin verdim. Ayrıca benim için LICENSE dosyası oluşturmayı teklif etti ve bunu yapmasına da izin verdim.
Artık oluşturulmuş bir README dosyam ve LICENSE dosyam var ve değişiklikler GitHub'a gönderildi.
Yeni bir özelliği uygulama
- Kullanıcının belirli bir konuşmacıya göre de arama yapmasına olanak tanıyan yeni bir özellik uygulamak istiyorum. Önce bu değişikliği nasıl uygulayacağınıza dair bir plan gösterin, ardından kodu oluşturabiliriz.
Onayladığım bir plan oluşturdu ve değişiklikleri uyguladı. Değişikliklerinizi test edin ve hatalar varsa (büyük olasılıkla) Gemini CLI'dan bunları düzeltmesini isteyin.
Değişiklikler istediğiniz gibi olduğunda, bunları kaydedip uzak depoya göndermek için aynı adımları uygulayabilirsiniz.
Önerilen özelliklere göre sorun oluşturma
Burada ilginç bir şey deneyelim. Gemini CLI'ya bu uygulamanın kullanıcı deneyimini nasıl iyileştirebileceğini soracağız. Gemini CLI, değerlendirmesine dayanarak bu önerileri aynı GitHub deposunda sorun olarak oluşturabilir. Bu işlem için Github MCP sunucusundaki "create_issue" aracı kullanılır.
Aşağıdaki istemi deneyin:
- Uygulamayı kullanıcı deneyimi açısından değerlendirmeni istiyorum. Kullanım kolaylığı, hızlı yanıt verme, faydalı mesajlar ve daha fazlası. Lütfen bir iyileştirme listesi oluşturun ve ardından bunları GitHub deposunda Sorun olarak oluşturun.
İyileştirmeleri önce sizinle paylaşır ve ardından GitHub deposunda sorun oluşturmak için izninizi ister. Çalışmamızdan örnek bir ekran görüntüsü:
Bir GitHub sorunu üzerinde çalışma ve önerilen değişiklikleri uygulama
Artık daha önce oluşturulan sorunlardan birini alıp Gemini CLI'dan bu sorunu çözmesini ve uygulamasını isteyebiliriz.
Oluşturduğu örnek bir sorun aşağıda gösterilmektedir:
Sorun URL'sinin tamamını alıp aşağıdaki gibi bir istem girin:
- Lütfen Sorun:
<YOUR_ISSUE_URL>
bölümünü inceleyerek hangi değişikliklerin yapılması gerektiğini anlayın. Önce planı tartış, ardından önerilen değişiklikleri kodda göster.
Değişiklikleri onaylayıp depoya aktarabilirsiniz. Hatta sorunu kapatmasını da isteyebilirsiniz.
7. (İsteğe bağlı) GEMINI.md ile Gemini CLI'yi özelleştirme
Şimdiye kadar Gemini CLI kullanımınıza baktıysanız yalnızca istemi verdiğimizi ve Gemini CLI'nin bunu yürütmesini beklediğimizi fark etmişsinizdir. Bazen sonuçlar beklentilerimize uygun olmuyordu. Bazı istemlerde, ne yapılması gerektiği konusunda biraz daha ayrıntılı bilgi verip bu talimatları isteme ekledik.
Bu, Gemini CLI'a yapmasını söylediğiniz işlemler ve aldığınız sonuçlar açısından sorunsuz çalışabilir. Ancak çoğu durumda, bu içeriğin kurallara uygun olmasını istersiniz. Bu kurallar, kullanılacak belirli programlama dilleri veya çerçeveler olabilir. Belirli araçlar da olabilir. Kodlama stilleri olabilir. Bu yalnızca kod oluşturmayla ilgili değildir. Gemini CLI'nın kesinlikle "planlama" modunda olmasını ve yalnızca bir plan sunmasını, sistemde herhangi bir kod oluşturmamasını veya dosyaları değiştirmemesini de isteyebilirsiniz.
GEMINI.md
girin. Bu, talimat bağlamını (Gemini modeline sağlanan "bellek" olarak da bilinir) yapılandırmak için çok önemli olan bağlam dosyasıdır (varsayılan olarak GEMINI.md'dir ancak contextFileName
ayarıyla yapılandırılabilir). Bu dosya, yapay zekaya projeye özel talimatlar, kodlama stili kılavuzları veya alakalı arka plan bilgileri vermenize olanak tanır. Böylece yapay zekanın yanıtları ihtiyaçlarınıza daha uygun ve doğru olur.
GEMINI.md
dosyası Markdown biçimindedir ve birden çok konumdan birleştirilerek hiyerarşik bir şekilde yüklenir.
Yükleme sırası:
- Genel bağlam:**
~/.gemini/GEMINI.md
** (tüm projeleriniz için geçerli olan talimatlar için). - Proje/Üst Bağlamı: CLI,
GEMINI.md
dosyaları için geçerli dizininizden proje köküne kadar arama yapar. - Alt Dizin Bağlamı: CLI, alt dizinleri de
GEMINI.md
dosyaları için tarayarak bileşene özel talimatlara olanak tanır.
Modele gönderilen son birleştirilmiş bağlamı görmek için /memory show
simgesini kullanabilirsiniz.
GEMINI.md
nasıl görünür ve resmi dokümanlardan birini oluştururuz:
# Project: My Awesome TypeScript Library
## General Instructions:
- When generating new TypeScript code, please follow the existing coding style.
- Ensure all new functions and classes have JSDoc comments.
- Prefer functional programming paradigms where appropriate.
- All code should be compatible with TypeScript 5.0 and Node.js 20+.
## Coding Style:
- Use 2 spaces for indentation.
- Interface names should be prefixed with `I` (e.g., `IUserService`).
- Private class members should be prefixed with an underscore (`_`).
- Always use strict equality (`===` and `!==`).
## Specific Component: `src/api/client.ts`
- This file handles all outbound API requests.
- When adding new API call functions, ensure they include robust error handling and logging.
- Use the existing `fetchWithRetry` utility for all GET requests.
## Regarding Dependencies:
- Avoid introducing new external dependencies unless absolutely necessary.
- If a new dependency is required, please state the reason.
Bu aracın, kodlama stili ve bağımlılık yönetimi gibi konularda genel talimatların yanı sıra çok ayrıntılı talimatlar verdiğini fark edeceksiniz. Bu, TypeScript projeleri için örnek bir GEMINI.md
dosyası olsa da programlama dilinize, çerçeveye, kodlama stilinize ve diğer tercihlerine göre kendi dosyanızı yazabilirsiniz.
Özel bir GEMINI.md
dosyasıyla deneme yapalım. Bu, Gemini CLI'nın yalnızca Plan modunda nasıl kullanılacağını gösteren bir gist'ten alınmıştır. Dosya burada yeniden üretilir:
# Gemini CLI Plan Mode
You are Gemini CLI, an expert AI assistant operating in a special 'Plan Mode'. Your sole purpose is to research, analyze, and create detailed implementation plans. You must operate in a strict read-only capacity.
Gemini CLI's primary goal is to act like a senior engineer: understand the request, investigate the codebase and relevant resources, formulate a robust strategy, and then present a clear, step-by-step plan for approval. You are forbidden from making any modifications. You are also forbidden from implementing the plan.
## Core Principles of Plan Mode
* **Strictly Read-Only:** You can inspect files, navigate code repositories, evaluate project structure, search the web, and examine documentation.
* **Absolutely No Modifications:** You are prohibited from performing any action that alters the state of the system. This includes:
* Editing, creating, or deleting files.
* Running shell commands that make changes (e.g., `git commit`, `npm install`, `mkdir`).
* Altering system configurations or installing packages.
## Steps
1. **Acknowledge and Analyze:** Confirm you are in Plan Mode. Begin by thoroughly analyzing the user's request and the existing codebase to build context.
2. **Reasoning First:** Before presenting the plan, you must first output your analysis and reasoning. Explain what you've learned from your investigation (e.g., "I've inspected the following files...", "The current architecture uses...", "Based on the documentation for [library], the best approach is..."). This reasoning section must come **before** the final plan.
3. **Create the Plan:** Formulate a detailed, step-by-step implementation plan. Each step should be a clear, actionable instruction.
4. **Present for Approval:** The final step of every plan must be to present it to the user for review and approval. Do not proceed with the plan until you have received approval.
## Output Format
Your output must be a well-formatted markdown response containing two distinct sections in the following order:
1. **Analysis:** A paragraph or bulleted list detailing your findings and the reasoning behind your proposed strategy.
2. **Plan:** A numbered list of the precise steps to be taken for implementation. The final step must always be presenting the plan for approval.
NOTE: If in plan mode, do not implement the plan. You are only allowed to plan. Confirmation comes from a user message.
Yukarıdaki içeriği GEMINI.md adlı bir dosyaya kaydedin ve bu dosyayı ~/.gemini/GEMINI.md
klasörüne kaydedin. Bu klasör, settings.json dosyasını oluşturduğumuz klasörle aynıdır. Ayrıca, GEMINI.md
dosyasını <current project folder>/.gemini
klasörünüzde saklayabilir veya farklı talimatlarınız varsa alt dizinlerinizde birden fazla GEMINI.md
dosyası bulundurabilirsiniz.
Uygulama oluşturmak için bir istem girin ve nasıl yanıt verdiğini görün.
İnceleyip ihtiyaçlarınıza göre uyarlayabileceğiniz ve kullanabileceğiniz başka bir GEMINI.md
dosyası ( Gemini Açıklama Modu) aşağıda verilmiştir. Bu, Gemini CLI'nın etkileşimli bir kılavuz olarak kullanılmasına odaklanır. Kullanıcıların, keşif sürecinde sohbet ederek karmaşık kod tabanlarını anlamasına yardımcı olur.
GEMINI.md
dosyası, Gemini CLI'ın tercihlerinize uymasını sağlamanın anahtarıdır. Bu alanı, projeniz için nasıl otomatik olarak oluşturabileceğinizi, Sistem İstemi'ni ve daha fazlasını nasıl özelleştirebileceğinizi ele alan "Pratik Gemini CLI" adlı pratik seriyi incelemenizi öneririz.
8. Tebrikler
Tebrikler! Gemini CLI'ı, özelliklerini başarıyla keşfettiniz ve birkaç kullanım alanında uyguladınız.