CAUTION version 1.0.1 · audited 2026-09-09
This skill generates or edits images by calling Google's Gemini 3 Pro Image API. It consists of instructions for the agent plus one Python script that takes a prompt, an optional input image, a resolution setting, and an API key, then saves the resulting PNG to the filename you specify. The API key comes either from a command-line argument or from the GEMINI_API_KEY environment variable, and it is used only to authenticate with Google's official client library. The only network traffic is to Google's Gemini service through the google-genai package; there are no hidden endpoints, no obfuscated code, no persistence, and no payment or wallet handling. Two dependencies (google-genai, pillow) are installed on the fly by 'uv run'. Behavior matches the stated purpose; the main things to be aware of are that prompts and any input images are sent to Google, and that the output file will overwrite an existing file at the same path.
| Declared purpose | Generate new images or edit existing local images using Google's Nano Banana Pro (Gemini 3 Pro Image) API at 1K/2K/4K resolutions. |
| Observed behavior | Parses CLI arguments, resolves a Gemini API key from --api-key or GEMINI_API_KEY, optionally opens a local input image with PIL and auto-selects a resolution from its dimensions, calls client.models.generate_content on model 'gemini-3-pro-image-preview', then writes returned image bytes as a PNG to the requested path and prints the absolute path. Errors exit non-zero with plain messages. No other files are read or written, no shell execution, no data sent anywhere other than the Gemini API. |
| Verdict, rules only | CAUTION · reads credential-like environment variables: GEMINI_API_KEY |
| Verdict, AI | SAFE |
| Final verdict | CAUTION (never better than either pass) |
| capability | vs purpose | detail |
|---|---|---|
| network | needed | Outbound calls to Google's Gemini API via the google-genai client (scripts/generate_image.py line 114); no other hosts appear in the code. The only URL in the package is a publisher profile link on clawhub.ai in skill-card.md line 7. |
| credentials | needed | Reads GEMINI_API_KEY from the environment or accepts --api-key, and passes it only to genai.Client (scripts/generate_image.py lines 26, 75). The key is not logged, written to disk, or sent anywhere else. |
| filesystem_read | needed | Opens only the user-supplied --input-image path with PIL (scripts/generate_image.py line 86). |
| filesystem_write | needed | Creates parent directories and writes the generated PNG to the user-supplied --filename (scripts/generate_image.py lines 79, 147-151). An existing file at that path would be overwritten. |
| install_packages | needed | The inline uv script header declares dependencies google-genai>=1.0.0 and pillow>=10.0.0, which uv installs at run time (scripts/generate_image.py lines 4-7). |
| shell | needed | SKILL.md instructs the agent to run the script via 'uv run' in bash (SKILL.md lines 15-16); the commands are fixed and contain only user-provided prompt/filename arguments. |
| severity | finding |
|---|---|
| info | Reads a sensitive API key from the environment The Gemini API key is read from the environment and used only as the credential for genai.Client (line 75). It is never printed, stored, or transmitted to any destination other than Google's API. scripts/generate_image.py:26 return os.environ.get("GEMINI_API_KEY") |
| info | Sends prompt and optional input image to Google The user's prompt and, when editing, the contents of the local input image are transmitted to Google's Gemini service. This is inherent to the declared purpose and is disclosed in skill-card.md line 19, but users should avoid sending confidential images. scripts/generate_image.py:114 response = client.models.generate_content( |
| low | Creates directories and overwrites the target file without confirmation The script creates any missing parent directories for --filename and saves the PNG there (lines 147-151) with no check for an existing file, so a matching path would be replaced. Paths come from the agent/user, not from the skill. scripts/generate_image.py:79 output_path.parent.mkdir(parents=True, exist_ok=True) |
| low | Dependencies installed at run time by uv Running the script with 'uv run' fetches google-genai and pillow from PyPI at execution time with open-ended version ranges, so the exact installed code is not pinned by the package. scripts/generate_image.py:5 # "google-genai>=1.0.0", |
0 AI finding(s) were dropped because their file, line or quote did not match the package.
| domain | service rating | where |
|---|---|---|
| clawhub.ai | not in the service index | skill-card.md:7 |
| Binaries invoked | base64, bash, python3, uv |
| Environment variables read | GEMINI_API_KEY |
| Hard-coded wallets | none |
| Pipes a download to a shell | 0 |
| eval / exec / subprocess | 0 |
| base64 blobs | 0 |
| File writes | 2 |
| Persistence | 0 |
| file | lines | sha256 |
|---|---|---|
SKILL.md | 130 | 4ea88f4b0e9577e2… |
_meta.json | 6 | 4f61dc1245661922… |
scripts/generate_image.py | 167 | 8ecca97db200cab9… |
skill-card.md | 40 | 8bd506d739be578e… |
For agents
JSON: https://agenteconomy.report/k/nano-banana-pro.audit.json · badge: https://agenteconomy.report/k/nano-banana-pro.audited.svg ·
skill rating: /k/nano-banana-pro · commission an audit of any skill: US$ 29 per version.
The complete published package of this exact version was downloaded from the registry and read statically; nothing was executed. A deterministic pass extracts network destinations, binaries, environment variables, writes, install commands, obfuscation markers, subprocesses and wallets, each with file and line. An AI then reads the whole package with those facts and writes the summary, the capabilities and the findings under a strict schema; every finding it produces must cite a file, a line and the exact text, or it is dropped. The final verdict is the worst of the two passes. The audit does not change the skill's trust tier (policy); the author may respond through the dispute channel and the response is published here. Commissioned by: the Agent Economy Report (free program: the 150 most downloaded skills, September 2026).