โอเพนซอร์สของ Google Gemini CLI—เอเจนต์ AI ที่ทำงานบนเทอร์มินัลซึ่งพา Gemini เข้าสู่เชลล์ของคุณ—ได้พัฒนาอย่างรวดเร็วตั้งแต่เปิดตัว และขณะนี้รองรับการกำหนดค่าที่หลากหลาย, ไฟล์บริบทของโปรเจกต์ (GEMINI.md / .gemini), คำสั่งแบบ slash ที่ปรับแต่งได้, และการควบคุมไดเรกทอรีของพื้นที่ทำงาน โปรเจกต์กำลังพัฒนาอย่างต่อเนื่องบน GitHub (คลังอย่างเป็นทางการ), เข้าสู่การเปิดให้ทดลองใช้สาธารณะพร้อมโควตาที่เอื้อเฟื้อ และกำลังถูกรวมเข้ากับเครื่องมือสำหรับนักพัฒนาตัวอื่น (การเชื่อมต่อกับตัวแก้ไขและ CI/Actions) แต่เมื่อทีมขยาย หรือเมื่อคุณทำงานข้ามไดรฟ์หรือในสภาพแวดล้อมที่มีข้อจำกัด (คอนเทนเนอร์, แล็ปท็อปที่บริษัทจัดการ, Cloud Shell, ระบบ Windows) คุณจะพบคำถามเชิงปฏิบัติอย่างรวดเร็ว: Gemini เก็บไฟล์ไว้ที่ไหน และคุณจะเปลี่ยนไดเรกทอรีที่ Gemini อ่านและเขียนได้อย่างไร?
Gemini CLI คืออะไร?
Gemini CLI เป็นเอเจนต์ AI แบบบรรทัดคำสั่งโอเพนซอร์สของ Google ที่นำพลังของโมเดล Gemini เข้ามาสู่เทอร์มินัลของคุณโดยตรง มันมีความสามารถของเอเจนต์เชิงโต้ตอบสำหรับการช่วยเหลือด้านโค้ด, ตรวจสอบไฟล์และโปรเจกต์, รันคำสั่งเชลล์ (พร้อมกลไกป้องกัน), และผสานรวมเครื่องมืออย่าง Google Search, ส่วนขยาย Model Context Protocol (MCP), และเครื่องมือสร้างสื่อที่มาพร้อมกับ Gemini CLI มีจุดมุ่งหมายให้เบา, สคริปต์ได้, และขยายได้; สามารถดาวน์โหลดได้จากคลังอย่างเป็นทางการและจัดแพ็กเกจให้ติดตั้งได้ง่าย
ทำไมไดเรกทอรีจึงสำคัญ
Gemini CLI จะเก็บการตั้งค่า (เช่น settings.json), ข้อความระบบหรือบริบท (GEMINI.md), ข้อมูลรับรองที่แคชไว้, ตัวระบุเทเลเมทรี, และสถานะถาวรอื่น ๆ ไว้ในไดเรกทอรี .gemini ตำแหน่งที่ไดเรกทอรีนั้นอยู่จะกำหนดว่า:
- CLI จะโหลดการตั้งค่าใด (ทั่วระบบผู้ใช้ vs. เฉพาะโปรเจกต์),
- ไฟล์ “หน่วยความจำ” ใดที่เอเจนต์จะอ่าน,
- จะเก็บแคชข้อมูลรับรองไว้ที่ไหน (มีผลต่อพฤติกรรมการเข้าสู่ระบบ),
- ความสามารถในการทำซ้ำข้ามเครื่องหรือใน CI เมื่อคุณต้องการให้คลังการตั้งค่าแบบกำหนดเอง
การทำความเข้าใจและ (เมื่อจำเป็น) การเปลี่ยนไดเรกทอรีช่วยให้ทำงานได้ดีขึ้นในเวิร์กโฟลว์หลายโปรเจกต์, CI, การดีพลอยแบบคอนเทนเนอร์, และทีมที่มีแหล่งเก็บการตั้งค่ากลาง
โดยปกติแล้ว Gemini CLI เก็บการตั้งค่าไว้ที่ไหน?
โดยค่าเริ่มต้น CLI จะใช้ไดเรกทอรี .gemini สำหรับการติดตั้งของผู้ใช้ส่วนใหญ่จะชี้ไปที่ ~/.gemini (โฟลเดอร์ .gemini ในไดเรกทอรีบ้านของคุณ) CLI ยังรองรับไฟล์ .gemini ระดับโปรเจกต์ (เช่น .gemini/settings.json ที่รูทของโปรเจกต์) ซึ่งจะแทนค่าการตั้งค่าระดับผู้ใช้เมื่อคุณทำงานจากโฟลเดอร์โปรเจกต์นั้น การตั้งค่าระบบจะอ่านจากตำแหน่งที่ขึ้นกับระบบปฏิบัติการ (เช่น /etc/ บน Linux หรือ %PROGRAMDATA% บน Windows) เมื่อมีการใช้งาน เส้นทางทั่วไป:
- Linux / macOS:
~/.gemini/(เช่น/home/alice/.geminiหรือ/Users/alice/.gemini). - Windows:
%USERPROFILE%\.gemini(เช่นC:\Users\Alice\.gemini).
ภายใน.geminiโดยทั่วไปคุณจะพบsettings.json,GEMINI.md,commands/, และแคชในเครื่อง CLI ยังอ่านโฟลเดอร์.gemini/ต่อโปรเจกต์ (ที่รูทโปรเจกต์) เพื่อการตั้งค่าระดับโปรเจกต์
ค่าเริ่มต้นนี้มีความสำคัญ: โดยประวัติแล้วไดเรกทอรีการตั้งค่าถูกกำหนดแบบฮาร์ดโค้ดเป็น .gemini ในไดเรกทอรีบ้าน
จะเปลี่ยนหรือเปลี่ยนเส้นทางไดเรกทอรีการตั้งค่าของ Gemini CLI ได้อย่างไร?
มีหลายวิธีที่ใช้งานได้จริง — ตั้งแต่ง่ายที่สุด (ทำงานในโฟลเดอร์ที่ต้องการ) ไปจนถึงวิธีที่แข็งแรงกว่า (ตัวแปรสภาพแวดล้อมหรือการเปลี่ยนเส้นทางระบบไฟล์) เลือกแนวทางตามว่าคุณควบคุมสภาพแวดล้อมการรันได้หรือไม่ (เครื่องพัฒนาท้องถิ่น vs. CI), ระบบปฏิบัติการที่คุณใช้อยู่, และคุณต้องการการเปลี่ยนแปลงชั่วคราวหรือถาวร
1) ใช้ .gemini ระดับโปรเจกต์ (แนะนำสำหรับการตั้งค่าเฉพาะโปรเจกต์)
หากคุณต้องการการตั้งค่าเฉพาะโปรเจกต์ ให้สร้างไดเรกทอรีย่อย .gemini ที่รูทของโปรเจกต์ของคุณ และวาง settings.json, GEMINI.md, และไฟล์โปรเจกต์อื่น ๆ ไว้ที่นั่น Gemini CLI จะให้ความสำคัญกับการตั้งค่าระดับโปรเจกต์เมื่อคุณรันจากไดเรกทอรีของโปรเจกต์นั้น:
your-project/├─ .gemini/│ ├─ settings.json│ └─ GEMINI.md└─ src/
เริ่ม gemini ขณะเชลล์ของคุณอยู่ที่ your-project/ แล้ว CLI จะค้นหาไฟล์ .gemini จากโครงสร้างนั้น (มันจะค้นขึ้นไปตามไดเรกทอรีเพื่อหา context ของโปรเจกต์) วิธีนี้ปลอดภัยและชัดเจนที่สุดสำหรับการตั้งค่าต่อโปรเจกต์
2) ใช้ตัวแปรสภาพแวดล้อมที่มีการระบุไว้ (เมื่อรองรับ)
ฐานโค้ดและเอกสารของ Gemini CLI อ้างถึงตัวแปรสภาพแวดล้อมหลายตัวที่ใช้ปรับเปลี่ยนพฤติกรรม บางตัวตั้งใจไว้สำหรับการตั้งค่าระบบหรือการแทนที่ไฟล์เฉพาะ:
GEMINI_API_KEY,GEMINI_MODELเป็นต้น ใช้กันทั่วไปสำหรับการยืนยันตัวตนและการเลือกโมเดล- มีการอ้างอิงในฐานโค้ดและเอกสารถึงตัวแปรเช่น
GEMINI_CLI_SYSTEM_SETTINGS_PATH(ใช้แทนที่พาธการตั้งค่าระบบ) และค่าคงที่เช่นGEMINI_CONFIG_DIR(ชื่อ.geminiค่าเริ่มต้นที่ใช้ในโค้ด) บางคำร้องจากชุมชนและ PR เสนอให้เพิ่มหรือรองรับตัวแปรสภาพแวดล้อมGEMINI_CONFIG_DIRเพื่อให้ผู้ใช้ย้ายไดเรกทอรีการตั้งค่าทั้งหมดได้
ตัวอย่าง (bash / macOS / Linux):
# Temporary for this shell sessionexport GEMINI_CONFIG_DIR="$HOME/custom_gemini_dir"# Or override system settings path if your install supports it:export GEMINI_CLI_SYSTEM_SETTINGS_PATH="/etc/my-gemini/system.settings.json"# Then rungemini
PowerShell (Windows):
$env:GEMINI_CONFIG_DIR = 'C:\Users\you\CustomGemini'gemini
ข้อควรระวังสำคัญ: ตามการอภิปรายและประเด็นล่าสุดในชุมชน
GEMINI_CONFIG_DIRถูกขอและมีการอ้างถึงในโค้ดบางส่วน — แต่มีการรายงานบั๊กเฉพาะแพลตฟอร์มและพฤติกรรมที่ไม่สม่ำเสมอ (โดยเฉพาะบน Windows) ซึ่งหมายความว่าการเปลี่ยนเส้นทางผ่านตัวแปรสภาพแวดล้อมอาจไม่เชื่อถือได้อย่างสม่ำเสมอบนทุกแพลตฟอร์มหรือทุกรีลีส โปรดตรวจสอบบันทึกรีลีสของ Gemini CLI และประเด็นในรีโปสำหรับเวอร์ชันที่คุณติดตั้ง หากคุณพึ่งพาวิธีนี้
3) เพิ่มไดเรกทอรีให้กับพื้นที่ทำงานของ Gemini ภายในเซสชัน
หากคุณต้องการให้ Gemini รับรู้ไดเรกทอรีเพิ่มเติม (เพื่ออ่านไฟล์เป็นบริบท) มีชุดคำสั่งเชิงโต้ตอบ /directory ตัวอย่างเช่น:
/directory add path/to/another/project/directory list
วิธีนี้ไม่ได้ย้ายไดเรกทอรีการตั้งค่า แต่ช่วยให้เอเจนต์รวมไฟล์จากไดเรกทอรีอื่นเข้ามาในบริบทพื้นที่ทำงานได้ เป็นประโยชน์เมื่อคุณต้องการให้เอเจนต์อ้างอิงคลังอื่น ๆ โดยไม่ต้องเปลี่ยนการตั้งค่าทั่วระบบของคุณ
4) สร้าง symlink หรือ bind ของระบบไฟล์ (ทางออกเชิงปฏิบัติ)
บน Unix/macOS:
# move the original config foldermv ~/.gemini ~/gemini_backup# create a symlink to your desired locationln -s /path/to/central/gemini-config ~/.gemini
บน Windows (พรอมต์ PowerShell สิทธิ์ผู้ดูแล):
# Move the original directoryMove-Item -Path $env:USERPROFILE\.gemini -Destination C:\GeminiConfigBackup# Create a junction (administrator)New-Item -ItemType Junction -Path $env:USERPROFILE\.gemini -Target C:\CentralGeminiConfig
แนวทางนี้บังคับให้ CLI อ่านจากตำแหน่งที่คุณต้องการโดยไม่ต้องพึ่งการรองรับโดยตรงในตัว CLI หมายเหตุ: symlink/junction ต้องการสิทธิ์ที่เหมาะสมของระบบไฟล์ และอาจมีพฤติกรรมแตกต่างกันในสภาพแวดล้อมคอนเทนเนอร์หรือ Windows โปรดใช้ด้วยความระมัดระวัง (ดู “หมายเหตุเฉพาะ Windows” ด้านล่าง)
5) เปลี่ยนไดเรกทอรีบ้านที่มีผลสำหรับโปรเซส (เทคนิคนิยมในคอนเทนเนอร์/CI)
# Run gemini with a custom HOME (bash)HOME=/ci/workspace/you gemini --some-command# Or in a container DockerfileENV HOME=/app/userRUN mkdir -p /app/user/.geminiCOPY config /app/user/.gemini
วิธีนี้มีประโยชน์สำหรับความสามารถในการทำซ้ำใน CI แต่ควรระวัง: การเปลี่ยน HOME อาจส่งผลต่อเครื่องมืออื่นและกระบวนการยืนยันตัวตน (เช่น แคช Google OAuth) ดังนั้นควรจำกัดเทคนิคนี้ไว้ในคอนเทนเนอร์ที่แยกจากกันหรือตัวครอบระดับโปรเซส
จะติดตั้งและใช้ Gemini CLI ผ่าน CometAPI ได้อย่างไร?
คำตอบสั้น ๆ: มีสองแนวทางที่ใช้งานได้จริง — (A) เรียกใช้โมเดล Gemini โดยตรงผ่าน CometAPI (แนะนำและง่ายที่สุด), หรือ (B) ทำให้ Gemini CLI อย่างเป็นทางการสื่อสารกับ CometAPI โดยใช้รีลีสของ Gemini CLI ที่รองรับการกำหนด base URL แบบกำหนดเอง (บางรีลีส/PR เพิ่มสิ่งนี้), หรือรันพร็อกซีโลคัลขนาดเล็กที่แปลงคำขอของ Gemini CLI ให้เป็นการเรียกแบบ CometAPI/OpenAI
CometAPI คืออะไร?
CometAPI เป็นเกตเวย์/ตัวรวม API ที่เปิดเผยโมเดลจากบุคคลที่สามหลายร้อยรุ่น (รวมถึงตระกูล Gemini ของ Google) ผ่าน HTTP API รูปแบบ OpenAI คุณสมัครใช้งาน รับคีย์ API แบบ bearer แล้วเรียกปลายทางเช่น https://api.cometapi.com/v1/chat/completions CometAPI ใช้โทเค็นแบบ bearer มาตรฐานในเฮดเดอร์ Authorization
ทำไมต้องใช้ CometAPI? มันเสนอราคาการใช้งาน API ต่ำกว่าของทางการเพื่ออำนวยความสะดวกในการอินทิเกรต คู่มือการติดตั้งและการใช้งาน Gemini CLI:
จะเรียกใช้โมเดล Gemini โดยตรงผ่าน CometAPI ได้อย่างไร? (แนะนำ)
หากเป้าหมายของคุณคือการใช้โมเดล Gemini และไม่จำเป็นต้องใช้ฟีเจอร์ของ Gemini CLI โดยเคร่งครัด การเรียก CometAPI โดยตรงนั้นตรงไปตรงมาและเชื่อถือได้
export COMET_KEY="sk-xxxx"curl -s -X POST "https://api.cometapi.com/v1/chat/completions" \ -H "Authorization: Bearer $COMET_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gemini-2.5-pro", "messages": [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Summarize the 3 key benefits of unit tests."} ], "max_tokens": 300 }' | jq .
การเรียกโดยตรงเหล่านี้ช่วยให้คุณผนวก CometAPI เข้ากับสคริปต์ แอป หรือ CI ได้โดยไม่ต้องพึ่งพา Gemini CLI
สามารถทำให้ Gemini CLI ใช้ CometAPI ได้ไหม?
บางเวอร์ชันของ Gemini CLI/PR เพิ่มตัวแปรสภาพแวดล้อมเพื่อแทนที่ฐาน URL ของ Gemini API หาก Gemini CLI ที่คุณติดตั้งรองรับการกำหนดฐาน URL ของ Gemini แบบกำหนดเองและใช้คีย์ CometAPI คุณสามารถชี้ไปที่ CometAPI และตั้งค่าคีย์ CometAPI เป็น GEMINI_API_KEY (CLI คาดว่ามีตัวแปรคีย์ชื่อ GEMINI_API_KEY สำหรับการยืนยันคีย์ของ Gemini API)
ตัวอย่าง:
# example env — *check your gemini-cli docs for exact var names*export GEMINI_API_KEY="sk-xxxxx" # CometAPI keyexport GOOGLE_GEMINI_BASE_URL="https://api.cometapi.com/v1" # if supportedgemini # run the CLI; it will use the configured base URL
การแก้ไขปัญหา: ปัญหาทั่วไปและแนวทางแก้
ปัญหา: Gemini มองไม่เห็นไฟล์ในรีโปอื่น
- ลองใช้
gemini --include-directories /path/to/repoขณะเริ่มต้น หรือในเซสชัน:/directory add /path/to/repo. - หากรีโปอยู่บนเน็ตเวิร์กเมานต์ ให้ตรวจสอบสิทธิ์และยืนยันว่าผู้ใช้โปรเซสของ CLI สามารถอ่านไฟล์ได้.
- หากคุณใช้ symlink เพื่อย้าย
.geminiให้ตรวจสอบว่า CLI ติดตาม symlink สำหรับGEMINI.mdและsettings.json(บางเวอร์ชันจะไม่ติดตาม symlink บางชนิดด้วยเหตุผลด้านความปลอดภัย).
ปัญหา: gemini ไม่สามารถสร้าง ~/.gemini บน Windows (EPERM)
- เปิดเทอร์มินัลด้วยสิทธิ์ผู้ดูแลระบบ หรือปรับสิทธิ์โฟลเดอร์.
- ตั้งตำแหน่งการตั้งค่าแบบกำหนดเองผ่าน symlink หรือเมื่อรองรับ ผ่านตัวแปรสภาพแวดล้อม (ติดตามการรองรับ
GEMINI_CONFIG_DIRในอนาคต).
ปัญหา: cd ไม่เปลี่ยนไดเรกทอรีทำงานภายในโหมดเชลล์
นี่เป็นปัญหาที่รับทราบแล้วบนบางแพลตฟอร์ม ข้อแนะนำ: สลับไปเรียกใช้คำสั่งเชลล์จากภายนอกโปรเซสของ Gemini CLI หรือเพิ่มไดเรกทอรีผ่าน /directory add.
ปัญหา: ชื่อโมเดลของ CometAPI ไม่ตรงกับที่คาดไว้
เรียกปลายทาง /v1/models และตรวจสอบ JSON โดยละเอียด รหัสโมเดลมักจะมีสตริงตัวแปรที่เฉพาะเจาะจง (เช่น gemini-2.5-flash-preview-04-17) ใช้สตริงนั้นอย่างถูกต้องในคำขอของคุณ
บทสรุป
การออกแบบค่าเริ่มต้นของ Gemini CLI สนับสนุนพฤติกรรมที่เข้าใจง่ายและค้นพบได้: ใช้ ~/.gemini ระดับผู้ใช้เป็นค่าพื้นฐาน และ .gemini ระดับโปรเจกต์สำหรับแทนค่าต่อรีโป ชุมชนกำลังผลักดันให้มีความสามารถในการกำหนดค่าแบบเนทีฟมากขึ้น (ตัวแปรสภาพแวดล้อมหรือแฟลกที่ชัดเจน) เพื่อทำให้เครื่องมือเป็นมิตรกับสภาพแวดล้อมแบบหลายผู้ใช้ คอนเทนเนอร์ และองค์กร
วิธีเปลี่ยนไดเรกทอรีของ Gemini CLI:
ภาพรวม: Gemini CLI เก็บการตั้งค่าและไฟล์บริบทระดับผู้ใช้ไว้ในไดเรกทอรี .gemini (โดยทั่วไปคือ ~/.gemini) คุณสามารถมีอิทธิพลต่อไดเรกทอรีที่ CLI ใช้ได้โดย (1) พึ่งพา .gemini ระดับโปรเจกต์ในไดเรกทอรีทำงานปัจจุบัน, (2) ใช้ตัวแปรสภาพแวดล้อมหรือออปชันของ CLI เมื่อรองรับ, (3) เพิ่มไดเรกทอรีพื้นที่ทำงานภายในเซสชันเชิงโต้ตอบ, หรือ (4) ใช้เทคนิคของระบบไฟล์ (symlink, bind mount, หรือการเปลี่ยนตัวแปร home/profile) เมื่อไม่มีตัวเลือกแบบเนทีฟ
เริ่มต้นโดยสำรวจความสามารถของโมเดล Gemini (เช่น Gemini 3 Pro) ใน Playground และดู คู่มือ API สำหรับคำแนะนำโดยละเอียด ก่อนใช้งาน โปรดตรวจสอบให้แน่ใจว่าคุณได้เข้าสู่ระบบ CometAPI และได้รับคีย์ API แล้ว CometAPI เสนอราคาที่ต่ำกว่าราคาทางการเพื่อช่วยให้คุณอินทิเกรตได้สะดวก
พร้อมใช้งานแล้วหรือยัง?→ ทดลองใช้โมเดล Gemini ฟรี !


