1. Giới thiệu
Trong lớp học lập trình này, bạn sẽ tìm hiểu về Gemini CLI, một tác nhân AI nguồn mở mang sức mạnh của Gemini trực tiếp vào thiết bị đầu cuối của bạn.
Dự án Gemini CLI là dự án nguồn mở và bạn có thể xem lộ trình công khai tại đây.
Trong lớp học lập trình này, bạn sẽ sử dụng phương pháp từng bước trong các hoạt động như:
- Cài đặt Gemini CLI
- Cấu hình cơ bản
- Khám phá các công cụ và lệnh tích hợp trong Gemini CLI
- Tuỳ chỉnh Gemini CLI thông qua tệp
GEMINI.md - Khám phá một số trường hợp sử dụng với Gemini CLI
Bạn cần có
- Trình duyệt web Chrome
- Tài khoản Gmail
- Một máy cục bộ đã cài đặt Node 20+.
Lớp học lập trình này được thiết kế cho người dùng và nhà phát triển ở mọi cấp độ (kể cả người mới bắt đầu).
2. Cài đặt
Trước khi thiết lập và chạy Gemini CLI, hãy tạo một thư mục mà chúng ta sẽ dùng làm thư mục chính cho tất cả các dự án mà chúng ta có thể tạo bên trong thư mục đó. Đây là điểm bắt đầu để Gemini CLI hoạt động, mặc dù công cụ này cũng sẽ tham chiếu một số thư mục khác trên hệ thống của bạn và chúng ta sẽ đề cập đến các thư mục này sau, nếu cần.
Tiếp tục tạo một thư mục mẫu (gemini-cli-projects) rồi chuyển đến thư mục đó thông qua các lệnh bên dưới. Nếu bạn muốn sử dụng tên thư mục khác, vui lòng thực hiện.
mkdir gemini-cli-projects
Hãy chuyển đến thư mục đó:
cd gemini-cli-projects
Để chạy Gemini CLI, bạn có thể sử dụng một trong các phương thức sau:
- Chạy lệnh sau:
npx https://github.com/google-gemini/gemini-cli
- Trước tiên, bạn có thể cài đặt Gemini CLI trên toàn hệ thống. Đảm bảo bạn có quyền Quản trị viên để thực hiện việc đó.
npm install -g @google/gemini-cli
rồi chạy lệnh sau:
gemini
Giả sử bạn đã chạy Gemini CLI bằng một trong các phương thức nêu trên, bạn sẽ thấy màn hình sau đây yêu cầu bạn chọn một giao diện. Hãy tiếp tục và chọn một kiểu mà bạn thích:

Sau khi bạn chọn, hệ thống sẽ yêu cầu bạn chọn Phương thức xác thực. Bạn nên sử dụng Tài khoản Google cá nhân thay vì tài khoản không phải của Google hoặc tài khoản liên quan đến Google Workspace trong phòng thí nghiệm này. Giấy phép miễn phí này cho phép bạn sử dụng Gemini 2.5 Pro và cửa sổ ngữ cảnh 1 triệu token của mô hình này. Cấp miễn phí cho phép gửi 60 yêu cầu về mô hình mỗi phút và 1.000 yêu cầu mỗi ngày mà không tốn phí.
Nếu hạn mức miễn phí hiện tại được cấp cho Tài khoản Google không đủ, bạn có thể chọn sử dụng Khoá Gemini API hoặc thậm chí là Google Cloud Vertex AI. Trong trường hợp này, bạn sẽ cần có mã dự án và tên vị trí cho dự án đó. Hãy tham khảo phần Xác thực trong tài liệu nếu bạn dự định sử dụng các phương thức xác thực khác.

Hãy nhấp vào Enter. Thao tác này sẽ mở trang Xác thực của Google trong trình duyệt. Tiến hành xác thực bằng Tài khoản Google của bạn, chấp nhận các điều khoản và sau khi xác thực thành công, bạn sẽ thấy Gemini CLI đã sẵn sàng và đang chờ lệnh của bạn. Dưới đây là ảnh chụp màn hình mẫu:

Nhập /help (dấu gạch chéo xuôi) và bạn sẽ thấy nhiều lệnh cũng như phím tắt như minh hoạ dưới đây:

Lần đầu tiên tương tác với Gemini CLI
Nhập tin nhắn đầu tiên của bạn vào hộp. Chúng ta sẽ đưa ra một truy vấn như:

Bạn sẽ nhận thấy rằng truy vấn của chúng ta đã tạo ra một công cụ GoogleSearch (một công cụ tích hợp trong Gemini CLI) được gọi. Đây là một cách thú vị mà chúng tôi đã sử dụng một trong những công cụ mạnh mẽ được tích hợp sẵn của Gemini CLI, cụ thể là GoogleSearch. Công cụ này đưa ra câu trả lời dựa trên thông tin mà nó lấy được từ web. Chúng ta sẽ tìm hiểu thêm về Công cụ trong phần tiếp theo.
Tạm thời, hãy thoát Gemini CLI. Bạn có thể thực hiện việc này thông qua lệnh /quit hoặc thực hiện lệnh Ctrl-C hai lần trong phiên tương tác của Gemini CLI.
Tệp tuỳ chỉnh Gemini CLI : settings.json
Nếu nhớ lại lần đầu tiên chúng ta bắt đầu sử dụng Gemini CLI, bạn sẽ thấy chúng ta được yêu cầu chọn một chủ đề rồi chọn một phương thức xác thực. Trong các lần chạy Gemini CLI tiếp theo, bạn sẽ không được yêu cầu chọn lại một giao diện và phương thức xác thực. Điều này có nghĩa là tệp này được duy trì ở một nơi nào đó và tệp mà tệp này sử dụng có tên là settings.json. Đây là cách để tuỳ chỉnh Gemini CLI.
Các chế độ cài đặt được áp dụng theo thứ tự ưu tiên sau:
- Không gian làm việc:
.gemini/settings.json(ghi đè chế độ cài đặt người dùng và hệ thống). - Người dùng:
~/.gemini/settings.json(ghi đè chế độ cài đặt hệ thống). - Hệ thống:
/etc/gemini-cli/settings.json(áp dụng cho tất cả người dùng).
Nếu bạn nhớ, tại thời điểm chọn giao diện, chúng tôi đã yêu cầu bạn lưu chế độ cài đặt trong phần Cài đặt người dùng. Vì vậy, hãy truy cập vào ~/.gemini folder và bạn sẽ thấy tệp settings.json.
Tệp settings.json của tôi được minh hoạ bên dưới. Nếu đã chọn một giao diện khác, bạn sẽ thấy tên của giao diện đó ở đó.
{
"theme": "Default",
"selectedAuthType": "oauth-personal"
}
3. Tham số lệnh Gemini CLI
Có một số tham số dòng lệnh mà bạn có thể cung cấp khi khởi động Gemini CLI. Để xem danh sách đầy đủ các lựa chọn, bạn có thể sử dụng --help như minh hoạ dưới đây.
gemini --help
Thao tác này sẽ cho thấy toàn bộ các lựa chọn có sẵn. Bạn nên xem tài liệu tại đây.
Hãy cùng tìm hiểu một số ví dụ. Cách đầu tiên là định cấu hình Gemini CLI để sử dụng mô hình Pro hoặc Flash. Hiện tại, tại thời điểm viết hướng dẫn này, đây là 2 mô hình duy nhất được hỗ trợ. Theo mặc định, mô hình Gemini 2.5 Pro sẽ được dùng. Tuy nhiên, nếu muốn dùng Mô hình Flash, bạn có thể thực hiện việc này khi khởi động Gemini CLI thông qua tham số -m như minh hoạ dưới đây:
gemini -m "gemini-2.5-flash"
Bạn sẽ nhận thấy rằng nếu bắt đầu theo cách trên, bạn có thể kiểm tra mô hình ở dưới cùng bên phải của thiết bị đầu cuối Gemini CLI như minh hoạ dưới đây:

Chế độ không tương tác
Một lựa chọn thú vị là chạy Gemini CLI ở chế độ không tương tác. Điều này có nghĩa là bạn cung cấp trực tiếp câu lệnh cho Gemini và Gemini sẽ tiếp tục phản hồi câu lệnh đó mà không cần mở thiết bị đầu cuối tương tác Gemini CLI. Điều này rất hữu ích nếu bạn dự định sử dụng Gemini CLI theo cách tự động trong tập lệnh hoặc bất kỳ quy trình tự động hoá nào khác. Bạn dùng tham số -p để cung cấp câu lệnh cho Gemini CLI như minh hoạ bên dưới:
gemini -p "What is the gcloud command to deploy to Cloud Run"
Xin lưu ý rằng bạn không thể tiếp tục trò chuyện bằng cách đặt câu hỏi nối tiếp.
4. Gemini CLI – Các công cụ tích hợp
Gemini CLI đi kèm với một bộ công cụ tích hợp và tài liệu về công cụ nêu rõ "Mô hình Gemini sử dụng các công cụ này để tương tác với môi trường cục bộ của bạn, truy cập thông tin và thực hiện các hành động. Những công cụ này giúp tăng cường các chức năng của CLI, cho phép công cụ này không chỉ tạo văn bản mà còn hỗ trợ nhiều nhiệm vụ."
Để lấy danh sách các Công cụ tích hợp hiện tại, chúng ta chỉ cần gọi lệnh /tools như minh hoạ bên dưới:

Một trong những điều bạn cần lưu ý ngay lập tức là tự hỏi liệu Gemini CLI có thể gọi những công cụ này một cách đơn giản khi muốn hay không? Câu trả lời mặc định là không, khi nói đến các thao tác nhạy cảm có thể liên quan đến việc ghi vào hệ thống cục bộ, đọc từ hệ thống bên ngoài, truy cập vào mạng bên ngoài, v.v.
Mặc dù có một --yolomode khi bạn khởi động CLI (giao diện dòng lệnh) mà chúng tôi sẽ không sử dụng, nhưng bạn sẽ thấy Gemini CLI nhắc bạn cấp quyền chạy công cụ mà công cụ này đã chọn. Bạn có thể từ chối cấp quyền, hoặc cho phép chạy một lần hoặc cấp quyền chung để luôn chạy. Bạn đang và nên nắm toàn quyền kiểm soát mọi việc.
Hãy đưa ra một câu lệnh để Gemini CLI chọn một trong các công cụ tích hợp để thực thi. Câu lệnh này sẽ giúp chúng ta hiểu rõ cách hoạt động của công cụ.
Chúng tôi muốn lấy thông tin về tin tức tài chính mới nhất trên toàn thế giới và lưu thông tin đó vào một tệp trong thư mục làm việc cục bộ nơi chúng tôi chạy Gemini CLI. Chúng tôi đưa ra câu lệnh sau:
Search for the latest headlines today in the world of finance and save them in a file named finance-news-today.txt
Hãy tưởng tượng xem nó cần làm gì. Lý tưởng nhất là nó cần truy cập Google Tìm kiếm để lấy tin tức từ một số nguồn thông tin có liên quan có thể cung cấp tin tức tài chính. Sau đó, bạn cần tạo một tệp có tên là finance-news-today.txt (một thao tác ghi trên hệ thống cục bộ sẽ yêu cầu bạn cấp quyền) cùng với nội dung của tệp.
Hãy xem điều gì sẽ xảy ra (bạn nên tiếp tục thực hiện tương tự trên máy của mình).
Điều đầu tiên mà công cụ này làm là gọi công cụ GoogleSearch để tìm kiếm trên web.

Sau khi tìm kiếm xong, phương thức này sẽ truy xuất dữ liệu như minh hoạ dưới đây:

Sau khi hoàn tất, bạn có thể ghi nội dung này vào tệp và nội dung sẽ sử dụng công cụ WriteFile. Tuy nhiên, vì đây là một thao tác nhạy cảm (ghi), nên nội dung sẽ yêu cầu bạn cấp quyền. Bạn có thể quyết định loại quyền, tức là cho phép một lần, luôn cho phép, v.v. Hiện tại, chúng ta sẽ chọn cho phép một lần.

Sau đó, thông tin này sẽ được ghi vào tệp và một thông báo thành công sẽ xuất hiện bên dưới:

Làm cách nào để kiểm tra xem tệp có được ghi hay không? Chúng ta có thể dùng @file để yêu cầu đọc nội dung. Chúng tôi đưa ra một câu lệnh như minh hoạ bên dưới. Khi chúng ta nhập @, danh sách các tệp trong thư mục hiện tại sẽ xuất hiện và tệp vừa tạo cũng xuất hiện. Chọn câu lệnh đó rồi gửi. Câu lệnh của tôi được trình bày dưới đây:
read the contents of @finance-news-today.txt
Thao tác này sẽ dẫn đến việc các công cụ bắt buộc (ReadManyFiles, ReadFile) được gọi và nội dung sẽ xuất hiện như minh hoạ dưới đây:

Đây cũng là thời điểm thích hợp để tìm hiểu cách làm việc trực tiếp với Shell trong Gemini CLI. Bạn có thể chuyển sang chế độ shell bằng cách nhấn ! trong hộp tin nhắn. Thao tác này sẽ chuyển sang chế độ Shell. Bạn có thể quay lại bằng cách nhấn lại phím ! hoặc nhấn phím ESC.
Khi ở chế độ shell, bạn sẽ thấy biểu tượng ! ở đầu lời nhắc như minh hoạ dưới đây:

Tôi có thể kiểm tra trực tiếp bằng các lệnh tiêu chuẩn như pwd và ls như minh hoạ dưới đây:

Hôm nay, chúng ta có thể in nội dung của tệp thông qua lệnh cat.

Bài tập: Sau đây là một bài tập ngắn để bạn thử. Chọn một nguồn cấp dữ liệu RSS mà bạn muốn. Đưa ra câu lệnh cho Gemini CLI để tìm nạp nội dung của nguồn cấp dữ liệu RSS và định dạng kết quả theo một cách cụ thể cho bạn. Đây là một cách hay để tự động hoá một việc nào đó vào đầu ngày.
Gợi ý: Bạn nên để Gemini CLI sử dụng công cụ WebFetch.
5. Định cấu hình máy chủ Giao thức ngữ cảnh mô hình (MCP)
Máy chủ MCP là một ứng dụng cung cấp các công cụ và tài nguyên cho Gemini CLI thông qua Giao thức ngữ cảnh mô hình, cho phép Gemini CLI tương tác với các hệ thống và nguồn dữ liệu bên ngoài. Các máy chủ MCP đóng vai trò là cầu nối giữa mô hình Gemini và môi trường cục bộ của bạn hoặc các dịch vụ khác như API.
Máy chủ MCP cho phép Gemini CLI khám phá và thực thi các công cụ, từ đó mở rộng khả năng của Gemini CLI để thực hiện các hành động ngoài các tính năng tích hợp sẵn, chẳng hạn như tương tác với cơ sở dữ liệu, API, tập lệnh tuỳ chỉnh hoặc quy trình làm việc chuyên biệt.
Gemini CLI hỗ trợ việc định cấu hình các máy chủ MCP để khám phá và sử dụng các công cụ tuỳ chỉnh. Nếu đã chạy Gemini CLI, bạn có thể kiểm tra các máy chủ MCP được định cấu hình thông qua lệnh /mcp như minh hoạ dưới đây:

Nếu bạn chưa định cấu hình bất kỳ máy chủ MCP nào, thì ứng dụng này sẽ khởi chạy tài liệu về Máy chủ MCP của Gemini CLI.
Bạn có thể định cấu hình các máy chủ MCP ở cấp độ chung trong tệp ~/.gemini/settings.json hoặc trong thư mục gốc của dự án. Tạo hoặc mở tệp .gemini/settings.json. Trong tệp này, bạn sẽ cần thêm khối cấu hình mcpServers, như minh hoạ dưới đây:
"mcpServers": {
"server_name_1": {},
"server_name_2": {},
"server_name_n": {}
}
Mỗi cấu hình máy chủ đều hỗ trợ các thuộc tính sau ( Tài liệu tham khảo):
Bắt buộc (một trong những giá trị sau)
- command (string): Đường dẫn đến tệp thực thi cho phương thức truyền Stdio
- url (chuỗi): URL điểm cuối SSE (ví dụ: "http://localhost:8080/sse")
- httpUrl (chuỗi): URL điểm cuối phát trực tuyến qua HTTP
Không bắt buộc
- args (string[]): Đối số dòng lệnh cho phương thức truyền Stdio
- headers (object): Tiêu đề HTTP tuỳ chỉnh khi sử dụng url hoặc httpUrl
- env (đối tượng): Biến môi trường cho quy trình máy chủ. Các giá trị có thể tham chiếu đến các biến môi trường bằng cách sử dụng cú pháp $VAR_NAME hoặc ${VAR_NAME}
- cwd (chuỗi): Thư mục làm việc cho phương thức truyền Stdio
- timeout (number): Thời gian chờ yêu cầu tính bằng mili giây (mặc định: 600.000 mili giây = 10 phút)
- trust (boolean): Khi có giá trị true, tham số này sẽ bỏ qua tất cả các bước xác nhận lệnh gọi công cụ cho máy chủ này (mặc định: false)
- includeTools (string[]): Danh sách tên công cụ cần đưa vào từ máy chủ MCP này. Khi được chỉ định, chỉ những công cụ có trong danh sách này mới có sẵn trên máy chủ này (hành vi danh sách cho phép). Nếu bạn không chỉ định, thì theo mặc định, tất cả các công cụ trên máy chủ sẽ được bật.
- excludeTools (string[]): Danh sách tên công cụ cần loại trừ khỏi máy chủ MCP này. Các công cụ có trong danh sách này sẽ không có sẵn cho mô hình, ngay cả khi máy chủ hiển thị các công cụ đó. Lưu ý: excludeTools sẽ được ưu tiên hơn includeTools – nếu một công cụ có trong cả hai danh sách, thì công cụ đó sẽ bị loại trừ.
Hãy tiến hành định cấu hình một trong những máy chủ MCP chính mà bạn có thể cần nếu đang làm việc với Github. Mặc dù bạn nên lưu ý rằng Gemini CLI sẽ gọi các công cụ git mà bạn có trên hệ thống của mình và bạn cũng có thể hướng dẫn Gemini CLI sử dụng công cụ đó. Vì vậy, hãy hiểu rằng công cụ này sẽ giúp bạn thực hiện các lệnh và thực thi lệnh đó cho bạn, nhưng bạn phải thiết lập các công cụ đó trên hệ thống của mình.
Máy chủ Github MCP
Máy chủ MCP chính thức của Github cung cấp đủ tài liệu về các công cụ mà máy chủ này hiển thị cùng với cách định cấu hình các công cụ đó. Bạn có thể chọn chạy cục bộ hoặc từ xa, vì Gemini CLI cũng hỗ trợ các máy chủ MCP từ xa.
Trong hướng dẫn này, chúng ta sẽ chọn sử dụng tuỳ chọn Remote MCP Server trong Github. Để làm việc này, trước tiên, bạn cần có Mã truy cập cá nhân (PAT) từ Github.
Sau khi có được đối tượng này, bạn sẽ cần thêm đối tượng MCP Server vào tệp settings.json. Dưới đây là tệp settings.json hoàn chỉnh trên hệ thống của tôi. Bạn có thể có các chế độ cài đặt bổ sung, nhưng đối tượng mcpServers phải như sau:
{
"theme": "Default",
"selectedAuthType": "oauth-personal",
"mcpServers": {
"github": {
"httpUrl": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "GITHUB_PAT"
},
"timeout": 5000
}
}
}
Bạn có thể khởi động lại Gemini CLI hoặc thực hiện lệnh /mcp refresh sau khi cập nhật settings.json bằng cấu hình Máy chủ MCP Github. Ảnh chụp màn hình bên dưới làm nổi bật Máy chủ MCP Github được định cấu hình trên máy của tôi và nhiều công cụ hiện có sẵn cho Gemini CLI để hoạt động với MCP.

Hãy bắt đầu bằng một câu lệnh sẽ kích hoạt một trong các công cụ của Máy chủ MCP trên Github. Đưa ra câu lệnh sau:

Lưu ý rằng công cụ này sẽ chọn công cụ phù hợp từ Máy chủ MCP của Github, nhưng cũng như các Công cụ tích hợp khác, bạn cũng cần phải cấp quyền rõ ràng để gọi công cụ này. Hãy tiếp tục và xem kết quả bạn nhận được.
Giờ đây, bạn nên làm việc với một trong các dự án trên Github. Đưa ra câu hỏi bằng ngôn ngữ tự nhiên, chẳng hạn như:
- Hãy mô tả <repo-name> cho tôi?
- Sao chép <repo-name> trên máy cục bộ của tôi.
- Mô tả @<tên_tệp> hoặc @<tên_thư_mục>/
- Kho lưu trữ này có những thành phần nào?
- Tôi đã thực hiện các thay đổi cần thiết. Bạn có thể chuyển các thay đổi lên Github và sử dụng các công cụ Github MCP Server để thực hiện việc đó.
Chúng ta sẽ có một bài tập chi tiết về cách sử dụng Máy chủ MCP của Github ở phần sau của phòng thí nghiệm.
Máy chủ Context7 MCP
Context7 cung cấp tài liệu mới nhất cho LLM và trình chỉnh sửa mã AI. Nếu bạn muốn cung cấp ngữ cảnh cho LLM bằng tài liệu mới nhất về khung bạn chọn, thì máy chủ Context7 MCP là một lựa chọn phù hợp để định cấu hình.
Đảm bảo rằng bạn có thư viện được liệt kê trên trang chủ Context7.
Đây là MCP Server mà bạn cần thêm vào tệp settings.json.
"context7": {
"httpUrl": "https://mcp.context7.com/mcp"
}
Sau khi định cấu hình MCP Server và tải Gemini CLI thành công, bạn sẽ có thể xem các công cụ Context7 như sau:

Giờ đây, bạn có thể đưa ra câu lệnh cụ thể và yêu cầu Gemini CLI sử dụng Context7 để xem tài liệu mới nhất trong khi tạo ứng dụng hoặc đoạn mã bằng một khung XYZ cụ thể.
Dưới đây là một ví dụ về câu lệnh, trong đó tôi muốn viết một Đặc vụ bằng Bộ công cụ phát triển đặc vụ (ADK) của Google. Tôi đang chỉ định trong câu lệnh của mình để tra cứu tài liệu về vấn đề này thông qua Máy chủ Context7 MCP.
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
Sau đây là kết quả nhận được:

Máy chủ MCP của Google Trang trình bày
Dự án Github tại https://github.com/matteoantoci/google-slides-mcp cung cấp một máy chủ MCP để tương tác với Google Slides API. Thư viện này cho phép bạn tạo, đọc và sửa đổi bản trình bày trên Google Trang trình bày theo phương thức lập trình.
Các bước định cấu hình máy chủ MCP được cung cấp trong dự án. Bạn sẽ cần có một môi trường Node.js để tạo máy chủ, định cấu hình Dự án Google Cloud và mã thông báo OAuth 2.0, sau đó định cấu hình Máy chủ MCP trong tệp settings.json.
Sau khi thiết lập, bạn có thể chạy các câu lệnh như:
- Trích xuất thông tin mới nhất từ "web_url", tóm tắt thành các điểm chính và tạo một bản trình bày có tên "my_presentation".
Hãy dùng thử!
Nhiều máy chủ MCP
Dưới đây là danh sách bổ sung các máy chủ MCP mà bạn có thể quan tâm:
- Máy chủ MCP của Firebase
- Các dịch vụ truyền thông của AI tạo sinh của Google (Imagen, Veo, Lyria)
- MCP Toolbox for Databases (làm việc với Firestore, BigQuery, cơ sở dữ liệu Google Cloud)
- Máy chủ MCP của Google Workspace (hoạt động với Tài liệu, Trang tính, Lịch, Gmail)
Hướng dẫn thiết lập các máy chủ MCP nêu trên được đăng trong bài đăng này trên blog.
6. Các trường hợp sử dụng để thử
Bạn có thể áp dụng Gemini CLI cho nhiều trường hợp sử dụng đối với cả nhà phát triển và người dùng không phải nhà phát triển. Sau đây là một số trường hợp và tuỳ thuộc vào lĩnh vực mà bạn quan tâm, bạn có thể thử bất kỳ hoặc tất cả các trường hợp này.
Trong mỗi trường hợp này, lời nhắc sẽ được cung cấp. Bạn có thể dùng thử tính năng này ở chế độ tương tác hoặc không tương tác của Gemini CLI thông qua tham số -p tại thời điểm khởi chạy Gemini CLI.
Sắp xếp tệp/thư mục
Bạn có thể sử dụng Gemini CLI để sắp xếp các tệp tuỳ theo loại trong nhiều thư mục khi cần. Chuyển đến một thư mục trên máy có nhiều tệp .txt, .png, .jpg, .pdf, .mp4 và các tệp khác. Đây thường là thư mục Desktop hoặc thư mục Tải xuống.
Chuyển đến thư mục đó rồi khởi động Gemini CLI. Trước tiên, chúng ta sẽ yêu cầu AI tạo một số thư mục cho chúng ta ở đây: Hình ảnh, Tài liệu, Video, sau đó chúng ta sẽ yêu cầu AI sắp xếp các tệp trong các thư mục đó.
Gemini CLI thường sẽ nhắc bạn cấp quyền trước khi thực thi các lệnh, đặc biệt là những lệnh sửa đổi hệ thống tệp (chẳng hạn như ghi, di chuyển hoặc xoá tệp). Luôn xem xét kỹ những lời nhắc này trước khi cấp quyền. Đây là biện pháp dự phòng cho bạn.
Create the following folders "Images","Documents","Videos"
Sau đó, hãy đưa ra câu lệnh sau:
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.
Một số tình huống sắp xếp khác (các câu lệnh được đưa ra bên cạnh mỗi tình huống):
- Tóm tắt: Đối với mỗi tài liệu trong thư mục "Tài liệu", hãy tạo một tệp txt trong cùng thư mục có tên là "summary_ORIGINAL_FILENAME.txt" chứa nội dung tóm tắt 3 câu về các điểm chính của tài liệu.
- Phân loại theo loại: Quét tất cả tệp PDF và DOCX trong thư mục này. Di chuyển tất cả tệp có tên hoặc nội dung chứa từ "hoá đơn" vào thư mục "Tài chính/Hoá đơn". Di chuyển các tệp có "biên nhận" vào thư mục "Tài chính/Biên nhận". Mọi tệp .docx khác sẽ được chuyển vào thư mục "Báo cáo".
- Trích xuất thông tin chính (và "gắn thẻ"): Đối với mỗi tệp PDF trong thư mục "Financial/Invoices" (Tài chính/Hoá đơn), hãy đọc nội dung của tệp đó. Nếu bạn tìm thấy ngày, hãy đổi tên tệp để thêm ngày đó theo định dạng YYYY-MM-DD, ví dụ: ‘invoice_2025-07-26_original_name.pdf'.
Sắp xếp hình ảnh
Hãy xem cách chúng ta có thể sắp xếp nội dung hình ảnh trong máy.
Cách dùng thử:
- Bạn sẽ cần có một thư mục chứa nhiều tệp hình ảnh (.jpg, .png, v.v.). Thêm một số hình ảnh có dữ liệu EXIF (hầu hết ảnh chụp bằng camera/điện thoại đều có dữ liệu này).
- Chuyển đến thư mục này.
- Khởi chạy Gemini CLI.
Hãy thử một trong các tình huống sau (các câu lệnh được đưa ra bên cạnh mỗi tình huống):
- Đổi tên theo ngày (Dữ liệu EXIF): Đổi tên tất cả các tệp .jpg và .png trong thư mục này để thêm ngày tạo từ dữ liệu EXIF ở định dạng "YYYYMMDD_HHMMSS_original_name.jpg". Nếu không tìm thấy ngày EXIF, hãy sử dụng ngày sửa đổi gần đây nhất của tệp.
- Tạo nội dung mô tả cho hình ảnh: Đối với mỗi hình ảnh trong thư mục này, hãy mô tả nội dung trong hình ảnh và lưu nội dung mô tả đó vào một tệp văn bản có tên là "description_ORIGINAL_FILENAME.txt" trong cùng thư mục.
- Xác định nội dung trùng lặp (Dựa trên khái niệm, yêu cầu logic nâng cao hơn): Tìm mọi hình ảnh trùng lặp trong thư mục này dựa trên nội dung trực quan và liệt kê tên tệp của các hình ảnh đó. Đừng xoá các tệp này vội.
Tóm tắt bài viết (Tệp cục bộ hoặc trên web)
Đối với mỗi trường hợp dưới đây, bạn có thể thay đổi URL, chủ đề quan tâm và tên tệp cục bộ nếu cần. Tên tệp được cung cấp là tên tệp mẫu, bạn có thể thay thế bằng tên tệp của các tệp có trên hệ thống của mình.
Hãy thử một trong các tình huống sau (các câu lệnh được đưa ra bên cạnh mỗi tình huống):
- Tóm tắt một bài viết trên web (một URL): Truy cập vào https://medium.com/google-cloud/getting-started-with-gemini-cli-8cc4674a1371 và tóm tắt 3 điểm chính hàng đầu trong bài viết tin tức này.
- Tóm tắt nhiều bài viết trên web (ví dụ: từ một cụm từ tìm kiếm): Tìm các bài viết tin tức mới nhất về "Gemini CLI" bằng Google Tìm kiếm. Đối với 5 bài viết liên quan hàng đầu, hãy tóm tắt mỗi bài trong 2 đến 3 câu và liệt kê URL của các bài viết đó.
- Tóm tắt một tệp văn bản cục bộ: Tóm tắt các điểm chính của bài viết trong tệp "my_research_paper.txt". Tập trung vào phương pháp và kết luận.
- Tóm tắt một tệp PDF trên thiết bị: Đọc "financial_report_Q2_2025.pdf". Tóm tắt hiệu quả hoạt động tài chính và những thách thức chính được đề cập.
Trích xuất thông tin cụ thể (Tệp cục bộ hoặc Web)
Đối với mỗi trường hợp dưới đây, bạn có thể thay đổi URL, chủ đề quan tâm và tên tệp cục bộ nếu cần. Tên tệp được cung cấp là tên tệp mẫu, bạn có thể thay thế bằng tên tệp của các tệp có trên hệ thống của mình.
Hãy thử một trong các tình huống sau (các câu lệnh được đưa ra bên cạnh mỗi tình huống):
- Trích xuất thực thể từ một bài viết trên máy: Từ "biography.txt", hãy liệt kê tất cả cá nhân có tên và những ngày quan trọng liên quan đến họ.
- Trích xuất dữ liệu từ một bảng trong tệp PDF: Trong tệp "quarterly_sales.pdf", hãy trích xuất dữ liệu từ bảng trên trang 3 cho biết "Doanh số sản phẩm theo khu vực" và trình bày dữ liệu đó ở định dạng bảng Markdown.
- Trích xuất dữ liệu từ một bảng trong tệp PDF: Trong tệp "quarterly_sales.pdf", hãy trích xuất dữ liệu từ bảng trên trang 3 cho biết "Doanh số sản phẩm theo khu vực" và trình bày dữ liệu đó ở định dạng bảng Markdown.
- Trích xuất tiêu đề và nguồn tin tức từ một trang web tin tức: Truy cập vào "https://news.google.com/" (hoặc một trang web tin tức tương tự). Trích xuất các tiêu đề chính trên trang nhất và nguồn tin tức tương ứng. Trình bày dưới dạng danh sách có dấu đầu dòng.
- Tìm thông số kỹ thuật của sản phẩm trên một trang thương mại điện tử: Duyệt xem "https://www.amazon.in/Google-Cloud-Certified-Associate-Engineer/dp/1119871441" (ví dụ về một cuốn sách). Trích xuất tên sách, tác giả và các thông tin khác. Trình bày thông tin này ở định dạng JSON có cấu trúc.
Trả lời câu hỏi dựa trên nội dung (hành vi tương tự như RAG)
Đối với mỗi trường hợp dưới đây, bạn có thể thay đổi URL, chủ đề quan tâm và tên tệp cục bộ nếu cần. Tên tệp được cung cấp là tên tệp mẫu, bạn có thể thay thế bằng tên tệp của các tệp có trên hệ thống của mình.
Hãy thử một trong các tình huống sau (các câu lệnh được đưa ra bên cạnh mỗi tình huống):
- Hỏi và đáp về một tài liệu tại địa phương: Tôi đang đính kèm "user_manual.pdf". Các bước khắc phục sự cố kết nối mạng là gì?
- Hỏi và đáp trên trang web: Dựa vào nội dung trên"https://www.who.int/news-room/fact-sheets/detail/climate-change-and-health", theo WHO, những nguy cơ chính đối với sức khoẻ liên quan đến biến đổi khí hậu là gì?
- So sánh thông tin từ nhiều nguồn: Tôi có hai bài viết tin tức: "article1.txt" và "article2.txt", cả hai đều thảo luận về những thay đổi gần đây trong chính sách kinh tế. So sánh và đối chiếu quan điểm của họ về tác động tiềm ẩn đối với doanh nghiệp nhỏ.
Tạo nội dung dựa trên thông tin được trích xuất
Đối với mỗi trường hợp dưới đây, bạn có thể thay đổi URL, chủ đề quan tâm và tên tệp cục bộ nếu cần.
Hãy thử một trong các tình huống sau (các câu lệnh được đưa ra bên cạnh mỗi tình huống):
- Tạo bản tin vắn tắt từ một bài viết: Đọc @tech_innovation_article.txt. Viết một bản tin ngắn gọn, hấp dẫn (khoảng 150 từ) phù hợp với bản tin của công ty, nêu bật công nghệ mới và tiềm năng của công nghệ đó.
- Soạn email tóm tắt bản chép lời của cuộc họp: Đây là tệp bản chép lời của cuộc họp: @meeting_transcript.txt. Soạn thảo một email gửi cho nhóm để tóm tắt các quyết định quan trọng đã đưa ra và những việc cần làm đã được giao, bao gồm cả người chịu trách nhiệm cho từng việc.
Gemini CLI hỗ trợ nhiều phương thức
Gemini CLI hỗ trợ nhiều mô hình thông qua Gemini và bạn có thể yêu cầu Gemini CLI xử lý các tệp có nhiều định dạng nội dung theo yêu cầu của bạn.
Chúng ta sẽ xử lý một loạt hình ảnh hoá đơn bằng Gemini CLI và trích xuất thông tin chính từ các hình ảnh đó. Hãy làm theo các bước dưới đây:
- Tạo một thư mục trên máy của bạn và tải một số hoá đơn xuống từ kho lưu trữ sau đây trên Github.
- Khởi chạy Gemini CLI từ thư mục đó
Hãy đưa ra câu lệnh sau để trích xuất thông tin từ hoá đơn dưới dạng bảng.
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.
Lý tưởng nhất là bạn sẽ nhận được kết quả đầu ra có dạng như sau:

Áp dụng quy tắc này cho mọi tệp của riêng bạn ở các định dạng khác ngoài văn bản.
Sử dụng Gemini CLI để làm việc với cơ sở dữ liệu
Bạn có thể sử dụng Gemini CLI để làm việc hiệu quả hơn với nhiều cơ sở dữ liệu. Bạn có thể sử dụng công cụ này cho nhiều trường hợp: truy vấn bằng ngôn ngữ tự nhiên, xuất dữ liệu, thiết kế giản đồ cơ sở dữ liệu, tạo dữ liệu kiểm thử thực tế, v.v.
Chúng ta sẽ sử dụng SQLite3 để minh hoạ điều này. Chúng ta sẽ cần cài đặt SQLite3 và có cơ sở dữ liệu mẫu Chinook.
Sau đây là hướng dẫn ngắn gọn về cách thiết lập SQLite3:
- macOS: SQLite3 được cài đặt sẵn. Xác minh bằng
sqlite3 --version. Nếu cần, hãy cài đặt bằng Homebrew:brew install sqlite3. - Windows: Tải các tệp nhị phân được biên dịch sẵn xuống từ trang web của SQLite. Giải nén các tệp vào một thư mục (ví dụ:
C:\sqlite). Thêm thư mục đó vào biến môi trường PATH của hệ thống. - Linux: Debian/Ubuntu:
sudo apt update && sudo apt install sqlite3
Tải cơ sở dữ liệu mẫu Chinook xuống (đây là đường liên kết trực tiếp để tải cơ sở dữ liệu này xuống).
Để chạy các câu lệnh này, bạn nên tạo một thư mục (database-tasks) trong thư mục gemini-cli-projects. Sao chép tệp cơ sở dữ liệu Chinook vào thư mục đó. Đảm bảo rằng công cụ sqlite3 được thiết lập trên hệ thống của bạn và có trong đường dẫn để Gemini CLI có thể sử dụng công cụ đó. Khởi chạy Gemini CLI.
Sơ đồ giản đồ cơ sở dữ liệu được minh hoạ dưới đây:

Chúng tôi sẽ giả định rằng bạn đang ở trong một thư mục có tên là database-tasks và tệp cơ sở dữ liệu Chinook có tên là chinook.db.
Dưới đây là một số câu lệnh có thể giúp bạn làm việc với cơ sở dữ liệu. Chúng ta sẽ xem qua yêu cầu đầu tiên một cách ngắn gọn để minh hoạ quyền sẽ được yêu cầu.
Chúng ta bắt đầu bằng câu lệnh liệt kê các bảng có trong cơ sở dữ liệu. Chúng tôi đưa ra câu lệnh sau:
What tables are present in the @chinook.db
Thao tác này sử dụng công cụ để đọc tệp, sau đó muốn sử dụng tiện ích sqlite3 có trên hệ thống của tôi để thực hiện những việc cần thiết:

Cấp quyền chạy một lần và chúng ta sẽ nhận được đầu ra cần thiết:

Hãy thử các câu lệnh sau hoặc bất kỳ câu lệnh nào khác mà bạn muốn:
- Có bao nhiêu nhân viên?
- Cấu trúc của bảng hoá đơn là gì?
- 3 hoá đơn nào có tổng giá trị cao nhất và khách hàng nào đã đặt những hoá đơn đó?
Bạn sẽ nhận thấy Gemini CLI đảm nhiệm 2 việc: Tạo câu lệnh SQL chính xác để đáp ứng yêu cầu của bạn và đưa ra lệnh sqlite3 chính xác.
Sử dụng Gemini CLI để tạo dữ liệu
Bạn có thể yêu cầu Gemini CLI tạo dữ liệu ở nhiều định dạng dữ liệu. Điều này có thể bao gồm từ các phần nội dung đến dữ liệu JSON mà bạn có thể cần mô phỏng. Ở đây, chúng ta sẽ tập trung vào các trường hợp áp dụng cho nhà phát triển/người kiểm thử.
Sau đây là một số câu lệnh bạn có thể thử:
Tạo dữ liệu JSON của các bài đánh giá mẫu của khách hàng
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).
Tạo phản hồi API mô phỏng (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').
Tạo câu lệnh chèn cơ sở dữ liệu mẫu (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'.
Tạo dữ liệu CSV để tải/phân tích dữ liệu
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).
Tạo tệp cấu hình (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.
Tạo dữ liệu kiểm thử cho các trường hợp biên/xác thực
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).
Lập trình theo cảm hứng với Gemini CLI
Hãy dùng Gemini CLI để tạo mã cho một ứng dụng. Chúng ta sẽ yêu cầu Gemini CLI tạo một ứng dụng, sau đó đẩy phiên bản ban đầu vào một kho lưu trữ trên GitHub.
Điều kiện tiên quyết
Để thực hiện các thao tác trong phần này, bạn cần phải làm những việc sau:
- Git
- Gemini CLI với Máy chủ MCP của Github (chúng tôi đã làm việc này trước đây)
- Làm quen với các kiến thức cơ bản về Git và có một chút kiến thức về lập trình
Chúng tôi giả định rằng bạn đã chạy Gemini CLI trong một thư mục cụ thể mà bạn chọn. Đảm bảo rằng các máy chủ MCP đã khởi động thành công, đặc biệt là máy chủ MCP Github.
Đưa ra câu lệnh sau. Bạn có thể sửa đổi nội dung này theo ý mình. Xin lưu ý rằng trong suốt phiên làm việc với Gemini CLI, công cụ này sẽ yêu cầu bạn cấp quyền tạo tệp, v.v. Hãy cấp các quyền cần thiết.
Ngoài ra, xin lưu ý rằng chúng tôi không muốn Gemini CLI chạy ứng dụng hoặc kiểm thử ứng dụng cho chúng tôi vì chúng tôi muốn có thêm quyền kiểm soát. Tuy nhiên, bạn hoàn toàn có thể quyết định cách thức thực hiện.
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.
Đây là cách tôi thực hiện cho phản hồi đầu tiên. Bạn có thể nhận được một câu trả lời hoàn toàn khác, vì vậy, hãy xem kỹ kế hoạch và tương tác qua lại với Gemini CLI nếu cần.

Mặc dù tôi yêu cầu không khởi chạy các máy chủ, nhưng nó vẫn cho tôi xem lệnh shell cho các máy chủ đó và hỏi tôi xem nó có thể thực thi lệnh đó cho tôi không. Tôi quyết định không làm vậy để có nhiều quyền kiểm soát hơn khi tự mình bắt đầu.
Tôi đã gửi cho nó thông báo sau:

Tôi làm theo hướng dẫn, khởi động máy chủ và thấy trang web sau hoạt động tốt:

Bạn có thể tiếp tục thực hiện thêm các thay đổi với sự trợ giúp của Gemini CLI, nhưng hiện tại, những thay đổi này là đủ vì chúng ta cần chuyển các thay đổi này vào một kho lưu trữ trên GitHub.
Trước tiên, hãy tạo một tệp .gitignore và chúng ta sẽ nhờ đến sự trợ giúp của Gemini CLI.
Create a .gitignore file for this project.
Giờ đây, chúng ta sẽ đưa ra hướng dẫn cho Gemini CLI để đẩy kho lưu trữ này vào tài khoản Github của chúng ta và điều này sẽ thực hiện các công cụ Github MCP Server ở chế độ nền.
Đưa ra một câu lệnh tương tự như câu lệnh bên dưới:
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
Thao tác này sẽ thực hiện một số lệnh sau:
- Tạo kho lưu trữ.
- Thao tác này sẽ sử dụng nhiều lệnh Git : init, add, commit để quản lý kho lưu trữ Git cục bộ.
- Sau đó, nó sẽ thiết lập Git từ xa và thực hiện thao tác đẩy
Lưu ý: Có những trường hợp chúng tôi nhận thấy Gemini CLI có thể hết thời gian chờ hoặc sử dụng tên người dùng không chính xác, v.v. Hãy tương tác với Gemini CLI và đề xuất các bản sửa lỗi.
Nếu mọi thứ diễn ra suôn sẻ, bạn sẽ có một kho lưu trữ trên GitHub. Dưới đây là ảnh chụp màn hình mẫu:

Chúng ta chưa tạo README.md và những thứ khác mà chúng ta thường làm, nhưng đó là một bài tập hay cho phần tiếp theo. Giờ đây, chúng ta sẽ làm việc với kho lưu trữ mà bạn vừa tạo.
Sử dụng Gemini CLI để làm việc trên một kho lưu trữ GitHub
Trong trường hợp sử dụng này, chúng ta sẽ dùng Gemini CLI để làm việc với một kho lưu trữ trên GitHub. Chúng ta sẽ xem xét nhiều trường hợp, bao gồm:
- Tìm hiểu cơ sở mã
- Tạo tài liệu
- Triển khai một tính năng mới
- Xác nhận và đẩy các thay đổi trở lại kho lưu trữ
- Xử lý một vấn đề trên GitHub và triển khai các thay đổi được đề xuất
Điều này sẽ giúp bạn có nền tảng vững chắc để làm việc với các kho lưu trữ và sử dụng Gemini CLI làm trợ lý cho những tác vụ dành riêng cho nhà phát triển này.
Điều kiện tiên quyết
Để thực hiện các thao tác trong phần này, bạn cần phải làm những việc sau:
- Git
- Gemini CLI với Máy chủ MCP của Github (chúng tôi đã làm việc này trước đây)
- Nắm vững kiến thức cơ bản về Git và có một chút kiến thức về lập trình (chúng ta sẽ sử dụng Node.js trong ví dụ này vì có thể bạn đã chuẩn bị sẵn môi trường trên máy do đã cài đặt Gemini CLI). Tuy nhiên, sau này, bạn có thể chọn một kho lưu trữ tuỳ ý bằng ngôn ngữ lập trình và khung khác.
- Bạn nên hoàn thành phần trước và có sẵn kho lưu trữ, nơi chúng ta đã tạo một trang web Event Talks.
Hãy tiếp tục sử dụng Gemini CLI từ thư mục/thư mục mà bạn đã dùng để tạo ứng dụng Event Talks. Nếu cần, bạn có thể sao chép kho lưu trữ vào máy cục bộ rồi khởi động Gemini CLI từ thư mục đó. Hãy thử các trường hợp sau đây như được liệt kê bên dưới:
Tìm hiểu cơ sở mã
- Tôi muốn hiểu rõ về dự án này. Hãy giúp tôi hiểu các tính năng chính, sau đó chia nhỏ thành phía máy chủ và phía máy khách. Lấy một quy trình mẫu và cho tôi biết cách hoạt động của yêu cầu và phản hồi.
- Giải thích về @server.js
Tạo tệp README
- Tạo một tệp README cho dự án này.
Trong trường hợp này, Gemini CLI không chỉ tạo tệp README mà còn muốn thực thi các lệnh để thêm vào kho lưu trữ Git và đẩy các thay đổi lên kho lưu trữ từ xa. Tôi đã cho phép Gemini CLI làm như vậy. Gemini CLI cũng đề xuất tạo tệp LICENSE cho tôi và tôi đã cho phép.
Giờ đây, tôi đã có tệp README và tệp LICENSE được tạo và các thay đổi đã được chuyển lên GitHub.

Triển khai một tính năng mới
- Tôi muốn triển khai một tính năng mới cho phép người dùng tìm kiếm theo một Diễn giả cụ thể. Trước tiên, hãy cho tôi xem kế hoạch về cách bạn sẽ triển khai thay đổi này, sau đó chúng ta có thể tạo mã.
Bard đã cung cấp cho tôi một kế hoạch, tôi đã phê duyệt và sau đó Bard tiến hành các thay đổi. Hãy kiểm tra các thay đổi của bạn và nếu có lỗi (rất có thể), hãy yêu cầu Gemini CLI sửa lỗi.
Sau khi các thay đổi trông ổn, bạn có thể làm theo các bước tương tự để xác nhận và đẩy các thay đổi đó lên kho lưu trữ từ xa.
Tạo vấn đề dựa trên các tính năng được đề xuất
Hãy thử một điều gì đó thú vị. Chúng ta sẽ hỏi Gemini CLI về cách cải thiện trải nghiệm người dùng của ứng dụng này. Dựa trên đánh giá của Gemini CLI, ứng dụng này có thể tạo những đề xuất đó dưới dạng vấn đề trong cùng một kho lưu trữ Github. Thao tác này sẽ sử dụng công cụ "create_issue" của Github MCP Server.
Hãy thử câu lệnh sau:
- Tôi muốn bạn đánh giá ứng dụng này dưới góc độ trải nghiệm người dùng. Dễ sử dụng, có tính phản hồi, thông báo hữu ích và nhiều yếu tố khác. Vui lòng đưa ra một danh sách các điểm cải thiện, sau đó tôi muốn bạn tạo các điểm cải thiện đó dưới dạng Vấn đề trong kho lưu trữ Github.
Lý tưởng nhất là trước tiên, công cụ này sẽ chia sẻ những điểm cải tiến với bạn, sau đó tiến hành tạo các vấn đề trong kho lưu trữ Github khi có sự cho phép của bạn. Sau đây là ảnh chụp màn hình mẫu từ lần chạy của chúng tôi:

Xử lý một vấn đề trên GitHub và triển khai các thay đổi được đề xuất
Giờ đây, chúng ta có thể chọn một trong những vấn đề đã được tạo trước đó và yêu cầu Gemini CLI xử lý và triển khai vấn đề đó.
Dưới đây là một vấn đề mẫu mà công cụ này tạo ra:

Lấy toàn bộ URL của vấn đề và đưa ra một câu lệnh như sau:
- Vui lòng xem xét Vấn đề:
<YOUR_ISSUE_URL>và hiểu rõ những thay đổi cần thực hiện. Trước tiên, hãy thảo luận về kế hoạch, sau đó cho thấy những thay đổi được đề xuất trong mã.
Bạn có thể phê duyệt các thay đổi và đẩy chúng vào kho lưu trữ. Bạn thậm chí có thể yêu cầu Gemini đóng vấn đề này.

7. (Không bắt buộc) Tuỳ chỉnh Gemini CLI bằng GEMINI.md
Nếu đã sử dụng Gemini CLI, bạn sẽ nhận thấy rằng chúng ta chỉ đưa ra câu lệnh và mong đợi Gemini CLI thực thi câu lệnh đó, đôi khi kết quả không như mong đợi. Trong một số câu lệnh, chúng tôi đã đưa ra hướng dẫn cụ thể về việc cần làm và đã thêm những hướng dẫn đó vào câu lệnh.
Điều này có thể hoạt động tốt theo những gì bạn hướng dẫn Gemini CLI thực hiện và kết quả bạn nhận được. Nhưng trong nhiều trường hợp, bạn muốn đảm bảo rằng nó tuân thủ các quy tắc. Những quy tắc này có thể là các ngôn ngữ lập trình hoặc khung cụ thể cần sử dụng. Đó cũng có thể là các công cụ cụ thể. Đó có thể là các kiểu mã hoá. Không chỉ tạo nội dung, bạn cũng có thể muốn Gemini CLI ở chế độ "lập kế hoạch" và chỉ trình bày kế hoạch chứ không tạo mã hoặc sửa đổi tệp trên hệ thống.
Nhập GEMINI.md Đây là tệp ngữ cảnh (mặc định là GEMINI.md nhưng có thể định cấu hình thông qua chế độ cài đặt contextFileName) rất quan trọng để định cấu hình ngữ cảnh hướng dẫn (còn được gọi là "bộ nhớ") được cung cấp cho mô hình Gemini. Tệp này cho phép bạn đưa ra hướng dẫn cụ thể cho dự án, hướng dẫn về kiểu mã hoá hoặc mọi thông tin cơ bản có liên quan cho AI, giúp AI đưa ra câu trả lời phù hợp và chính xác hơn với nhu cầu của bạn.
Tệp GEMINI.md có định dạng đánh dấu và tải theo kiểu Phân cấp, được kết hợp từ nhiều vị trí.
Thứ tự tải là:
- Bối cảnh chung: **
~/.gemini/GEMINI.md** (đối với những chỉ dẫn áp dụng cho tất cả dự án của bạn). - Project/Ancestor Context (Ngữ cảnh dự án/ngữ cảnh tổ tiên): CLI tìm kiếm từ thư mục hiện tại của bạn cho đến thư mục gốc của dự án để tìm các tệp
GEMINI.md. - Ngữ cảnh thư mục con: CLI cũng quét các thư mục con để tìm tệp
GEMINI.md, cho phép đưa ra các chỉ dẫn dành riêng cho thành phần.
Bạn có thể dùng /memory show để xem ngữ cảnh kết hợp cuối cùng được gửi đến mô hình.
GEMINI.md trông như thế nào và chúng ta sẽ tạo một GEMINI.md từ tài liệu chính thức:
# 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.
Bạn sẽ nhận thấy rằng hướng dẫn này cung cấp một số hướng dẫn chung, cộng với hướng dẫn rất cụ thể về kiểu mã hoá, quản lý phần phụ thuộc và nhiều nội dung khác. Mặc dù đây là tệp GEMINI.md mẫu cho các dự án TypeScript, nhưng bạn có thể tự viết tệp dựa trên ngôn ngữ lập trình, khung, kiểu mã hoá và các lựa chọn ưu tiên khác của mình.
Hãy thử dùng một tệp GEMINI.md tuỳ chỉnh. Đây là nội dung trích dẫn từ một đoạn mã được xuất bản, cho biết cách sử dụng Gemini CLI ở chế độ Lập kế hoạch. Tệp được sao chép ở đây:
# 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.
Lưu nội dung ở trên vào một tệp có tên là GEMINI.md và lưu tệp đó trong ~/.gemini/GEMINI.md. Đây là thư mục mà chúng ta đã tạo tệp settings.json. Bạn cũng có thể giữ tệp GEMINI.md trong thư mục <current project folder>/.gemini hoặc thậm chí có nhiều tệp GEMINI.md trong các thư mục con nếu có nhiều hướng dẫn.
Đưa ra một câu lệnh để tạo một ứng dụng và xem cách ứng dụng phản hồi.
Đây là một tệp GEMINI.md khác ( Chế độ giải thích của Gemini) mà bạn có thể nghiên cứu, sau đó điều chỉnh cho phù hợp với yêu cầu và sử dụng. Điều này tập trung vào việc GEMINI CLI là một hướng dẫn tương tác, giúp người dùng hiểu các cơ sở mã phức tạp thông qua quy trình khám phá mang tính trò chuyện.
Tệp GEMINI.md là chìa khoá để Gemini CLI tuân theo các lựa chọn ưu tiên của bạn. Bạn nên xem loạt bài thực tế "Gemini CLI thực tế" đi sâu vào lĩnh vực này, cách bạn có thể tự động tạo một tệp cho dự án của mình, tuỳ chỉnh cả Lệnh hệ thống và nhiều nội dung khác.
8. Xin chúc mừng
Xin chúc mừng! Bạn đã khám phá thành công Gemini CLI, các chức năng của công cụ này và áp dụng cho một số trường hợp sử dụng.