gemini-skill
通过 Gemini 官网(gemini.google.com)执行生图、对话等操作。用户提到"生图/画图/绘图/nano banana/nanobanana/生成图片"等关键词时触发。操作方式分三级优先级:首选 MCP 工具 → 次选 Skill 脚本 → 最次连接 Skill 浏览器手动操作(…
它会碰到什么
逐条看命中(30 条严重或高危)
- 严重
.env:36cred-paths# 建议将真实 Key 写入 .env.development,本文件保留为空模板
- 严重
.env:38cred-paths# Put the real key into .env.development; keep this file as a template
- 严重
.env.example:32cred-paths# Put the real key into .env.development or local environment variables
- 严重
ATLAS_CLOUD_PROVIDER_REVIEW.md:9cred-paths- 更新 `.env`,新增 `.env.example`,补充 Atlas Cloud 环境变量说明
- 严重
ATLAS_CLOUD_PROVIDER_REVIEW.md:9cred-paths- 更新 `.env`,新增 `.env.example`,补充 Atlas Cloud 环境变量说明
- 严重
README.en.md:228cred-pathsAll configuration is done via environment variables or `.env` files. A `.env` template is provided in the project root — you can edit it directly.
- 严重
README.en.md:228cred-pathsAll configuration is done via environment variables or `.env` files. A `.env` template is provided in the project root — you can edit it directly.
- 严重
README.en.md:230cred-paths**Priority order:** `process.env` > `.env.development` > `.env` > code defaults
- 严重
README.en.md:230cred-paths**Priority order:** `process.env` > `.env.development` > `.env` > code defaults
- 严重
README.en.md:232cred-paths> `.env.development` is git-ignored, making it ideal for local/private settings (e.g. browser path).
- 严重
README.en.md:257cred-paths| `ATLAS_API_KEY` | empty | Atlas Cloud API key, recommended in `.env.development` |
- 严重
README.en.md:279cred-pathsStore your local private key in `.env.development`:
- 严重
README.en.md:482cred-paths└── .env # Environment config (create manually)
- 严重
README.md:231cred-paths所有配置通过环境变量或 `.env` 文件设置。项目根目录已提供 `.env` 模板,可直接修改。
- 严重
README.md:231cred-paths所有配置通过环境变量或 `.env` 文件设置。项目根目录已提供 `.env` 模板,可直接修改。
- 严重
README.md:233cred-paths**配置优先级:** `process.env` > `.env.development` > `.env` > 代码默认值
- 严重
README.md:260cred-paths| `ATLAS_API_KEY` | 空 | Atlas Cloud API Key,建议写入 `.env.development` |
- 严重
README.md:282cred-paths推荐将本地私有 Key 写入 `.env.development`:
- 严重
README.md:485cred-paths└── .env # 环境配置(需自行创建)
- 严重
src/atlas-provider.js:6cred-pathsthrow new Error('缺少 ATLAS_API_KEY,请在环境变量、.env 或 .env.development 中配置'); - 严重
src/config.js:9cred-paths* 2. .env.development(开发环境,git-ignored)
- 严重
src/config.js:10cred-paths* 3. .env(基础配置,可提交到 git)
- 严重
src/config.js:13cred-paths* .env 文件加载说明:
- 严重
src/config.js:17cred-paths* · Node.js ≥ v20.6.0: node --env-file=.env --env-file=.env.development app.js
- 严重
src/config.js:17cred-paths* · Node.js ≥ v20.6.0: node --env-file=.env --env-file=.env.development app.js
- 严重
src/config.js:18cred-paths* · dotenv 库: dotenv.config({ path: ['.env.development', '.env'] }) - 严重
src/config.js:18cred-paths* · dotenv 库: dotenv.config({ path: ['.env.development', '.env'] }) - 严重
src/config.js:25cred-paths// ── 手动加载 .env 文件(不依赖 dotenv) ──
- 严重
src/config.js:32cred-paths* 解析 .env 文件内容为 key-value 对象
- 严重
src/config.js:63cred-pathsconst devEnv = parseEnvFile(join(projectRoot, '.env.development'));
这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。
技能内容
Gemini Skill
⚠️ 操作优先级(必须遵守)
与 Gemini 的一切交互,按以下优先级选择方式:
- 🥇 首选:调用 MCP 工具 — 直接调用本 Skill 暴露的 MCP 工具完成操作,覆盖绝大多数场景
- 🥈 次选:运行 Skill 脚本 — 当 MCP 工具无法满足需求时,可运行本 Skill 项目中提供的脚本来完成
- 🥉 最次:连接 Skill 管理的浏览器 — 仅当前两种方式都无法解决时,可通过
gemini_browser_info获取 CDP 连接信息,主动连接到本 Skill 管理的浏览器进行操作。此方式必须先征得用户同意
绝对禁止:自行启动新的浏览器实例访问 Gemini 页面(如使用 OpenClaw 浏览器、另起 Puppeteer 等),这会导致会话冲突。
> 浏览器 Daemon 未运行时 MCP 工具会自动拉起,无需任何手动操作。
📡 进度同步 & 长耗时工具规则
MCP 工具调用(尤其是生图、等待回复等)可能耗时较长(60~180 秒)。必须遵守以下规则:
- 本 Skill 所有 MCP 工具均为同步阻塞调用,会等到最终结果才返回。不存在"中间状态"需要轮询。
- 调用长耗时工具时,
timeoutMs必须设为 ≥180000(3 分钟),避免传输层提前超时截断。 - 禁止在未收到工具最终返回前结束对话或向用户报告"还在运行"/"工具超时"。
- 每隔 15~30 秒向用户发送一条进度消息(如"正在等待 Gemini 生成图片…已等待 30 秒…"),保持反馈。
- 拿到最终结果后立即回传产物(文件路径)或报告错误,不得遗漏。
- 若
fullSize模式失败,可降级重试fullSize=false(预览图模式更稳定)。
触发关键词
- 生图任务:
生图、画、绘图、海报、nano banana、nanobanana、image generation、生成图片 - 若请求含糊,先确认用户是否需要生图
使用方式
本 Skill 通过 MCP Server 暴露工具,AI 直接调用即可。
浏览器启动、会话管理、图片提取、文件保存等流程已全部封装在工具内部。
⚠️ 强制规则
> AI 必须始终通过 MCP 工具完成所有操作。
>
> 禁止绕过 MCP 自行编写临时脚本(如 node -e "..." 或创建 .js 临时文件)来
> import / require 本项目导出的函数(如 createGeminiSession、createOps 等)。
>
> 如果 MCP 工具确实无法满足当前需求,AI 必须先向用户说明原因并获得明确同意,
> 才能编写临时脚本调用底层 API。未经用户同意,一律禁止。
可用工具
核心生图(封装完整流程):
| 工具名 | 说明 | 入参 |
|--------|------|------|
| gemini_generate_image | 完整生图流程:新建会话→发prompt→等待→提取图片→保存本地(耗时约 60~120 秒) | prompt,newSession(默认false),referenceImages(参考图路径数组),fullSize(默认true,高清原图;false则预览图),timeout(默认120000ms) |
会话管理:
| 工具名 | 说明 | 入参 |
|--------|------|------|
| gemini_new_chat | 新建一个空白对话 | 无 |
| gemini_temp_chat | 进入临时对话模式(不保留历史记录) | 无 |
模型切换:
| 工具名 | 说明 | 入参 |
|--------|------|------|
| gemini_switch_model | 切换 Gemini 模型 | model(pro / quick / think) |
文本对话:
| 工具名 | 说明 | 入参 |
|--------|------|------|
| gemini_send_message | 发送文本消息并等待回答完成,直接返回 Gemini 的回复文本 | message,timeout(默认120000ms) |
图片操作:
| 工具名 | 说明 | 入参 |
|--------|------|------|
| gemini_upload_images | 上传图片到输入框(仅上传不发送,可配合 send_message) | images(路径数组) |
| gemini_get_images | 获取会话中所有已加载图片的元信息 | 无 |
| gemini_extract_image | 提取指定图片的 base64 并保存到本地 | imageUrl(从 get_images 获取) |
| gemini_download_full_size_image | 下载完整尺寸的高清图片,默认最新一张,可指定索引 | index(可选,从0开始,从旧到新) |
| gemini_share_latest_image | 为图片创建公开分享链接并直接返回链接,默认最新一张 | index(可选),timeout,copyToClipboard,closeDialog |
文字回复提取:
| 工具名 | 说明 | 入参 |
|--------|------|------|
| gemini_get_all_text_responses | 获取会话中所有文字回复(仅文字,不含图片) | 无 |
| gemini_get_latest_text_response | 获取最新一条文字回复 | 无 |
登录状态:
| 工具名 | 说明 | 入参 |
|--------|------|------|
| gemini_check_login | 检查是否已登录 Google 账号 | 无 |
页面导航:
| 工具名 | 说明 | 入参 |
|--------|------|------|
| gemini_navigate_to | 打开指定的 Gemini 页面 URL(如历史会话链接),仅允许 gemini.google.com 域名 | url(目标 URL),timeout(默认30000ms) |
诊断 & 恢复:
| 工具名 | 说明 | 入参 |
|--------|------|------|
| gemini_probe | 探测页面各元素状态(输入框、按钮、模型等) | 无 |
| gemini_reload_page | 刷新页面(卡住或异常时使用) | timeout(默认30000ms) |
| gemini_browser_info | 获取浏览器连接信息(CDP 端口、wsEndpoint 等) | 无 |
典型用法
快速生图(一步到位):
- 调用
gemini_generate_image,传入 prompt → 返回本地图片路径
生图并拿分享链接:
- 调用
gemini_generate_image生成图片 - 调用
gemini_share_latest_image返回公开链接
灵活组合(细粒度控制):
gemini_new_chat— 新建会话gemini_switch_model→pro— 切换到高质量模型gemini_upload_images— 上传参考图gemini_send_message— 发送描述词gemini_get_images→gemini_extract_image— 获取并保存图片
排障:
gemini_probe— 看看页面元素有没有就位gemini_reload_page— 页面卡了就刷新gemini_browser_info— 获取 CDP 信息自行连接调试
MCP 客户端配置
{
"mcpServers": {
"gemini": {
"command": "node",
"args": ["<项目绝对路径>/src/mcp-server.js"]
}
}
}
也可通过 npm run mcp 手动启动。
失败处理
工具内部已包含重试逻辑。若仍然失败,返回值的 isError: true 和错误信息会告知原因:
- 生成超时 — 建议用户简化描述词后重试
- Daemon 未启动 — 工具会自动拉起,若仍失败可手动
npm run daemon - 页面异常 — 可调用
gemini_browser_info查看浏览器状态排查
参考
- 详细执行与回退:
references/gemini-flow.md - 关键词与路由:
references/intent-routing.md
想直接用这个技能?
本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。