Overview
banana-cli is the command-line tool for Banana Slides, implementing all features through the backend REST API. Ideal for:
- Batch generation: Create PPTs in bulk from JSONL/CSV files
- Automation pipelines: Integrate into CI/CD or scripts
- AI Agent orchestration: Use as a tool-calling interface for agents
Installation
From the project root:Agent Skill
If you use AI Agents in Claude Code, install the banana-cli skill with a single command so the Agent automatically knows how to use the CLI:/banana-cli as needed, with full environment detection, setup guidance, and usage examples.
Global Options
All commands support the following global options:Configuration Priority
CLI args > Environment variables (BANANA_CLI_*) > TOML config file > Defaults
Environment variable mapping:
Short ID Prefix Matching
All--project-id and --page-id parameters accept short prefixes (like git short hashes) instead of full UUIDs:
Working Project Context
Set a working project to skip--project-id on subsequent commands:
~/.config/banana-slides/context.json and persists across sessions.
Command Reference
projects — Project Management
workflows — Workflows
End-to-end PPT generation pipeline.workflows full supports skipping steps:
pages — Page Operations
exports — Export
--output specifies a local download path; if omitted, the server-side download URL is returned. --filename only sets the filename generated on the server side.
materials — Material Management
refs — Reference Files
templates — Templates
renovation — PPT Renovation
settings — Settings
tasks — Task Status
tasks wait can be interrupted with Ctrl+C and resumed at any time — the backend task is not affected.
styles — Style Extraction
files — File Download
Batch Jobs
Job File Format
Supports JSONL and CSV formats. Each line defines one generation task. JSONL example (jobs.jsonl):
Running Batch Jobs
--state-file: Writes running state in real-time for monitoring--done-marker-file: Records completed jobs; automatically skipped on re-run--continue-on-error/--fail-fast: Continue after failure or stop immediately
Monitoring Run Status
Interactive Job File Builder
Typical Workflow Examples
From Idea to PPTX
Batch Generate 10 PPTs
Notes
- Backend must be running: The CLI calls the backend API over HTTP — ensure the backend is started before use
- File paths must be absolute: All
--file,--imageparameters require absolute paths - Waits for completion by default: Async tasks such as description generation, image generation, and editable export wait for completion and show progress by default. Pass
--no-waitto return the task_id immediately, then usetasks waitto poll manually - Interruptible and resumable:
--waitandtasks waitcan be interrupted with Ctrl+C at any time. The backend task is unaffected — you can resume waiting with the same task_id --pagesis a hint:--pagesis passed as a hint to the AI; the actual number of generated pages may differ. When there is a mismatch, the CLI prints a notice to stderr- Progress output: While waiting for a task, progress information is written to stderr (format:
[PROGRESS] stage status completed/total) and does not interfere with JSON output on stdout - Shell completion: Run
banana-cli --install-completionto install auto-completion for your current shell - AI Agent friendly: When stdout is piped (non-TTY),
--helpautomatically outputs plain text without Rich formatting