+1

Hướng dẫn thực chiến Gemini CLI nâng cao năm 2026: Đừng chỉ dùng AI để chat

Nếu bây giờ dùng AI mà bạn chỉ biết lên web chat như một con bot, thì bạn đã "tối cổ" rồi đấy.

Gemini CLI là trợ lý AI trên terminal do Google tung ra. So với phiên bản web, công cụ dòng lệnh có lợi thế tự nhiên trong việc xử lý tệp cục bộ và đọc ngữ cảnh dự án. Đối với anh em developer, nó không chỉ là một chatbot, mà là một "người lái phụ" (copilot) ngay trong terminal, có khả năng đọc code trực tiếp, thực thi script và tạo ra kết quả ngay lập tức.

image.png

Dưới đây là tổng hợp các kỹ thuật sử dụng Gemini CLI chuyên sâu, bao gồm các tính năng cốt lõi như tạo lệnh tùy chỉnh, tương tác terminal và cơ chế rollback an toàn.

Cài đặt Gemini CLI

Gemini CLI phụ thuộc vào môi trường chạy Node.js. Để giữ cho hệ thống sạch sẽ và thực hiện việc cùng tồn tại nhiều phiên bản (multi-version), chúng ta cần một setup chuẩn chỉnh.

1. Cấu hình môi trường Node.js

Hãy sử dụng ServBay để cấu hình môi trường. ServBay hỗ trợ phủ sóng toàn bộ các phiên bản từ Node.js 12 đến 24, và các phiên bản khác nhau không xung đột với nhau, cực kỳ thích hợp để cách ly môi trường phát triển.

Mở bảng quản lý dịch vụ của ServBay và tìm đến cài đặt môi trường chạy ngôn ngữ:

  1. Chọn "Packages" (Gói) ở thanh menu bên trái và chọn Node.js.
  2. Nhấn nút màu xanh để tải xuống (Gemini CLI yêu cầu môi trường Node.js phiên bản 20+).

image.png

Kiểm tra xem môi trường đã sẵn sàng chưa trong terminal:

node -v

image.png

2. Cài đặt Gemini CLI

Sau khi môi trường đã sẵn sàng, thực hiện lệnh cài đặt trực tiếp trong terminal:

npm install -g @google/gemini-cli

image.png

Cài đặt xong, chỉ cần gõ gemini trong terminal để khởi động giao diện tương tác.


Cẩm nang thực chiến Gemini CLI

GEMINI.md: "Cấu hình xuất xưởng" cho dự án

Hãy tạo một file tên là GEMINI.md trong thư mục gốc của dự án. File này đóng vai trò như một cuốn hướng dẫn sử dụng. Bất cứ khi nào Gemini CLI khởi động trong thư mục này, nó sẽ tự động đọc file này.

Việc này giải quyết vấn đề "mỗi lần mở phiên chat mới đều phải dạy lại AI về quy tắc dự án". Mình khuyên bạn nên định nghĩa stack công nghệ, quy chuẩn code (coding convention) và các script thường dùng trong file này.

Ví dụ nội dung GEMINI.md:

# Cấu hình ngữ cảnh dự án

## Tech Stack cốt lõi
- Framework: Next.js (App Router)
- Style: Tailwind CSS
- Quản lý trạng thái: Zustand

## Quy chuẩn phát triển
- Component: Ưu tiên Functional Component; bắt buộc phải có định nghĩa interface TypeScript.
- Đường dẫn: Sử dụng alias như `@/components` để tránh dùng đường dẫn tương đối `../../`.
- Commit: Thông tin Commit phải tuân thủ chuẩn Conventional Commits.

## Tra cứu lệnh thường dùng
- Khởi động môi trường dev: `npm run dev`
- Kiểm tra kiểu dữ liệu: `npm run type-check`
- Build production: `npm run build`

Có file này rồi, sau này bạn chỉ cần ra lệnh "Viết giúp tôi component thẻ người dùng", Gemini sẽ tự động tuân theo quy chuẩn Next.js + Tailwind CSS + TypeScript mà không cần nhắc lại.

Chế độ Terminal: Làm việc không cần rời cuộc hội thoại

Một tính năng cực hay của Gemini CLI là chế độ lệnh terminal tích hợp sẵn. Developer không cần phải chuyển đổi cửa sổ qua lại giữa khung chat AI và terminal hệ thống.

Trong ô nhập liệu hội thoại, gõ ! để chuyển sang trạng thái thực thi lệnh.

  • Ngữ cảnh: AI vừa sửa code xong, bạn muốn chạy test ngay lập tức hoặc xem file đã được tạo chưa.
  • Thao tác: Nhập trực tiếp !npm run test hoặc !ls -la.

Thiết kế này giúp mọi thao tác đều diễn ra trong một luồng cửa sổ, mạch tư duy không bị ngắt quãng.

Lệnh tùy chỉnh (.toml): Tự động hóa các việc lặp lại

Gemini CLI cho phép định nghĩa các lệnh tắt (Slash Commands) bằng file .toml. Bạn có thể đặt file này trong thư mục người dùng ~/.gemini/commands/ (dùng chung toàn cục) hoặc thư mục gốc dự án .gemini/commands/ (dùng riêng cho dự án).

Việc này giống như thiết lập Macro cho AI, biến các prompt phức tạp thành các lệnh /command đơn giản.

Ví dụ: Tự động tạo báo cáo tuần (Weekly Report)

Tạo file .gemini/commands/report.toml trong dự án:

# File: .gemini/commands/report.toml
# Gọi lệnh: /report

description = "Tự động tổng hợp nội dung công việc tuần này"

# Đây là template prompt định sẵn
prompt = """
Hãy đọc lịch sử commit git trong 7 ngày qua và kiểm tra các file được sửa đổi gần đây trong thư mục `src/`.
Giúp tôi tạo một báo cáo tuần bao gồm 3 điểm sau:

1. **Tiến độ cốt lõi**: Tuần này đã hoàn thành những tính năng chính nào.
2. **Giải quyết vấn đề**: Đã sửa những Bug quan trọng nào.
3. **Kế hoạch tuần tới**: Dựa trên các comment TODO trong code, đề xuất việc cần làm tuần sau.

Định dạng đầu ra cần ngắn gọn, rõ ràng.
"""

Từ giờ, mỗi thứ Sáu, bạn chỉ cần gõ /report trong terminal, AI sẽ tự động lục lại lịch sử và viết báo cáo cho bạn. Sếp hết càm ràm nhé.

Nâng cao: Tham số động & Nhúng lệnh (Command Embedding)

Đây có lẽ là tính năng mạnh nhất của Gemini CLI: nhúng lệnh terminal vào trong các chỉ thị tùy chỉnh. Nó cho phép CLI thực thi lệnh hệ thống trước, lấy kết quả, rồi mới "mớm" cho AI. Kiểu "AI nuôi AI", khép kín quy trình luôn.

Nhúng lệnh !{...}

Sử dụng cú pháp !{lệnh}, bạn có thể chèn kết quả đầu ra của lệnh terminal trực tiếp vào prompt.

Thực chiến: Tạo Commit Message thông minh

Chúng ta có thể làm một lệnh để AI tự viết Git commit message.

# File: .gemini/commands/git/commit.toml
# Gọi lệnh: /git:commit

description = "Phân tích vùng staging và tạo Commit Message"

prompt = """
Bạn là một chuyên gia về quy chuẩn code. Hãy xem nội dung đầu ra của `git diff --cached` bên dưới (tức là code tôi đang tạm lưu), và giúp tôi viết một Git Commit Message.

Yêu cầu:
1. Định dạng tuân thủ chuẩn Conventional Commits (ví dụ: feat: xxx, fix: xxx).
2. Dòng đầu tiên tóm tắt ngắn gọn, phía sau liệt kê các điểm sửa đổi cụ thể.

Nội dung sửa đổi như sau:
!{git diff --cached}
"""

Khi bạn nhập /git:commit:

  1. CLI sẽ âm thầm chạy git diff --cached ở background.
  2. Lấy văn bản khác biệt (diff) của code.
  3. Nhét văn bản đó vào vị trí !{...}.
  4. Gửi tất cả cho Gemini.

Message sinh ra vừa chuẩn xác vừa đỡ tốn nơ-ron thần kinh nghĩ văn mẫu.

Rollback an toàn: Cơ chế Checkpoint

Để AI trực tiếp sửa file đôi khi cũng có rủi ro. Gemini CLI cung cấp cơ chế Checkpoint (Điểm kiểm tra), giống như "save game" vậy.

Cách sử dụng:

Sau khi bật Checkpoint trong file settings.json, mỗi khi AI chuẩn bị sửa file (ví dụ: viết code), CLI sẽ tự động tạo một bản snapshot Git tạm thời ở background. Việc này không ảnh hưởng đến lịch sử Git gốc của bạn.

Sử dụng /restore để khôi phục:

Nếu AI sửa code bị lỗi:

  1. Nhập /restore để xem danh sách các bản lưu.
  2. Nhập /restore <ID> để quay lui (rollback).

Việc này không chỉ khôi phục file về nguyên trạng mà còn tua ngược lịch sử hội thoại về trạng thái trước khi sửa đổi, cho phép bạn điều chỉnh lại câu lệnh và để AI thử lại lần nữa.

Cộng tác đa thư mục (Monorepo)

Nếu cấu trúc dự án phức tạp (ví dụ: tách biệt frontend và backend), Gemini CLI hỗ trợ mount nhiều thư mục cùng lúc.

/directory add packages/backend,packages/frontend

Sau khi thêm, bạn có thể tham chiếu file ở các thư mục khác nhau bằng ký hiệu @:

"Hãy so sánh định nghĩa interface tại @packages/backend/api.ts và cập nhật kiểu dữ liệu tại @packages/frontend/api-client.ts."

Điều này phá vỡ rào cản thư mục, giúp AI có cái nhìn toàn cục và bạn có thể sai bảo nó hiệu quả hơn.

Tổng kết

Gemini CLI mở rộng khả năng của AI từ một chatbot đơn thuần sang cấp độ thực thi thực tế.

Bằng cách sử dụng ServBay để nhanh chóng xây dựng môi trường Node.js ổn định, tận dụng GEMINI.md để kiên cố hóa sự thấu hiểu dự án, và kết hợp lệnh tùy chỉnh .toml với tính năng nhúng terminal để khơi thông chuỗi công cụ local, các developer có thể xây dựng một quy trình làm việc hỗ trợ được tùy chỉnh cao độ. Cộng thêm sự bảo đảm an toàn từ cơ chế Checkpoint rollback, việc để AI can thiệp vào sửa đổi code phức tạp trở nên dễ kiểm soát hơn nhiều.

Nắm vững các kỹ năng này, bạn không còn đơn thuần là "xin code" từ AI nữa, mà là biến nó thành một cộng sự phát triển local hiểu ngữ cảnh, tự động thực thi tác vụ và luôn có thể "undo" sai lầm.

Nghe khá "bánh cuốn" phải không? Thử ngay đi nhé.


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.