Skip to main content
Securitymelodic-software

gemini-analyze

Send a file to Gemini CLI for structured code analysis. Use when you need security audits, performance reviews, architecture analysis, or bug detection.

Stars
74
Source
melodic-software/claude-code-plugins
Updated
2026-04-07
Slug
melodic-software--claude-code-plugins--gemini-analyze
View on GitHubRaw SKILL.md

// install — copy + paste into any project

mkdir -p .claude/skills && curl -fsSL https://raw.githubusercontent.com/melodic-software/claude-code-plugins/HEAD/plugins/google-ecosystem/skills/gemini-analyze/SKILL.md -o .claude/skills/gemini-analyze.md

Drops the SKILL.md into .claude/skills/gemini-analyze.md. Works with Claude Code, Cursor, and any agent that loads SKILL.md files from .claude/skills/.

Gemini Analyze Command

Send a file to Gemini CLI for structured analysis.

Prerequisites

  • Gemini CLI installed and configured (npm install -g @google/gemini-cli or brew install gemini-cli)
  • Valid Google AI API key configured in environment

Usage

/google-ecosystem:gemini-analyze <file-path> [analysis-type]

Arguments

  • $1 (required): File path to analyze
  • $2 (optional): Analysis type - defaults to "general"
    • security - Security vulnerabilities and risks
    • performance - Performance issues and optimizations
    • architecture - Design patterns and structure
    • bugs - Potential bugs and edge cases
    • general - Overall code review

Examples

  • /google-ecosystem:gemini-analyze src/auth.ts security
  • /google-ecosystem:gemini-analyze lib/utils.py performance
  • /google-ecosystem:gemini-analyze app/main.go architecture
  • /google-ecosystem:gemini-analyze index.js bugs
  • /google-ecosystem:gemini-analyze config.yaml (defaults to general)

Execution

Step 1: Validate File

Check that the file exists and is readable:

if [ ! -f "$1" ]; then
  echo "Error: File not found: $1"
  exit 1
fi

Step 2: Determine Analysis Type

analysis_type="${2:-general}"

Step 3: Build Prompt

Create analysis-specific prompts:

case "$analysis_type" in
  security)
    prompt="Security audit this code. Identify:
1. Authentication/authorization vulnerabilities
2. Input validation issues
3. Injection vulnerabilities (SQL, XSS, command)
4. Sensitive data exposure
5. Cryptographic weaknesses

Rate each finding: CRITICAL, HIGH, MEDIUM, LOW"
    ;;
  performance)
    prompt="Performance review this code. Identify:
1. Algorithmic inefficiencies
2. Memory leaks or excessive allocation
3. Unnecessary operations
4. Missing caching opportunities
5. N+1 query patterns

Estimate impact: HIGH, MEDIUM, LOW"
    ;;
  architecture)
    prompt="Architecture review this code. Analyze:
1. Design patterns used
2. SOLID principles adherence
3. Separation of concerns
4. Dependency management
5. Extensibility and maintainability

Provide recommendations for improvement"
    ;;
  bugs)
    prompt="Bug hunt in this code. Look for:
1. Logic errors
2. Off-by-one errors
3. Null/undefined handling
4. Race conditions
5. Edge cases not handled
6. Type mismatches

Rate likelihood: LIKELY, POSSIBLE, UNLIKELY"
    ;;
  *)
    prompt="General code review. Evaluate:
1. Code quality and readability
2. Best practices adherence
3. Potential issues
4. Improvement suggestions"
    ;;
esac

Step 4: Execute Analysis

result=$(cat "$1" | gemini "$prompt" -m gemini-2.5-flash)

Step 5: Parse Results

Note: Gemini CLI outputs plain text by default, not JSON. The jq parsing below is for reference if using JSON output mode. For standard usage, treat the entire output as the response.

response=$(echo "$result" | jq -r '.response // "Analysis failed"')
tokens=$(echo "$result" | jq '.stats.models | to_entries | map(.value.tokens.total) | add // 0')
model=$(echo "$result" | jq -r '.stats.models | keys[0] // "unknown"')

Output Format

Present findings in structured format:

# Gemini Analysis: {filename}

**Type**: {analysis_type}
**Model**: {model}
**Tokens**: {tokens}

---

{response}

---
*Analysis by Gemini CLI*

Notes

  • Uses Flash model by default for cost efficiency
  • Supports multiple analysis types with specialized prompts
  • Structured findings with severity/impact ratings
  • Token usage reported for cost tracking