NEW A Claude Code skill for visual generation

Generate images, SVG, videos & audio — one skill, six providers, smart routing.

Da Vinci turns Claude Code into a visual studio. Just say what you need — Claude analyzes intent, picks the best model, checks the cost, and drops the asset in ./assets/generated/ with a full audit trail.

Apache 2.0 Node.js 18+ Zero build step Works on GitHub Pages
Why Da Vinci

A studio in one command.

Every provider has a strength. Da Vinci knows which one to use and stops you before you accidentally spend $3 on a hero image.

Smart model routing

Photorealism, vector art, character consistency, cinematic video — each use case maps to the model that actually wins at it. No more guessing.

Cost gating

Under $0.10 runs silently. $0.10–$1 warns. Over $1 needs an explicit --force. No surprise bills.

Six providers

OpenAI · Gemini · FAL.ai · KIE.ai · HeyGen · ElevenLabs. Bring one key or all six — Da Vinci uses what you have.

Reference-driven

Pass images or URLs as --refs for character consistency, style transfer, or editing. Nano-Banana handles the tricky ones.

Audit trail

Every generation writes to manifest.json: prompt, model, cost, refs, output path. Query total spend in one line.

Flexible secrets

Infisical for teams, .env for solo, env vars for CI. Auto-detected in that order — no config file to hand-tune.

Model matrix

Which model, for what.

A quick reference. Claude uses the full matrix in references/model-matrix.md to pick automatically.

Use case Best model Provider Typical cost
Photorealistic image flux-pro-ultra FAL $0.06
Vector / SVG logo recraft-v3-svg FAL $0.08
Edit with references nano-banana Gemini $0.039
Video · 5s cinematic kling-1.6-pro FAL $0.42
Text inside image ideogram-v3 FAL $0.08
Character consistency nano-banana Gemini $0.039
Video + sync audio confirm required veo-3 Gemini $2.50
Setup

Three ways to load your secrets.

Da Vinci auto-detects the source. Pick the one that matches your workflow.

Local .env file

Recommended for solo use. Da Vinci looks at ~/.config/da-vinci/.env automatically.

# One-time setup — chmod 600 keeps the file readable only by you
mkdir -p ~/.config/da-vinci
cat > ~/.config/da-vinci/.env <<'EOF'
OPENAI_API_KEY=sk-proj-...
GEMINI_API_KEY=AIza...
FAL_API_KEY=xxx:yyy
KIE_API_KEY=...
HEYGEN_API_KEY=...
ELEVENLABS_API_KEY=...
EOF
chmod 600 ~/.config/da-vinci/.env

Infisical Machine Identity

Rotation, audit, multi-machine sync. Zero secrets on disk.

# Add to ~/.zshrc or ~/.bashrc
export INFISICAL_URL="https://your-infisical.com"
export INFISICAL_CLIENT_ID="<client-id>"
export INFISICAL_CLIENT_SECRET="<client-secret>"
export DAVINCI_PROJECT_ID="<project-uuid>"
export DAVINCI_ENV="prod"

# Reload — Da Vinci will detect Infisical and use it
source ~/.zshrc

Direct env vars

Perfect for GitHub Actions, Docker, ephemeral scripts.

# .github/workflows/generate.yml
- name: Generate hero image
  env:
    OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
    FAL_API_KEY:    ${{ secrets.FAL_API_KEY }}
    GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
  run: |
    node ~/.claude/skills/da-vinci/scripts/generate.mjs image \
      --provider fal --model flux-pro-ultra \
      --prompt "clean product hero, studio lighting" \
      --aspect 16:9
How Claude uses it

You describe. Claude routes. Da Vinci renders.

Say the words "Da Vinci" in Claude Code and the whole pipeline runs — analysis, model selection, cost estimate, execution, audit log.

01

You ask

"Da Vinci, make a hero image for AgendaZap — modern, dental, calm blues."

02

Claude analyzes

Reads intent, aspect ratio, need for references, and consults the model matrix.

03

Picks & estimates

Selects flux-pro-ultra, computes cost, checks the gating threshold.

04

Runs the CLI

Executes davinci image with the right flags. Streams progress.

05

Saves + logs

Writes the asset and appends a full entry to manifest.json.