Skip to content

feat(nanobanana): add nanobanana image generation plugin to marketplace#69

Merged
amondnet merged 17 commits intomainfrom
feat/add-nanobanana-extension
Mar 5, 2026
Merged

feat(nanobanana): add nanobanana image generation plugin to marketplace#69
amondnet merged 17 commits intomainfrom
feat/add-nanobanana-extension

Conversation

@amondnet
Copy link
Copy Markdown
Contributor

@amondnet amondnet commented Mar 5, 2026

Summary

  • Adds nanobanana to the marketplace as a GitHub-sourced plugin referencing pleaseai/nanobanana-plugin
  • Updates marketplace.json to point to the upstream plugin repo
  • Updates the external-plugins/nanobanana submodule to the merged upstream commit

What's in pleaseai/nanobanana-plugin (merged PR #1)

  • .claude-plugin/plugin.json — MCP server config via npx @pleaseai/nanobanana-mcp-server
  • hooks/hooks.json + hooks/context.sh — loads GEMINI.md context on SessionStart
  • commands/ — 8 converted commands: diagram, edit, generate, icon, nanobanana, pattern, restore, story
  • .github/workflows/release.yaml — npm publish via Trusted Publishers (OIDC, no token)
  • .github/workflows/sync-upstream.yaml — daily cron sync from gemini-cli-extensions/nanobanana
  • .github/workflows/auto-tag.yaml — auto-tags on sync PR merge to trigger release

Test plan

  • Install and test: /plugin install nanobanana@pleaseai
  • Verify SessionStart hook loads GEMINI.md context
  • Verify commands are available in Claude Code (e.g. /nanobanana:generate)

@vercel
Copy link
Copy Markdown

vercel Bot commented Mar 5, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
claude-code-plugins Ready Ready Preview, Comment Mar 5, 2026 9:44am

Request Review

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request integrates the new nanobanana Gemini CLI extension, which provides image generation and manipulation functionalities, into the existing plugin ecosystem. It involves adding all necessary plugin files, configuring its marketplace entry, and setting up its release and synchronization processes. Concurrently, a broad synchronization update was performed across many other plugins, and minor documentation improvements were made to the tsdown and turborepo plugins.

Highlights

  • New Plugin Integration: The nanobanana Gemini CLI extension has been added to the marketplace, enabling advanced image generation and manipulation capabilities. This includes its plugin configuration, changelog, license, and detailed Gemini image generation instructions.
  • Command Definitions: Eight new command definitions (diagram, edit, generate, icon, nanobanana, pattern, restore, story) were introduced for the nanobanana plugin, each specifying argument parsing and tool calls for image-related tasks.
  • Plugin Metadata and Hooks: The nanobanana plugin now includes gemini-extension.json for Gemini-specific metadata and hooks/hooks.json with a context.sh script to load plugin context at session start.
  • System Configuration Updates: The marketplace.json was updated to reference the local nanobanana plugin source, release-please-config.json was extended to include nanobanana for release management, and scripts/meta.ts now registers the new extension.
  • Synchronization Updates: Numerous SYNC.md files and vendor subproject commits across various existing plugins (e.g., agent-browser, ai-sdk, better-auth, prisma, turborepo) were updated to reflect recent synchronization activities, indicating refreshed content or dependencies.
  • Documentation Enhancements: The tsdown plugin's CSS options documentation was updated to change the default CSS transformer and clarify PostCSS configuration. The turborepo plugin's documentation was updated to reflect a new version and introduce a longerSignatureKey option.
Changelog
  • .claude-plugin/marketplace.json
    • Updated nanobanana plugin's description and source to point to its local directory.
  • plugins/agent-browser/skills/agent-browser/SYNC.md
    • Updated synchronization information, including Git SHA and sync date.
  • plugins/agent-browser/skills/dogfood/SYNC.md
    • Updated synchronization information, including Git SHA and sync date.
  • plugins/agent-browser/skills/electron/SYNC.md
    • Updated synchronization information, including Git SHA and sync date.
  • plugins/agent-browser/skills/slack/SYNC.md
    • Updated synchronization information, including Git SHA and sync date.
  • plugins/ai-sdk/skills/use-ai-sdk/SYNC.md
    • Updated synchronization information, including Git SHA and sync date.
  • plugins/better-auth/skills/best-practices/SYNC.md
    • Updated synchronization information, including sync date.
  • plugins/better-auth/skills/create-auth/SYNC.md
    • Updated synchronization information, including sync date.
  • plugins/better-auth/skills/emailAndPassword/SYNC.md
    • Updated synchronization information, including sync date.
  • plugins/better-auth/skills/organization/SYNC.md
    • Updated synchronization information, including sync date.
  • plugins/better-auth/skills/twoFactor/SYNC.md
    • Updated synchronization information, including sync date.
  • plugins/mastra/skills/mastra/SYNC.md
    • Updated synchronization information, including sync date.
  • plugins/nanobanana/.claude-plugin/plugin.json
    • Added new plugin configuration for nanobanana, including name, version, description, author, homepage, repository, license, keywords, MCP server details, and command paths.
  • plugins/nanobanana/CHANGELOG.md
    • Added initial changelog for the nanobanana plugin, detailing versions 1.0.0 and 1.0.1.
  • plugins/nanobanana/GEMINI.md
    • Added detailed instructions for the Gemini 2.5 Flash Image model when using the Nano Banana extension, covering generation principles, command-specific guidelines, quality standards, and error prevention.
  • plugins/nanobanana/LICENSE.md
    • Added the Apache License, Version 2.0 for the nanobanana plugin.
  • plugins/nanobanana/SYNC.md
    • Added synchronization information for the nanobanana plugin, including source, Git SHA, and sync date.
  • plugins/nanobanana/commands/diagram.md
    • Added command definition for generating technical diagrams with various options and validation rules.
  • plugins/nanobanana/commands/edit.md
    • Added command definition for editing existing images with a text prompt and validation rules.
  • plugins/nanobanana/commands/generate.md
    • Added command definition for generating single or multiple images from a text prompt with style and variation controls.
  • plugins/nanobanana/commands/icon.md
    • Added command definition for generating app icons, favicons, and UI elements with size, type, style, format, background, and corner options.
  • plugins/nanobanana/commands/nanobanana.md
    • Added the main command definition for the nanobanana plugin, acting as a router to specialized image generation and manipulation tools based on user requests.
  • plugins/nanobanana/commands/pattern.md
    • Added command definition for generating seamless patterns and textures with size, type, style, density, colors, and repeat options.
  • plugins/nanobanana/commands/restore.md
    • Added command definition for restoring or enhancing existing images with a restoration prompt.
  • plugins/nanobanana/commands/story.md
    • Added command definition for generating sequences of related images that tell a visual story with steps, type, style, layout, transition, and format options.
  • plugins/nanobanana/gemini-extension.json
    • Added Gemini extension configuration for nanobanana, specifying its name, version, description, MCP server details, and context file name.
  • plugins/nanobanana/hooks/context.sh
    • Added a shell script to read gemini-extension.json and load the specified context file (GEMINI.md) at session start, outputting it as JSON.
  • plugins/nanobanana/hooks/hooks.json
    • Added hooks configuration to trigger the context.sh script during the SessionStart event.
  • plugins/nuxt-ui/skills/nuxt-ui/SYNC.md
    • Updated synchronization information, including Git SHA and sync date.
  • plugins/prisma/skills/prisma-cli/SYNC.md
    • Updated synchronization information, including sync date.
  • plugins/prisma/skills/prisma-client-api/SYNC.md
    • Updated synchronization information, including sync date.
  • plugins/prisma/skills/prisma-database-setup/SYNC.md
    • Updated synchronization information, including sync date.
  • plugins/prisma/skills/prisma-driver-adapter-implementation/SYNC.md
    • Updated synchronization information, including sync date.
  • plugins/prisma/skills/prisma-postgres/SYNC.md
    • Updated synchronization information, including sync date.
  • plugins/prisma/skills/prisma-upgrade-v7/SYNC.md
    • Updated synchronization information, including sync date.
  • plugins/slidev/skills/slidev/SYNC.md
    • Updated synchronization information, including sync date.
  • plugins/supabase/skills/supabase-postgres-best-practices/CLAUDE.md
    • Updated the internal path reference.
  • plugins/supabase/skills/supabase-postgres-best-practices/SYNC.md
    • Updated synchronization information, including sync date.
  • plugins/tsdown/skills/tsdown/SYNC.md
    • Updated synchronization information, including Git SHA and sync date.
  • plugins/tsdown/skills/tsdown/references/option-css.md
    • Updated the default CSS transformer from 'postcss' to 'lightningcss'.
    • Added a new option transformer: 'postcss' to an example configuration.
    • Clarified the auto-detection of PostCSS config.
    • Updated the default value for css.transformer in the options table.
  • plugins/turborepo/skills/turborepo/SKILL.md
    • Updated the Turborepo skill version from 2.8.14-canary.2 to 2.8.14-canary.6.
  • plugins/turborepo/skills/turborepo/SYNC.md
    • Updated synchronization information, including Git SHA and sync date.
  • plugins/turborepo/skills/turborepo/references/best-practices/structure.md
    • Updated the Turborepo schema version in the example JSON.
  • plugins/turborepo/skills/turborepo/references/configuration/RULE.md
    • Updated the Turborepo schema version in the example JSON.
  • plugins/turborepo/skills/turborepo/references/configuration/global-options.md
    • Added a new global option longerSignatureKey with its description.
  • plugins/turborepo/skills/turborepo/references/environment/RULE.md
    • Updated the Turborepo schema version in the example JSON.
  • plugins/turborepo/skills/turborepo/references/environment/gotchas.md
    • Updated the Turborepo schema version in the example JSON.
  • plugins/vue/skills/vue-best-practices/SYNC.md
    • Updated synchronization information, including sync date.
  • plugins/vue/skills/vue-router-best-practices/SYNC.md
    • Updated synchronization information, including sync date.
  • plugins/vue/skills/vue-testing-best-practices/SYNC.md
    • Updated synchronization information, including sync date.
  • plugins/vueuse/skills/vueuse-functions/SYNC.md
    • Updated synchronization information, including sync date.
  • plugins/web-design/skills/web-design-guidelines/SYNC.md
    • Updated synchronization information, including sync date.
  • release-please-config.json
    • Added a new entry for plugins/nanobanana to the release configuration, specifying its release type, component, and version tracking.
  • scripts/meta.ts
    • Registered the nanobanana extension with its GitHub source URL.
  • vendor/agent-browser
    • Updated the subproject commit hash.
  • vendor/ai-sdk
    • Updated the subproject commit hash.
  • vendor/nuxt-ui
    • Updated the subproject commit hash.
  • vendor/tsdown
    • Updated the subproject commit hash.
  • vendor/turborepo
    • Updated the subproject commit hash.
Activity
  • A new feature, the nanobanana Gemini CLI extension, has been introduced.
  • Numerous new files defining the nanobanana plugin's functionality, commands, context, and licensing have been added.
  • Existing plugin synchronization metadata, including SYNC.md files and vendor subproject commits, was updated across many plugins, indicating a recent general synchronization operation.
  • Core configuration files such as marketplace.json, release-please-config.json, and scripts/meta.ts were modified to properly integrate and manage the new nanobanana plugin.
  • Minor documentation updates were applied to the tsdown and turborepo plugins to reflect changes in default settings and new options.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 issues found across 59 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="plugins/nanobanana/hooks/context.sh">

<violation number="1" location="plugins/nanobanana/hooks/context.sh:28">
P1: `contextFileName` is not validated as a safe in-plugin relative path, which allows path traversal and reading arbitrary files outside the plugin root.</violation>

<violation number="2" location="plugins/nanobanana/hooks/context.sh:35">
P2: `jq` is optional in parsing logic but required unconditionally for output, causing hook failure on environments without `jq`.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

Comment thread plugins/nanobanana/hooks/context.sh Outdated
Comment thread plugins/nanobanana/hooks/context.sh Outdated
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces the nanobanana Gemini CLI extension as a synced plugin, involving the addition of plugin files and updates to configuration files like the marketplace manifest and release configuration. A security audit identified a high-severity path traversal vulnerability in the context.sh hook script, which reads a filename from a configuration file and uses it to read local files without validation, potentially allowing sensitive information exfiltration. The review also focused on this new hook script, with a suggestion provided to improve its adherence to shell scripting best practices.

Comment thread plugins/nanobanana/hooks/context.sh Outdated
Comment thread plugins/nanobanana/hooks/context.sh Outdated
- Revert Type 4 (local sync) approach: remove plugins/nanobanana/ artifacts,
  remove scripts/meta.ts entry, remove release-please-config entry
- Restore marketplace.json to reference pleaseai/nanobanana-plugin directly
  (plugin.json managed in the source repo, not synced here)
- Update submodule pointer to reflect new commits in nanobanana-plugin

See pleaseai/nanobanana-plugin#1 for npm publish and upstream sync setup.
@amondnet amondnet changed the title feat(nanobanana): add nanobanana Gemini CLI extension to marketplace feat(nanobanana): add nanobanana image generation plugin to marketplace Mar 5, 2026
@amondnet amondnet merged commit 11fbefe into main Mar 5, 2026
7 checks passed
@amondnet amondnet deleted the feat/add-nanobanana-extension branch March 5, 2026 09:45
@pleaeai-bot pleaeai-bot Bot mentioned this pull request Mar 5, 2026
@pleaeai-bot pleaeai-bot Bot mentioned this pull request Apr 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant