⏳ This skill is pending AI review.
Scores will appear once the review pipeline completes.
banana-claws
Generate images via OpenRouter API (text-to-image) with automation-ready local scripts and a queue-first workflow. Use for single images or batched variants (posters, thumbnails, illustrations, concept art), especially when agents must acknowledge quickly, process asynchronously, and return consolidated file attachments with structured success/failure records.
Choose how to use this skill
You do not need every option. Choose the path your AI client supports. The stable page stays the same; versioned files are immutable.
1. Native installer
This listing has no registered native installer command. Use the complete package or source fallback below, depending on what your client supports.
Do not guess an installer command or replace an existing version without reviewing the diff.
2. Complete package recommended
Download the ZIP when available. It includes SKILL.md plus the references, security notes and version metadata.
No complete ProSkills package is published for this listing yet.3. Prompt-only
Copy the prompt above when the agent can read the stable page or when you want to adopt the workflow without installing a skill.
Need only the instruction file?
Download SKILL.md only if your client requires a single file. The complete ZIP is safer for a full installation because it preserves the references and release context.
No path installs or executes anything by itself. Your agent still needs access to the project files. Before updating, compare the installed version and review the diff.
// RATINGS
Not yet listed on ClawHub or SkillsMP
// README
banana-claws
banana-claws is a public OpenClaw skill and script toolkit for OpenRouter image generation, designed for both autonomous agents and human builders. It supports fast single-image generation, queue-first batch workflows, and machine-readable result artifacts so orchestration systems can acknowledge quickly, process in background, and return consolidated attached outputs.
Fast install (copy/paste for agents)
If you are instructing another OpenClaw agent, use this instruction block verbatim:
Install the OpenClaw skill `banana-claws` from:
https://github.com/ironystock/banana-claws
Steps:
1) Clone repo
2) Copy `skill/` contents into ~/.openclaw/workspace/skills/banana-claws/
3) Ensure OPENROUTER_API_KEY is set in runtime env
4) Restart/reload agent runtime so skills are re-indexed
5) Verify skill discovery, then run a queue-mode smoke test with attached outputs
Recommended smoke-test prompt for the agent:
Use banana-claws to generate 2 variants of "neon cyberpunk crab logo" in queue mode.
Acknowledge queued immediately, then return a consolidated completion status and attach outputs.
Best install path for external agents
- Preferred: install from GitHub repo source (
skill/directory), not from release zip. - Why: agents reliably understand repo URL + folder copy instructions; zip handling varies across runtimes/tools.
- If using release zip anyway: extract it first, then manually copy
skill/into the OpenClaw skills directory.
What this includes
skill/SKILL.md— skill instructions + queue/response patternskill/scripts/generate_image.py— single image generationskill/scripts/enqueue_image_job.py— enqueue one jobskill/scripts/enqueue_variants.py— enqueue N variants with consistent namingskill/scripts/run_image_queue.py— drain queue and write success/failure job recordsskill/scripts/queue_and_return.py— enqueue + immediate return + background worker handoff (with worker cap + orphan cleanup)skill/scripts/summarize_request.py— summarize request completion/attachments for push reportingskill/scripts/preflight_check.py— first-run diagnostics + copy/paste fixups
Requirements
- Python 3.9+
OPENROUTER_API_KEYenvironment variable- Python package
requests - Internet access to
https://openrouter.ai
Install Python dependency:
python3 -m pip install requests
# or: pip install -r requirements.txt
Quick start
0) First-time setup check (FTUX)
python3 skill/scripts/preflight_check.py
python3 skill/scripts/preflight_check.py --json
Generate one image:
python3 skill/scripts/generate_image.py \
--prompt "A cinematic portrait of a cyberpunk crab" \
--model google/gemini-3.1-flash-image-preview \
--image-size low \
--clarify-hints \
--out ./generated/cyber-crab.png
Queue 4 variants with async handoff (recommended):
python3 skill/scripts/queue_and_return.py \
--prompt "YouTube thumbnail: Snowcrab AI — Queue Mode Test, neon cyberpunk" \
--count 4 \
--baseline-image ./generated/base-thumbnail.png \
--baseline-source-kind explicit_path_or_url \
--confirm-external-upload \
--variation-strength low \
--lock-palette \
--lock-composition \
--must-keep "title placement" \
--must-keep "logo region" \
--image-size low \
--clarify-hints \
--out-dir ./generated \
--prefix snowcrab-queue-test \
--request-id "discord-<message-id>" \
--queue-dir ./generated/imagegen-queue
Manual worker drain (worker context only):
python3 skill/scripts/run_image_queue.py --queue-dir ./generated/imagegen-queue --request-id "discord-<message-id>" --handoff-mode background
Background hardening knobs:
python3 skill/scripts/queue_and_return.py ... \
--max-background-workers 2 \
--orphan-timeout-sec 1800
Iteration vs final quality
- Use
--image-size lowfor fast/low-cost exploratory passes. - Use
--image-size mediumor--image-size highfor final-quality outputs.
Prompt clarity hints
- Add
--clarify-hintsto print actionable prompt-quality hints (style, size/format, exact text, composition constraints). - Add
--strict-clarifyto fail early when prompt appears underspecified.
Provider data handling note (deny-by-default)
- Requests are sent to OpenRouter for generation/edit processing.
- When using baseline/edit flags (for example
--baseline-image), that input image is transmitted to the provider. - Local baseline uploads are blocked unless
--confirm-external-uploadis explicitly set. - Only use images that the user has explicitly approved for external processing.
Baseline-locked variants (on-rails)
- Use
--baseline-imagefor true image-to-image varianting. - Resolve baseline deterministically in caller: current-message attachment > replied-message attachment > clarification request.
- Record baseline provenance with
--baseline-source-kind current_attachment|reply_attachment|explicit_path_or_url. - Edit/variant intent prompts fail fast when no baseline is provided (override only with
--allow-no-baseline-on-edit-intent). - Default rails are auto-applied when baseline is present:
variation-strength=low,lock-palette,lock-composition. - Use
--variation-strength low|medium|highto control divergence from baseline. - Use repeatable
--must-keepconstraints for consistency. enqueue_variants.pywrites a<prefix>-manifest.jsonfile for reproducible reruns/debugging.
Queue/result contract
- Pending jobs:
generated/imagegen-queue/pending/*.json - Success records:
generated/imagegen-queue/results/*.json - Failure records:
generated/imagegen-queue/failed/*.json
Each result/failed record includes request_id, out, exit_code, stdout/stderr, and persisted provider metadata (including top-level generation id and provider response payload/path) for orchestration and edit/debug workflows.
Drift diagnostics are also persisted per job (edit_intent_detected, baseline_applied, baseline_source, baseline_source_kind, baseline_resolution_policy, rails_applied, clarify_hints) so agents can prove whether baseline rails were actually used.
Messaging behavior note:
- For multi-image requests, send an immediate queued ack, then a consolidated completion status update.
- Do not run queue drain in the same foreground turn for multi-image requests.
- Always attach generated files (never path-only).
- If your message adapter only supports one attachment per send, post file attachments as replies under the completion status message.
Install & use in OpenClaw (GitHub)
1) Clone the repo
git clone https://github.com/ironystock/banana-claws.git
cd banana-claws
2) Place the skill where OpenClaw can discover it
Copy the skill/ folder into your OpenClaw skills workspace (example shown below):
mkdir -p ~/.openclaw/workspace/skills/banana-claws
cp -R skill/* ~/.openclaw/workspace/skills/banana-claws/
3) Set required environment variable
export OPENROUTER_API_KEY="your_openrouter_api_key"
4) Refresh/restart agent runtime so skills are re-indexed
If the running agent session does not see the skill yet, restart/reload your OpenClaw runtime/session and verify the new skill is discoverable.
5) Prompt examples that should trigger this
// HOW IT'S BUILT
KEY FILES