/nanobanana-skill
Generate, edit, or composite images with Gemini/Nanobanana. Default for image requests without a named provider; do not override a different provider the user chose.
$ npx -y skills add feiskyer/codex-settings --skill nanobanana-skill --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/nanobanana-skill
Context preview
The summary Claude sees to decide when to auto-load this skill.
Generate, edit, or composite images with Gemini/Nanobanana. Default for image requests without a named provider; do not override a different provider the user chose.
SKILL.md
nanobanana-skill.SKILL.mdname: nanobanana-skill
description: Generate, edit, or composite images with Gemini/Nanobanana. Default for image requests without a named provider; do not override a different provider the user chose.
Nanobanana Image Skill
Use the bundled `nanobanana.py` to generate or edit images with Gemini image models. The default path targets **Nano Banana 2** (`gemini-3.1-flash-image-preview`) with **thinking summaries** and **Google Search grounding** on, because those defaults are the main reason to use this skill instead of a generic image prompt.
Requirements
1. `GEMINI_API_KEY` in `~/.nanobanana.env` (`GEMINI_API_KEY=sk-dummy`) or the shell environment. 2. Python dependencies from `requirements.txt`. 3. The executable is `nanobanana.py` in this same skill directory. Resolve its absolute path once before running it.
The CLI can print `--help` without credentials. It validates local input files before creating an API client and exits non-zero when the API returns no image.
Defaults
Model `gemini-3.1-flash-image-preview`, search grounding on, thinking summaries on at level `high`, resolution `1K`, and no aspect ratio unless the request implies a shape. Do not make the user choose a model, search mode, or thinking mode unless they asked for that level of control.
Leaving aspect ratio unspecified is usually better for edits, because Gemini can match the input image shape. For text-only generation, set one only when the user implies a format such as poster, square post, banner, phone wallpaper, or ultrawide hero.
Worth overriding: `--model gemini-3-pro-image-preview` for very detail-heavy or typography-sensitive work (slower); `--resolution 512px` for quick ideation (Nanobanana 2 models only), `2K`/`4K` for polished deliverables; `--thinking-level low` when latency beats refinement; search off when the user wants a purely imaginative result. Run `python3 /absolute/path/to/nanobanana.py --help` for the exact accepted values, including the full aspect-ratio and model lists.
Run it
Generate from text:
python3 /absolute/path/to/nanobanana.py \
--prompt "Create a high-end coffee bag package design with tactile paper texture and clear typography" \
--output /absolute/path/to/output/package.png
Edit or composite — pass every reference with `--input`. Nanobanana 2 mixes multiple references well, so do not narrow a blend, lineup, storyboard, or consistency pass down to a single image:
python3 /absolute/path/to/nanobanana.py \
--prompt "Turn these product photos into a clean ecommerce hero image with a soft studio shadow and subtle headline area" \
--input /absolute/path/to/ref1.png /absolute/path/to/ref2.png \
--aspect-ratio 4:5 \
--output /absolute/path/to/output/hero.png
Grounded generation, saving the model's text and metadata alongside the image:
python3 /absolute/path/to/nanobanana.py \
--prompt "Use Google Search to ground an editorial illustration about the most recent lunar mission and create a clean magazine cover concept" \
--text-output /absolute/path/to/output/cover.txt \
--metadata-output /absolute/path/to/output/cover.json \
--output /absolute/path/to/output/cover.png
Then report the saved path(s), whether search grounding stayed enabled, where any text or thought summaries landed, and any warning from the run. If the model returns text but no image, say so plainly and suggest a more explicitly image-focused prompt rather than presenting the run as a success.
Prompting
Good Nanobanana prompts are production briefs, not art wishes: subject, visual style, composition or camera framing, any required text, the output's use case, and constraints such as brand colors, negative space, or realism level.
Create a premium sparkling water can advertisement. Use a cold studio product-photo look, silver highlights, condensation droplets, and a clean dark-teal background. Leave negative space in the upper-right for headline copy.
For edits, say what to preserve as well as what to change:
Keep the shoe silhouette and logo placement intact. Replace the background with a bright outdoor basketball court, add dynamic afternoon shadows, and keep the image looking like a real sports campaign photo.
When a run fails
Check credential presence without printing its value, input readability, and output writability. For an unsupported option, consult the helper's accepted values. Correct assistant-chosen options within the requested result, but do not silently switch a user-selected model or provider. Before a bounded retry, check whether the earlier attempt already produced output; report the actual error if recovery would require new authority or changing the request.
Read more
name: nanobanana-skill description: Generate, edit, or composite images with Gemini/Nanobanana. Default for image requests without a named provider; do not override a different provider the user chose.
Nanobanana Image Skill
Use the bundled `nanobanana.py` to generate or edit images with Gemini image models. The default path targets **Nano Banana 2** (`gemini-3.1-flash-image-preview`) with **thinking summaries** and **Google Search grounding** on, because those defaults are the main reason to use this skill instead of a generic image prompt.
Requirements
1. `GEMINI_API_KEY` in `~/.nanobanana.env` (`GEMINI_API_KEY=sk-dummy`) or the shell environment. 2. Python dependencies from `requirements.txt`. 3. The executable is `nanobanana.py` in this same skill directory. Resolve its absolute path once before running it.
The CLI can print `--help` without credentials. It validates local input files before creating an API client and exits non-zero when the API returns no image.
Defaults
Model `gemini-3.1-flash-image-preview`, search grounding on, thinking summaries on at level `high`, resolution `1K`, and no aspect ratio unless the request implies a shape. Do not make the user choose a model, search mode, or thinking mode unless they asked for that level of control.
Leaving aspect ratio unspecified is usually better for edits, because Gemini can match the input image shape. For text-only generation, set one only when the user implies a format such as poster, square post, banner, phone wallpaper, or ultrawide hero.
Worth overriding: `--model gemini-3-pro-image-preview` for very detail-heavy or typography-sensitive work (slower); `--resolution 512px` for quick ideation (Nanobanana 2 models only), `2K`/`4K` for polished deliverables; `--thinking-level low` when latency beats refinement; search off when the user wants a purely imaginative result. Run `python3 /absolute/path/to/nanobanana.py --help` for the exact accepted values, including the full aspect-ratio and model lists.
Run it
Generate from text:
python3 /absolute/path/to/nanobanana.py \ --prompt "Create a high-end coffee bag package design with tactile paper texture and clear typography" \ --output /absolute/path/to/output/package.png
Edit or composite — pass every reference with `--input`. Nanobanana 2 mixes multiple references well, so do not narrow a blend, lineup, storyboard, or consistency pass down to a single image:
python3 /absolute/path/to/nanobanana.py \ --prompt "Turn these product photos into a clean ecommerce hero image with a soft studio shadow and subtle headline area" \ --input /absolute/path/to/ref1.png /absolute/path/to/ref2.png \ --aspect-ratio 4:5 \ --output /absolute/path/to/output/hero.png
Grounded generation, saving the model's text and metadata alongside the image:
python3 /absolute/path/to/nanobanana.py \ --prompt "Use Google Search to ground an editorial illustration about the most recent lunar mission and create a clean magazine cover concept" \ --text-output /absolute/path/to/output/cover.txt \ --metadata-output /absolute/path/to/output/cover.json \ --output /absolute/path/to/output/cover.png
Then report the saved path(s), whether search grounding stayed enabled, where any text or thought summaries landed, and any warning from the run. If the model returns text but no image, say so plainly and suggest a more explicitly image-focused prompt rather than presenting the run as a success.
Prompting
Good Nanobanana prompts are production briefs, not art wishes: subject, visual style, composition or camera framing, any required text, the output's use case, and constraints such as brand colors, negative space, or realism level.
Create a premium sparkling water can advertisement. Use a cold studio product-photo look, silver highlights, condensation droplets, and a clean dark-teal background. Leave negative space in the upper-right for headline copy.
For edits, say what to preserve as well as what to change:
Keep the shoe silhouette and logo placement intact. Replace the background with a bright outdoor basketball court, add dynamic afternoon shadows, and keep the image looking like a real sports campaign photo.
When a run fails
Check credential presence without printing its value, input readability, and output writability. For an unsupported option, consult the helper's accepted values. Correct assistant-chosen options within the requested result, but do not silently switch a user-selected model or provider. Before a bounded retry, check whether the earlier attempt already produced output; report the actual error if recovery would require new authority or changing the request.
给 Codex CLI 加上深度调研、图片生成、浏览器调试等能力,配好多模型切换,开箱即用。 仓库采用面向个人开发效率的默认配置;你可以整套使用,也可以按需选取 Profiles 或 Skills。使用前请确认模型提供商、权限和外部依赖,并避免提交真实密钥。
Other skills on codex-settings.
claude-skill
Delegate a task to the Claude Code CLI, typically a headless `claude -p` run. Use when the user wants the work executed through…
code-simplifier
Simplify existing code for clarity and maintainability without changing behavior. Use when asked to clean up or simplify code,…
deep-research
用 Codex CLI 子任务完成多来源深度调研并综合成带出处的报告。用于确实需要分头取证的研究,不用于单次查证或已给定材料的总结。
github-fix-issue
Investigate or fix a GitHub issue by number or URL. Keep investigation-only requests read-only.
github-review-pr
Review a GitHub pull request by number or URL for evidence-backed defects. Not for reviewing local uncommitted changes.

