[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71SVC7DTTBHNVHGA958WNZZ":3,"skill-same:01M71SVC7DTTBHNVHGA958WNZZ":74},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":54,"commitSha":55,"skillDirectory":56,"forksCount":13,"repositoryHtmlUrl":57,"repositoryHomepageUrl":6,"ownerHtmlUrl":58,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":59,"install":60,"resources":73},"01M71SVC7DTTBHNVHGA958WNZZ","nano-banana-pro-openrouter",null,"Generate or edit images via OpenRouter with the Gemini 3 Pro Image model. Use for prompt-only image generation, image edits, and multi-image compositing; supports 1K\u002F2K\u002F4K output.","javiertarazon\u002Fide-agente-free-jt7-","javiertarazon","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F153141207?v=4","01M71R52TB3S9HXKH6WSNT8A7V","01M71R52VG5KS2DKDDH4GDQ30A",0,"MIT","https:\u002F\u002Fgithub.com\u002Fjaviertarazon\u002Fide-agente-free-jt7-\u002Fblob\u002Frelease\u002Fv4.2.11-panel-pro\u002F.github\u002Fskills\u002Fnano-banana-pro-openrouter\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"nano banana pro","nano banana pro openrouter","nano","pro","openrouter","banana","nano banana","uv","for","with","output","multi","images","image","only","use","prompt","model","api","gemini","2026-11-10 13:02:02",false,"---\nname: nano-banana-pro-openrouter\ndescription: 'Generate or edit images via OpenRouter with the Gemini 3 Pro Image model. Use for prompt-only image generation, image edits, and multi-image compositing; supports 1K\u002F2K\u002F4K output.'\nmetadata:\n  emoji: 🍌\n  requires:\n    bins:\n      - uv\n    env:\n      - OPENROUTER_API_KEY\n  primaryEnv: OPENROUTER_API_KEY\n---\n\n\n# Nano Banana Pro OpenRouter\n\n## Overview\n\nGenerate or edit images with OpenRouter using the `google\u002Fgemini-3-pro-image-preview` model. Support prompt-only generation, single-image edits, and multi-image composition.\n\n### Prompt-only generation\n\n```\nuv run {baseDir}\u002Fscripts\u002Fgenerate_image.py \\\n  --prompt \"A cinematic sunset over snow-capped mountains\" \\\n  --filename sunset.png\n```\n\n### Edit a single image\n\n```\nuv run {baseDir}\u002Fscripts\u002Fgenerate_image.py \\\n  --prompt \"Replace the sky with a dramatic aurora\" \\\n  --input-image input.jpg \\\n  --filename aurora.png\n```\n\n### Compose multiple images\n\n```\nuv run {baseDir}\u002Fscripts\u002Fgenerate_image.py \\\n  --prompt \"Combine the subjects into a single studio portrait\" \\\n  --input-image face1.jpg \\\n  --input-image face2.jpg \\\n  --filename composite.png\n```\n\n## Resolution\n\n- Use `--resolution` with `1K`, `2K`, or `4K`.\n- Default is `1K` if not specified.\n\n## System prompt customization\n\nThe skill reads an optional system prompt from `assets\u002FSYSTEM_TEMPLATE`. This allows you to customize the image generation behavior without modifying code.\n\n## Behavior and constraints\n\n- Accept up to 3 input images via repeated `--input-image`.\n- `--filename` accepts relative paths (saves to current directory) or absolute paths.\n- If multiple images are returned, append `-1`, `-2`, etc. to the filename.\n- Print `MEDIA: \u003Cpath>` for each saved image. Do not read images back into the response.\n\n## Troubleshooting\n\nIf the script exits non-zero, check stderr against these common blockers:\n\n| Symptom | Resolution |\n|---------|------------|\n| `OPENROUTER_API_KEY is not set` | Ask the user to set it. PowerShell: `$env:OPENROUTER_API_KEY = \"sk-or-...\"` \u002F bash: `export OPENROUTER_API_KEY=\"sk-or-...\"` |\n| `uv: command not found` or not recognized | macOS\u002FLinux: \u003Ccode>curl -LsSf https:\u002F\u002Fastral.sh\u002Fuv\u002Finstall.sh &#124; sh\u003C\u002Fcode>. Windows: \u003Ccode>powershell -ExecutionPolicy ByPass -c \"irm https:\u002F\u002Fastral.sh\u002Fuv\u002Finstall.ps1 &#124; iex\"\u003C\u002Fcode>. Then restart the terminal. |\n| `AuthenticationError` \u002F HTTP 401 | Key is invalid or has no credits. Verify at \u003Chttps:\u002F\u002Fopenrouter.ai\u002Fsettings\u002Fkeys>. |\n\nFor transient errors (HTTP 429, network timeouts), retry once after 30 seconds. Do not retry the same error more than twice — surface the issue to the user instead.\n","# Nano Banana Pro OpenRouter\n\n## Overview\n\nGenerate or edit images with OpenRouter using the `google\u002Fgemini-3-pro-image-preview` model. Support prompt-only generation, single-image edits, and multi-image composition.\n\n### Prompt-only generation\n\n```\nuv run {baseDir}\u002Fscripts\u002Fgenerate_image.py \\\n  --prompt \"A cinematic sunset over snow-capped mountains\" \\\n  --filename sunset.png\n```\n\n### Edit a single image\n\n```\nuv run {baseDir}\u002Fscripts\u002Fgenerate_image.py \\\n  --prompt \"Replace the sky with a dramatic aurora\" \\\n  --input-image input.jpg \\\n  --filename aurora.png\n```\n\n### Compose multiple images\n\n```\nuv run {baseDir}\u002Fscripts\u002Fgenerate_image.py \\\n  --prompt \"Combine the subjects into a single studio portrait\" \\\n  --input-image face1.jpg \\\n  --input-image face2.jpg \\\n  --filename composite.png\n```\n\n## Resolution\n\n- Use `--resolution` with `1K`, `2K`, or `4K`.\n- Default is `1K` if not specified.\n\n## System prompt customization\n\nThe skill reads an optional system prompt from `assets\u002FSYSTEM_TEMPLATE`. This allows you to customize the image generation behavior without modifying code.\n\n## Behavior and constraints\n\n- Accept up to 3 input images via repeated `--input-image`.\n- `--filename` accepts relative paths (saves to current directory) or absolute paths.\n- If multiple images are returned, append `-1`, `-2`, etc. to the filename.\n- Print `MEDIA: \u003Cpath>` for each saved image. Do not read images back into the response.\n\n## Troubleshooting\n\nIf the script exits non-zero, check stderr against these common blockers:\n\n| Symptom | Resolution |\n|---------|------------|\n| `OPENROUTER_API_KEY is not set` | Ask the user to set it. PowerShell: `$env:OPENROUTER_API_KEY = \"sk-or-...\"` \u002F bash: `export OPENROUTER_API_KEY=\"sk-or-...\"` |\n| `uv: command not found` or not recognized | macOS\u002FLinux: \u003Ccode>curl -LsSf https:\u002F\u002Fastral.sh\u002Fuv\u002Finstall.sh &#124; sh\u003C\u002Fcode>. Windows: \u003Ccode>powershell -ExecutionPolicy ByPass -c \"irm https:\u002F\u002Fastral.sh\u002Fuv\u002Finstall.ps1 &#124; iex\"\u003C\u002Fcode>. Then restart the terminal. |\n| `AuthenticationError` \u002F HTTP 401 | Key is invalid or has no credits. Verify at \u003Chttps:\u002F\u002Fopenrouter.ai\u002Fsettings\u002Fkeys>. |\n\nFor transient errors (HTTP 429, network timeouts), retry once after 30 seconds. Do not retry the same error more than twice — surface the issue to the user instead.\n",{"name":5,"metadata":48,"description":7},{"emoji":49,"requires":50,"primaryEnv":52},"🍌",{"env":51,"bins":53},[52],"OPENROUTER_API_KEY",[30],"release\u002Fv4.2.11-panel-pro","a92ea02bcf7e2b3dbaf46d49696c29a3cb490d4f",".github\u002Fskills\u002Fnano-banana-pro-openrouter","https:\u002F\u002Fgithub.com\u002Fjaviertarazon\u002Fide-agente-free-jt7-","https:\u002F\u002Fgithub.com\u002Fjaviertarazon","2026-07-12 07:10:45",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add javiertarazon\u002Fide-agente-free-jt7- --skill nano-banana-pro-openrouter",{"tool":66,"command":67},"bunx","bunx skills add javiertarazon\u002Fide-agente-free-jt7- --skill nano-banana-pro-openrouter",{"tool":69,"command":70},"pnpm","pnpm dlx skills add javiertarazon\u002Fide-agente-free-jt7- --skill nano-banana-pro-openrouter","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjaviertarazon\u002Fide-agente-free-jt7-\u002Fblob\u002Frelease\u002Fv4.2.11-panel-pro\u002F.github\u002Fskills\u002Fnano-banana-pro-openrouter\u002FSKILL.md",true,[],[75,103,129,149,164,186],{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":84,"publishedAt":43},"01M71TQ7Q6Z10VWF3C2H5X1KW9","zustand-store-ts","Create Zustand stores with TypeScript, subscribeWithSelector middleware, and proper state\u002Faction separation. Use when building React state management, creating global stores, or implementing reacti...","https:\u002F\u002Fgithub.com\u002Fjaviertarazon\u002Fide-agente-free-jt7-\u002Fblob\u002Frelease\u002Fv4.2.11-panel-pro\u002F.github\u002Fskills\u002Fzustand-store-ts\u002FSKILL.md",[81],{"categoryNo":82,"categoryName":83,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000009","前端开发",[85,86,87,88,89,90,38,91,92,93,94,32,95,96,97,98,99,100,101,102],"zustand","store","zustand store ts","community","middleware","implementing","react state management","when","unknown","react","state","create","state management","typescript","action","management","separation","global",{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":112,"publishedAt":43},"01M71TQ5EAR40G6W0MV5ZDVEZT","zoom-automation","Automate Zoom meeting creation, management, recordings, webinars, and participant tracking via Rube MCP (Composio). Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002Fjaviertarazon\u002Fide-agente-free-jt7-\u002Fblob\u002Frelease\u002Fv4.2.11-panel-pro\u002F.github\u002Fskills\u002Fzoom-automation\u002FSKILL.md",[109],{"categoryNo":110,"categoryName":111,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[113,114,115,88,116,31,117,118,119,93,120,121,122,123,124,125,126,127,100,128],"zoom automation","zoom","automation","creation","search","schemas","MCP","first","via","meeting","search tools","tracking","webinars","composio","recordings","Tools",{"skillNo":130,"name":131,"nameZh":6,"description":132,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":133,"categories":134,"keywords":136,"publishedAt":43},"01M71TQ29B1EYBCEAP1ZBGXQ1A","zoho-crm-automation","Automate Zoho CRM tasks via Rube MCP (Composio): create\u002Fupdate records, search contacts, manage leads, and convert leads. Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002Fjaviertarazon\u002Fide-agente-free-jt7-\u002Fblob\u002Frelease\u002Fv4.2.11-panel-pro\u002F.github\u002Fskills\u002Fzoho-crm-automation\u002FSKILL.md",[135],{"categoryNo":110,"categoryName":111,"taxonomyType":20,"taxonomyTypeDesc":21},[137,138,115,139,140,141,88,142,143,31,144,117,118,145,119,93,146,147,148,96],"crm automation","zoho crm automation","crm","zoho crm","zoho","leads","manage leads","manage","records","convert","tasks","contacts",{"skillNo":150,"name":151,"nameZh":6,"description":152,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":153,"categories":154,"keywords":156,"publishedAt":43},"01M71TPZPMN60DH0XV58KVHY23","zendesk-automation","Automate Zendesk tasks via Rube MCP (Composio): tickets, users, organizations, replies. Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002Fjaviertarazon\u002Fide-agente-free-jt7-\u002Fblob\u002Frelease\u002Fv4.2.11-panel-pro\u002F.github\u002Fskills\u002Fzendesk-automation\u002FSKILL.md",[155],{"categoryNo":110,"categoryName":111,"taxonomyType":20,"taxonomyTypeDesc":21},[157,115,158,88,31,117,118,119,159,93,147,160,161,120,121,162,123,126,128,163],"zendesk automation","zendesk","organizations","replies","users","tickets","automate",{"skillNo":165,"name":166,"nameZh":6,"description":167,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":168,"categories":169,"keywords":170,"publishedAt":43},"01M71TPXDWKHKG4N6TVEPXWD0N","zapier-make-patterns","No-code automation democratizes workflow building. Zapier and Make (formerly Integromat) let non-developers automate business processes without writing code. But no-code doesn't mean no-complexity ...","https:\u002F\u002Fgithub.com\u002Fjaviertarazon\u002Fide-agente-free-jt7-\u002Fblob\u002Frelease\u002Fv4.2.11-panel-pro\u002F.github\u002Fskills\u002Fzapier-make-patterns\u002FSKILL.md",[],[171,172,173,174,175,176,177,178,179,115,180,93,181,182,183,184,185,163],"zapier make patterns","zapier","patterns","make","No-Code","complexity","writing","spawner","business","workflow","code","integromat","apache","processes","but",{"skillNo":187,"name":188,"nameZh":6,"description":189,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":190,"categories":191,"keywords":193,"publishedAt":43},"01M71TPT5T10WXNKW9G7ZXZ27W","youtube-summarizer","Extract transcripts from YouTube videos and generate comprehensive, detailed summaries using intelligent analysis frameworks","https:\u002F\u002Fgithub.com\u002Fjaviertarazon\u002Fide-agente-free-jt7-\u002Fblob\u002Frelease\u002Fv4.2.11-panel-pro\u002F.github\u002Fskills\u002Fyoutube-summarizer\u002FSKILL.md",[192],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[194,195,196,197,88,198,199,200,201,202,203,204,181,205,206,207,208,209,210,211],"summarizer","youtube","youtube summarizer","Video","content-analysis","frameworks","copilot","2025","github-copilot","extract transcripts","analysis","codex","cli","summaries","github","generate","summarization","2026"]