mcpField
B
banana-cli

banana-cli

github.com/anionexDocuments15.9k59 installsUpdated 1d ago
Repository

About banana-cli

banana-cli is a command-line tool for creating, managing, and exporting AI-generated presentations. It supports end-to-end generation, batch jobs, and renovation of existing PowerPoint files.

Key features

  1. 01Create and manage presentation projects
  2. 02Generate outlines, descriptions, and images
  3. 03Export presentations to PPTX and PDF
  4. 04Run batch generation jobs
  5. 05Renovate existing PPT files
  6. 06JSON output for scripting

Use cases

  1. 01Generate a presentation from a topic idea
  2. 02Export finished slides to PPTX or PDF
  3. 03Process multiple presentation jobs from a file
  4. 04Revise an existing PowerPoint presentation

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/anionex/banana-slides --skill banana-cli

After installing, type/banana-cliin Claude Code to confirm it loaded.

Bundled filesreferences/setup.md

Details

From the project README

banana-cli

CLI for creating, managing, and exporting AI-generated presentations.

Environment Check

Before running any command, verify the backend is reachable:

curl -sf http://localhost:5011/health

If this fails, the backend is not running. Read references/setup.md and follow the steps to clone the repo, configure .env, and start the backend. Do not proceed until the health check passes.

Invocation

banana-cli <command> [options]

If banana-cli is not on PATH, use uv run banana-cli from the project root, or install globally with uv tool install .

End-to-End Workflow

# 1. Create project and set as working project
result=$(banana-cli --json projects create --creation-type idea --idea-prompt "Your topic")
project_id=$(echo "$result" | jq -r '.data.project_id')
banana-cli projects use "$project_id"

# 2. Generate everything (outline → descriptions → images)
banana-cli workflows full --language zh --pages 8

# 3. Export to local file
banana-cli exports pptx --output ./slides.pptx

Once a working project is set, --project-id is optional on all subsequent commands.

Key Patterns

Short ID prefix matching

All --project-id and --page-id accept short prefixes (like git short hashes):

banana-cli projects get a1b2          # matches a1b2c3d4-...
banana-cli pages edit-image --page-id b9c8 --instruction "change title to red"
Working project context

Avoid repeating --project-id by setting a working project:

banana-cli projects use a1b2     # set (accepts prefix)
banana-cli workflows outline      # uses working project
banana-cli projects use           # show current
banana-cli projects unuse         # clear
Page count control

--pages is a hint to the AI — actual page count may differ. The CLI warns on stderr when they don't match.

banana-cli workflows outline --pages 5
banana-cli workflows full --pages 10 --language en
Export with auto-download
# Download directly to local path
banana-cli exports pptx --output ./slides.pptx
banana-cli exports pdf --output ./report.pdf

# Without --output, returns a server-side download URL
banana-cli exports pptx
Batch generation
cat > jobs.jsonl << 'EOF'
{"job_id":"t1","job_type":"full_generation","creation_type":"idea","idea_prompt":"AI Intro","language":"zh","export":{"formats":["pptx"]}}
{"job_id":"t2","job_type":"full_generation","creation_type":"idea","idea_prompt":"ML Basics","language":"zh","export":{"formats":["pptx","pdf"]}}
EOF

banana-cli run jobs --file jobs.jsonl --report report.json --state-file state.json
Renovate existing PPT
banana-cli renovation create --file /absolute/path/to/slides.pptx --language zh
JSON output for scripting
banana-cli --json projects list | jq '.data.projects[].project_id'

Important Notes

  • File path arguments (--file, --image) require absolute paths
  • Async tasks (descriptions, images, editable export) wait by default and show progress on stderr. Pass --no-wait to get a task_id immediately
  • --wait / tasks wait can be interrupted (Ctrl+C) and resumed anytime — backend tasks are unaffected
  • Progress lines go to stderr (format: [PROGRESS] STAGE STATUS completed/total), keeping stdout JSON clean
  • --help output is plain text when piped (non-TTY) — safe for agent consumption
  • Config priority: CLI args > env vars (BANANA_CLI_*) > TOML config (~/.config/banana-slides/cli.toml) > defaults

Discovering Commands

Run banana-cli --help for the top-level command list, and banana-cli <command> --help for subcommand options. Help output is plain text when piped (non-TTY).

Comments

Markdown supported