TAVILY_API_KEY optional · enables web searchGet a key →
Encrypted with AES-256 at rest · never sent to the app author · revoke from settings
Apps whose keys are provided by the author (like ig-nano-scout) skip this step. You only see this gate when the app declares x-floom-user-secrets in its manifest.
Composer unlocks after you save credentials
DESKTOP · 1280px · EMPTY · first time on this app · 3 prompt chips
floom.dev/me/a/flyfast
flyfastprivate
Find me a flight.
Ask in plain English. Try one of these:
⏎ to send · ⇧⏎ new linePrivate — only you can run this
DESKTOP · 1280px · STREAMING · token-by-token
floom.dev/me/a/flyfast
flyfastprivate
F
Lisbon to Tokyo in June under €500
flyfast · streaming · 1.2s
Searching 380 routes from LIS to HND/NRT/KIX in June 2026, max 1 stop, under €500…
Left rail on every state — you never lose access to your other apps/threads while running one.
Credentials-required state (new). Triggers on first run when the app declares x-floom-user-secrets. Composer disabled until saved. Apps with author-provided secrets (like ig-nano-scout) skip this entirely.
Active thread highlighted in rail — running, streaming, or just completed.
App status dots in rail — live (green pulsing) during a run, danger (red) on failures, idle (dim).
All existing states kept: empty / streaming / async / error / completed. Error is inline, never a modal.