CLI tool for creating, managing, and exporting AI-generated presentations via the Banana Slides API. Use when the user asks to: (1) generate a PPT/presentation/slides from an idea, outline, or description, (2) export a project to PPTX, PDF, or images, (3) batch-generate multiple presentations, (4) manage projects, pages, materials, or templates programmatically, (5) renovate/redesign an existing PPT or PDF, (6) edit slide images with natural language.
93%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
CLI for creating, managing, and exporting AI-generated presentations.
Before running any command, verify the backend is reachable:
curl -sf http://localhost:5011/healthIf 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.
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 .
# 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.pptxOnce a working project is set, --project-id is optional on all subsequent commands.
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"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--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# 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 pptxcat > 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.jsonbanana-cli renovation create --file /absolute/path/to/slides.pptx --language zhbanana-cli --json projects list | jq '.data.projects[].project_id'--file, --image) require absolute paths--no-wait to get a task_id immediately--wait / tasks wait can be interrupted (Ctrl+C) and resumed anytime — backend tasks are unaffected[PROGRESS] STAGE STATUS completed/total), keeping stdout JSON clean--help output is plain text when piped (non-TTY) — safe for agent consumptionBANANA_CLI_*) > TOML config (~/.config/banana-slides/cli.toml) > defaultsRun 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).
Anionex/banana-slides
9411065
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.