Gemini CLI 实战:用 GEMINI.md、Skills 与 MCP 把终端 AI 调教成结对工程师
【免费下载链接】gemini-cliAn open-source AI agent that brings the power of Gemini directly into your terminal.项目地址: https://gitcode.com/GitHub_Trending/gemi/gemini-cli
问一句扎心的:同一个命名规范,你纠正过几次了?Gemini CLI 是谷歌开源的终端 AI 智能体,把 Gemini 模型直接带进命令行,能读代码、跑命令、改文件。而让它"懂规矩"的关键,是 GEMINI.md 上下文、Skills 技能与 MCP 扩展这三件套。下面按落地顺序讲清楚。
🧠 定义 GEMINI.md 项目上下文
每次会话都要重复"我们用 TypeScript、接口名要加前缀",纯属浪费。GEMINI.md 的作用就是让规范说一次,之后永久生效。在项目根目录放一个文件,直接写要点:
# 项目:订单服务 - TypeScript 5+,缩进 2 空格 - 公共接口统一 I 前缀命名 - 公共方法必须带 JSDoc - 错误处理统一走 Result 模式 - 新增代码必须附单元测试加载顺序是三层:先是全局~/.gemini/GEMINI.md(存放你跨项目的个人偏好),再是项目根目录的 GEMINI.md,最后到模块级——当工具访问某个子目录时,会即时扫描该目录及其祖先里的 GEMINI.md,只在需要时把对应模块的规范拉进上下文。规范多了可以用@./style-guide.md语法拆分成多个文件。会话内输入/memory show能核对最终拼给模型的完整内容,改完文件执行/memory reload即可。界面底部常驻显示已加载的上下文文件数,方便你确认生效情况。
编写 SKILL.md,沉淀 AI 代码审查技能
GEMINI.md 是常驻背景,Skills 则是"按需调用"的专业能力。审查标准恰好属于后者:平时不必占上下文,审查时才出场。它的机制是:会话启动时 CLI 只把各技能的名字和描述注入系统提示;当识别到任务匹配某个描述时,模型调用激活工具,你看到一次确认提示,批准后才加载完整 SKILL.md 并开放技能目录的读取权限。
在.gemini/skills/pr-review/SKILL.md里建一个审查技能:
--- name: pr-review description: 合并前审查代码变更,覆盖安全、输入校验与测试覆盖 --- # 审查清单 1. API 端点是否有鉴权与速率限制 2. 外部输入是否完成清理 3. 错误处理路径是否完整 4. 新增逻辑单测覆盖率是否 > 80%把这个目录提交进版本库,.gemini/skills/ 下的技能就随仓库共享给全团队,标准从此统一。日常用/skills list查看、/skills link ./local-skills链接本地目录、/skills disable <name>停用;也可以在终端直接gemini skills install从仓库安装现成技能。
用审批模式约束 Gemini CLI 的执行边界
规范记住了,下一个问题是:给它多大权限?Gemini CLI 提供四档审批模式,会话中按 Shift+Tab 循环切换,也可用--approval-mode启动时指定:
plan:纯只读,仅可读与检索工具,适合摸底陌生代码default:每个动作都向你确认auto_edit:文件写入自动执行,shell 命令仍需确认yolo:全自动放行,谨慎使用
重构类任务建议从 Plan Mode 入手:gemini --approval-mode=plan启动,或会话中输入/plan 重构认证模块。模型先做只读调研,和你讨论取舍,再产出一份 Markdown 计划;按 Ctrl+X 可以把计划交给外部编辑器,直接改写步骤,模型会识别你的修改并迭代。批准后才开始实现,此时自动路由会从高推理模型切到更快的模型,加快编码阶段。
脚本场景用非交互形态:gemini -p "..." --output-format json返回结构化 JSON,是自动化的一切基础。
跑通三个典型任务
提交前自检
推送前把改动喂给一次性只读审查:
git diff | gemini -p "对照 GEMINI.md 规范审查以下改动,仅列出问题"diff 走标准输入,不触碰仓库,你照着清单逐条修。
批量 PR 审查
规模上来就靠技能兜底:
gemini -p "使用 pr-review 技能审查本次变更" --output-format json解析 JSON 即可汇入报告脚本,标准与人工清单完全一致。
功能开发
新需求走/plan:先对齐方案、批准计划,再进入实现。中途想调整某一步,直接编辑计划文件保存,模型会自动检测并继续。
⚡ 接入 VS Code、CI 流水线与 MCP 服务器
VS Code 协作
安装官方 Gemini CLI Companion 扩展后,在编辑器里首次运行 CLI 会自动提示连接(也可会话内执行/ide install)。连上之后,CLI 能感知你最近打开的文件、光标位置和选中的文本;代码改动建议直接在编辑器原生 diff 视图里逐块接受或拒绝。
CI 自动化
无头模式带明确退出码(0 成功、1 失败、42 参数错误、53 超出轮次上限),天然适合流水线分支判断。常见组合是:提交钩子里跑"自检"任务,发布流程用-p自动生成发布说明,细节可查 docs/。
MCP 服务器接入
想让 AI 查询内部系统,在 settings.json 注册一个 MCP 服务器即可:
{ "mcpServers": { "jira-bridge": { "command": "node ./mcp/jira-bridge.js", "env": { "JIRA_TOKEN": "$JIRA_TOKEN" }, "trust": false } } }服务端注册工具只需寥寥数行:
import { Server } from "@modelcontextprotocol/sdk/server"; const bridge = new Server({ name: "jira-bridge", version: "1.0.0" }); bridge.setRequestHandler("tools/list", async () => ({ tools: [{ name: "fetch_ticket", description: "按单号拉取缺陷工单", inputSchema: { type: "object", properties: { issueKey: { type: "string" } } } }] }));放心的是,Plan Mode 下只放行只读 MCP 工具,调研阶段不会误触写操作。
今天就可以动手:在你最常改的项目里建好 GEMINI.md,写入三条团队规范并随仓库提交,下一次会话的 Gemini CLI 就会照着执行。
【免费下载链接】gemini-cliAn open-source AI agent that brings the power of Gemini directly into your terminal.项目地址: https://gitcode.com/GitHub_Trending/gemi/gemini-cli
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考