Releases: AhmedAburady/banana-cli
v1.1.5
What's New
Custom Output Filename (-f)
New -f flag lets you name your output file instead of getting the default timestamped filename.
# Single image — saves as sloth.png
banana -p "cute sloth" -f sloth.png
# Multiple images — auto-suffixed
banana -p "cute sloth" -f sloth.png -n 5
# → sloth_1.png, sloth_2.png, ..., sloth_5.png
# Combine with output folder
banana -p "cute sloth" -o ~/Documents -f sloth.pngJPEG Output Support
Specify .jpg (or .jpeg) in -f to get a JPEG file. The API response is automatically re-encoded at quality 95 — fully parallel, no sequential bottleneck.
banana -p "cute sloth" -f sloth.jpg
banana -p "cute sloth" -f sloth.jpg -n 5
# → sloth_1.jpg, sloth_2.jpg, ...Notes:
-fand-rare mutually exclusive (validation error if both are set)- Any extension other than
.jpg/.jpegfalls back to.png - Works with both Gemini API and Vertex AI (
-vertex)
Full Changelog: v1.1.4...v1.1.5
v1.1.4
What's New
Flash Model & Thinking Config
Switch between Pro and Flash models. Flash supports configurable thinking levels for faster or deeper reasoning.
# Use Flash model
banana -p "a sunset" -m flash
# Flash with high thinking
banana -p "a complex scene" -m flash -t high| Flag | Description | Default |
|---|---|---|
-m |
Model: pro, flash |
pro |
-t |
Thinking level: minimal, high (Flash only) |
minimal |
Image Search Grounding
New -is flag enables image search grounding — lets the model reference real images during generation. Flash model only.
banana -p "a cat wearing a supreme hoodie" -m flash -isMultiple Reference Images (-i)
The -i flag is now repeatable and supports shell globs. Pass multiple reference images without needing a folder.
# Multiple explicit references
banana -i a.png -i b.png -p "merge these styles"
# Shell glob expansion (put -i last)
banana -p "add rain" -i *.pngTUI Parity
The interactive TUI now exposes all new CLI features: Model, Thinking Level, and Image Search. Flash-only options appear dynamically when you select the Flash model.
Responsive 2-Column Layout
TUI forms now use a compact 2-column layout for settings and adapt to your terminal size — no more cropped content or wasted space.
Full Changelog: v1.1.3...v1.1.4
v1.1.3
BANANA CLI v1.1.3
What's New
Persistent GCP Configuration
Save your Vertex AI settings to the config file instead of using environment variables every time.
# Save GCP project and location (one-time setup)
banana config set-project your-project-id
banana config set-location global
# View all settings
banana config showNew Config Commands:
| Command | Description |
|---|---|
banana config set-project <ID> |
Save GCP project ID |
banana config set-location <LOC> |
Save GCP location (default: global) |
banana config show |
Display all configured settings |
Configuration Priority:
- Environment variables (highest priority)
- Config file (
~/.config/banana/config.json) - Default values
Vertex AI Image Options
The -ar (aspect ratio) and -s (image size) flags now work correctly with Vertex AI.
banana -p "a sunset" -vertex -ar 16:9 -s 2KFull Changelog: v1.1.2...v1.1.3
v1.1.2
BANANA CLI v1.1.2
What's New
Vertex AI Support (-vertex)
Use Google Cloud's Vertex AI instead of the direct Gemini API. Perfect for enterprise users with GCP projects who want better quotas, IAM-based authentication, and no API key exposure.
# Set up (one-time)
gcloud auth application-default login
export GOOGLE_CLOUD_PROJECT="your-project-id"
# Generate with Vertex AI
banana -p "a sunset over mountains" -vertex
# Edit with Vertex AI
banana -i photo.png -p "make it watercolor" -vertex
# Describe with Vertex AI
banana describe -i photo.jpg -vertexEnvironment Variables:
| Variable | Required | Default |
|---|---|---|
GOOGLE_CLOUD_PROJECT |
Yes | - |
GOOGLE_CLOUD_LOCATION |
No | global |
Benefits:
- No API key in URLs - uses Google Cloud IAM authentication
- Enterprise-tier quotas based on your GCP project
- Works with service accounts for automation
- Same models as direct API (
gemini-3-pro-image-preview)
Required IAM Role: roles/aiplatform.user (Vertex AI User)
Full Changelog: v1.1.1...v1.1.2
v1.1.1
BANANA CLI v1.1.1
What's New
Replace Flag (-r)
New -r flag preserves the input filename for the output when editing images.
# Without -r: generates "generated_1_20260201_143052.png"
banana -i photo.png -p "make it cartoon"
# With -r: outputs "photo.png" (replaces original)
banana -i photo.png -p "make it cartoon" -r
# With -r and multiple images: outputs "photo_1.png", "photo_2.png", etc.
banana -i photo.png -p "make it cartoon" -r -n 3Notes:
- Only works with single input files (not folders)
- When
-n > 1, adds index suffix to preserve the original
Full Changelog: v1.1.0...v1.1.1
v1.1.0
Full Changelog: v1.0.9...v1.1.0
v1.0.9
BANANA CLI v1.0.9
What's New
New describe Command
Analyze images and extract style descriptions using AI. Perfect for creating consistent style prompts.
# Plain text style description
banana describe -i photo.jpg
# Analyze folder of style references (unified description)
banana describe -i ./reference_images/
# Add style context to guide analysis
banana describe -i image.png -a "2D flat vector art"
# Structured JSON output
banana describe -i photo.jpg -json -o style.jsonFeatures:
- Single image or folder analysis
- Multiple images = unified style description
-pflag for custom prompts (overrides default)-aflag for additional context (prepended to default)-jsonflag for comprehensive structured output- Output to file (
-o) or stdout
Prompt File Support
-pflag now accepts a file path in addition to text- Useful for complex JSON prompts that are hard to escape in shell
- Supports any text file:
.json,.md,.txt, etc.
# Text prompt (as before)
banana -p "a sunset over mountains"
# Load prompt from file
banana -p prompt.json -n 3
banana -p ~/prompts/calligraphy.txt -ar 1:1Auto Version Detection
- Version now auto-detected from Go build info when installed via
go install - No more "dev" version when installing from module
Full Changelog: v1.0.7...v1.0.9
v1.0.8
BANANA CLI v1.0.8
What's New
Prompt File Support
-pflag now accepts a file path in addition to text- Useful for complex JSON prompts that are hard to escape in shell
- Supports any text file:
.json,.md,.txt, etc.
# Text prompt (as before)
banana -p "a sunset over mountains"
# Load prompt from file
banana -p prompt.json -n 3
banana -p ~/prompts/calligraphy.txt -ar 1:1Full Changelog: v1.0.6...v1.0.8
v1.0.7
Full Changelog: v1.0.6...v1.0.7
v1.0.6
BANANA CLI v1.0.6
What's New
Performance
- HTTP connection pooling for faster concurrent requests
- Parallel loading and base64 encoding of reference images
- Request timeout handling (120s)
Full Changelog: v1.0.5...v1.0.6