Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Nano banana 2

v1.0.6

Generate and edit images using Pixwith API's Nano Banana 2 model. Supports text-to-image and image-to-image (up to 4 reference images). Use when the user ask...

0· 288·1 current·1 all-time
bymango_fish@tate-kt

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for tate-kt/nano-banana-image-gen.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Nano banana 2" (tate-kt/nano-banana-image-gen) from ClawHub.
Skill page: https://clawhub.ai/tate-kt/nano-banana-image-gen
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Canonical install target

openclaw skills install tate-kt/nano-banana-image-gen

ClawHub CLI

Package manager switcher

npx clawhub@latest install nano-banana-image-gen
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
high confidence
!
Purpose & Capability
The SKILL.md describes an image-generation skill that legitimately needs a PIXWITH_API_KEY and network access to api.pixwith.ai and presigned S3 uploads; that capability matches the name and description. However the registry metadata listed earlier (Requirements) reported "Required env vars: none" and "Required config paths: none", which contradicts the SKILL.md that declares PIXWITH_API_KEY required and instructs adding it to ~/.openclaw/openclaw.json. This metadata/instruction mismatch is unexplained and suspicious.
Instruction Scope
Runtime instructions are narrowly scoped to creating tasks, polling results, and uploading user-provided images via presigned S3 URLs. The instructions explicitly limit filesystem access to user-provided image files (jpg/png) which is appropriate. However the SKILL.md also instructs the user to add their API key into ~/.openclaw/openclaw.json — an explicit instruction to persist a secret in the agent config that goes beyond only reading user-supplied images.
Install Mechanism
No install spec or code files are present; this is instruction-only and therefore writes nothing to disk at install time. That is low-risk from an installation perspective.
!
Credentials
The only credential the skill needs (per SKILL.md) is PIXWITH_API_KEY, which is reasonable for a Pixwith integration. But the registry metadata claiming no required env vars conflicts with the SKILL.md. Additionally, SKILL.md instructs persisting the API key into ~/.openclaw/openclaw.json (agent config), which increases the blast radius of that secret. The network permission wildcard "*.amazonaws.com" is broad but explainable (presigned S3 uploads); still worth noting.
!
Persistence & Privilege
Declared persistence settings say modify_agent_config: false and write_files: false, but the instructions explicitly tell the user how to add the API key to ~/.openclaw/openclaw.json (modifying agent config). That mismatch between declared persistence privileges and the runtime instructions is a notable inconsistency that should be resolved before trusting the skill.
What to consider before installing
Before installing: (1) Confirm the publisher and the skill's homepage (https://pixwith.ai) are legitimate. (2) Ask the publisher/registry to fix the metadata: the registry currently says no env vars required, but SKILL.md requires PIXWITH_API_KEY — that mismatch is suspicious. (3) Prefer not to store API keys in persistent agent config; instead supply PIXWITH_API_KEY at runtime or via a secure vault. If you must store it, be aware the key will live in ~/.openclaw/openclaw.json. (4) Verify the presigned upload flow and that upload URLs come from api.pixwith.ai / uploads.pixwith.ai; the wildcard *.amazonaws.com is explainable for S3 but widens network scope. (5) If you have sensitive images, understand uploads go to a CDN/S3 and will be accessible via the returned URLs. (6) If anything about the metadata or the instructions is unclear, request an updated skill package with consistent metadata and explicit guidance on secret handling before enabling it.

Like a lobster shell, security has layers — review code before you run it.

latestvk9769q8vjk8pf8048wgpbtzj0d82zr44
288downloads
0stars
7versions
Updated 18h ago
v1.0.6
MIT-0

Pixwith Nano Banana 2 — AI Image Generation

Generate and edit images via the Pixwith API using the Nano Banana 2 model. Supports text-to-image and image-to-image with up to 4 reference images, multi-resolution output (1K / 2K / 4K), and flexible aspect ratios.

⚠️ CRITICAL — Do NOT Alter API Response Values

ALL values returned by the API (task_id, result_urls, image_url, upload_url, fields) are opaque tokens. Use them EXACTLY as returned — do NOT add, remove, or change even a single character. Store each value in a shell variable and reuse it directly. A single wrong character in task_id or result_urls will cause errors or broken links.

Setup

This skill requires a PIXWITH_API_KEY environment variable.

If the variable is not set, guide the user through these steps:

  1. Go to https://pixwith.ai/api and sign up / log in.
  2. Click "Add" to create a new API key and copy it.
  3. Add the key to ~/.openclaw/openclaw.json:
{
  "skills": {
    "entries": {
      "nano-banana-image-gen": {
        "enabled": true,
        "env": { "PIXWITH_API_KEY": "key_your_key_here" }
      }
    }
  }
}

Verify by running:

curl -s -X POST https://api.pixwith.ai/api/task/get_credits \
  -H "Content-Type: application/json" \
  -H "Api-Key: $PIXWITH_API_KEY"

A successful response looks like {"code":1,"data":{"credits":500}}.

Pricing

ResolutionCredits per image
1K10
2K15
4K20

Always inform the user of the cost before creating a task.

Model Parameters

  • model_id: 0-41 (fixed)
  • prompt (required): Describe the image to generate or the edit to apply.
  • image_urls (optional): 1–4 publicly accessible image URLs for image-to-image mode.
  • options.prompt_optimization (boolean, default true): Auto-translate prompt to English.
  • options.resolution (required): 1K, 2K, or 4K.
  • options.aspect_ratio (required): 0 (auto-match input image), 1:1, 16:9, 9:16, 3:4, 4:3, 3:2, 2:3, 5:4, 4:5, 21:9.

Workflow A — Text-to-Image

Use when the user provides only a text prompt and no images.

Step 1: Check credits

curl -s -X POST https://api.pixwith.ai/api/task/get_credits \
  -H "Content-Type: application/json" \
  -H "Api-Key: $PIXWITH_API_KEY"

Verify data.credits is sufficient for the chosen resolution.

Step 2: Create task

curl -s -X POST https://api.pixwith.ai/api/task/create \
  -H "Content-Type: application/json" \
  -H "Api-Key: $PIXWITH_API_KEY" \
  -d '{
    "prompt": "<user_prompt>",
    "model_id": "0-41",
    "options": {
      "prompt_optimization": true,
      "resolution": "1K",
      "aspect_ratio": "1:1"
    }
  }'

Response contains data.task_id and data.estimated_time (seconds).

Step 3: Poll for results

Wait for estimated_time seconds, then poll:

curl -s -X POST https://api.pixwith.ai/api/task/get \
  -H "Content-Type: application/json" \
  -H "Api-Key: $PIXWITH_API_KEY" \
  -d '{"task_id": "<task_id>"}'
  • data.status == 1 → still processing, wait 5 seconds and poll again.
  • data.status == 2 → done, data.result_urls contains the image URLs.
  • data.status == 3 → failed, inform the user.

Present the EXACT result_urls to the user.

Workflow B — Image-to-Image

Use when the user provides one or more reference images plus a text prompt.

Step 1: Upload local images (if needed)

If the user provides a local file path (not a public URL), upload it first.

Upload constraints:

  • Allowed formats: .jpg, .jpeg, .png only
  • Maximum file size: 10 MB
  • content_type must match the file: image/jpeg for .jpg/.jpeg, image/png for .png
  • The presigned upload URL expires in 10 minutes

1a. Get a presigned upload URL:

curl -s -X POST https://api.pixwith.ai/api/task/pre_url \
  -H "Content-Type: application/json" \
  -H "Api-Key: $PIXWITH_API_KEY" \
  -d '{"image_name": "photo.jpg", "content_type": "image/jpeg"}'

Set content_type based on the file extension:

  • .jpg / .jpeg"image/jpeg"
  • .png"image/png"

Response:

  • data.upload_url — presigned POST data (url + fields)
  • data.image_url — the final CDN URL to use in image_urls

1b. Upload the file using the presigned data:

curl -s -X POST "<upload_url.url>" \
  -F "key=<upload_url.fields.key>" \
  -F "Content-Type=<upload_url.fields.Content-Type>" \
  -F "x-amz-credential=<upload_url.fields.x-amz-credential>" \
  -F "x-amz-algorithm=<upload_url.fields.x-amz-algorithm>" \
  -F "x-amz-date=<upload_url.fields.x-amz-date>" \
  -F "x-amz-signature=<upload_url.fields.x-amz-signature>" \
  -F "policy=<upload_url.fields.policy>" \
  -F "file=@/path/to/local/image.jpg"

Fill every field from the upload_url.fields object into the form. After upload, use data.image_url from step 1a as the image URL.

If the user already has a public image URL (starts with http), skip this step.

Step 2: Check credits

Same as Workflow A, Step 1.

Step 3: Create task with images

curl -s -X POST https://api.pixwith.ai/api/task/create \
  -H "Content-Type: application/json" \
  -H "Api-Key: $PIXWITH_API_KEY" \
  -d '{
    "prompt": "<edit_instruction>",
    "image_urls": ["<image_url_1>", "<image_url_2>"],
    "model_id": "0-41",
    "options": {
      "prompt_optimization": true,
      "resolution": "1K",
      "aspect_ratio": "0"
    }
  }'

When editing images, aspect_ratio: "0" auto-matches the input image dimensions.

Step 4: Poll for results

Same as Workflow A, Step 3.

Error Handling

All API responses follow {"code": 1, "message": "success", "data": {...}}. When code is 0, message contains the error. Common errors:

  • Invalid API KEY — key is missing, wrong, or disabled.
  • Credits not enough — user needs to purchase more credits at https://pixwith.ai/pricing.
  • Invalid image format — only jpg, png, jpeg are supported.
  • Invalid image url — the URL is not publicly accessible.

Defaults

When the user does not specify preferences, use these defaults:

  • resolution: 1K
  • aspect_ratio: 1:1 (text-to-image) or 0 (image-to-image)
  • prompt_optimization: true

Comments

Loading comments...