For AI agents: a documentation index is available at /llms.txt. Markdown versions of all documentation pages are available by appending .md to the URL path.
Outcome: index.html + logo.png + hero.png + ambient.mp3 + a
brand.json color/typography brief — enough for a one-page launch site you
can drop on Vercel / Fly / Railway.
Approx cost: ~$0.17 per run.
#!/bin/bash
set -euo pipefail
THEME="${1:-a minimalist coffee shop called Black Crow in Portland}"
# 1. Logo
LOGO=$(visa-cli generate image \
"logo for $THEME, vector style, single color, 1:1" \
--json --yes \
| jq -r '.urls[0] // .filePath')
# 2. Hero image
HERO=$(visa-cli generate image \
"hero photograph of $THEME, golden hour, 16:9" \
--quality high --json --yes \
| jq -r '.urls[0] // .filePath')
# 3. Brand brief (palette + typography) via LLM
echo "Pick a 5-color hex palette and 2 Google Fonts for: $THEME.
Return strict JSON: {\"palette\":[\"#hex\",...],\"headingFont\":\"...\",\"bodyFont\":\"...\"}" \
| visa-cli run-llm --model or-claude-haiku --json --yes - \
| jq -r '.text' > brand.json
# 4. HTML copy
echo "Write a 300-word landing page in semantic HTML for $THEME.
Hero image src is $HERO, logo src is $LOGO.
Embed colors from this brief as CSS vars: $(cat brand.json)" \
| visa-cli run-llm --model or-claude-sonnet --json --yes - \
| jq -r '.text' > index.html
# 5. Ambient audio for embedded autoplay
AMBIENT=$(visa-cli generate music \
"warm acoustic instrumental, $THEME ambience, 60s loop" \
--instrumental --json --yes \
| jq -r '.urls[0] // .filePath')
echo "Site assembled:"
echo " index.html (HTML + inline brand vars)"
echo " logo: $LOGO"
echo " hero: $HERO"
echo " ambient: $AMBIENT"
echo " brand.json"
| Step | Tool | Approx |
|---|---|---|
| Logo | fal-flux-pro |
$0.04 |
| Hero | fal-flux-pro-ultra |
$0.06 |
| Brand brief | or-claude-haiku |
$0.01 |
| Copy | or-claude-sonnet |
$0.04 |
| Ambient | fal-ace-step-music |
$0.02 |
| Total | ~$0.17 |
--system @./prompts/brand-voice.md on the LLM step.