# Fluos — full index Fluos is an AI motion agent for everyone building with motion graphics. Describe your video in chat — the agent plans, builds, and previews the motion in real time, then exports MP4 or GIF. No After Effects required for most cuts. # Fluos > Fluos is an AI motion agent for everyone building with motion graphics. Describe your video in chat — the agent plans, builds, and previews the motion in real time, then exports MP4 or GIF. No After Effects required for most cuts. ## Product - [Home](https://www.fluos.io/): Describe your video in chat. Your agent plans it, builds it in front of you, and exports a polished MP4 — no After Effects required. - [Pricing](https://www.fluos.io/pricing): Simple pricing for your AI motion agent. Free plan with one full build; Pro pay-what-you-want with credits. - [Enterprise](https://www.fluos.io/enterprise): Enterprise AI motion agent for teams building motion graphics, with brand systems and dedicated support. - [About](https://www.fluos.io/about): Fluos is an AI motion agent built so anyone can ship professional motion graphics without After Effects. - [Fluos developer resources](https://www.fluos.io/developers): Fluos OpenAPI specification, authentication, inbound webhooks, and llms.txt for agents. - [Blog](https://www.fluos.io/blog): Guides and updates on building motion graphics with an AI agent. ## Who it's for - [Marketing & growth](https://www.fluos.io/for/marketing): Create on-brand social ads, promos, and brand stings with an AI motion agent. Brief to finished MP4 in one sitting — no After Effects queue. - [Founders & startups](https://www.fluos.io/for/founders): Ship launch films and investor-ready demos with agency polish. Fluos is the AI motion agent for founders who need cinematic motion without an agency invoice. - [Product & design](https://www.fluos.io/for/product): Turn screenshots and changelogs into crisp feature walkthroughs the day you ship. Captions, zooms, and UI motion — no After Effects. - [Sales & fundraising](https://www.fluos.io/for/sales): Create 30-second problem–solution stories in your brand colors for cold outreach and fundraising. Warm up deals slides cannot open. - [Educators & creators](https://www.fluos.io/for/educators): Turn scripts into course intros, animated diagrams, and explainers. Friendly motion that keeps watch time up — no After Effects. ## Use cases - [Social ad motion graphics](https://www.fluos.io/use-cases/social-ads): Create scroll-stopping social ad motion graphics with AI. Vertical, square, and landscape cuts from one brief. - [Product launch videos](https://www.fluos.io/use-cases/product-launch-videos): Ship cinematic product launch motion videos the same day. Hero loops and launch films from a prompt. - [Brand motion kits](https://www.fluos.io/use-cases/brand-motion-kits): Build a reusable brand motion kit — animated logos, lower-thirds, and transitions tuned to your brand. - [Explainer motion videos](https://www.fluos.io/use-cases/explainers): Turn a script into a clear explainer motion video with AI. Onboarding clips and tutorial intros without AE. ## Alternatives - [Motion video without After Effects for marketers](https://www.fluos.io/alternatives/after-effects-for-marketers): Create marketing motion videos without After Effects. Prompt, preview in the browser, and export MP4 in minutes with Fluos. - [Motion video without a design agency](https://www.fluos.io/alternatives/motion-design-agency): Skip the motion design agency queue. Create and iterate marketing motion video in-house with AI and live preview. ## Blog - [Jitter vs Cavalry vs Fluos: three ways to make motion](https://www.fluos.io/blog/jitter-vs-cavalry-vs-fluos): Jitter is a browser timeline, Cavalry is now free after the Canva acquisition, and Fluos builds from a prompt. An honest three-way on which fits your work. - [The easiest After Effects alternative for non-designers](https://www.fluos.io/blog/easiest-after-effects-alternative): After Effects is a profession. Canva and CapCut are still design tools. Here's the easiest path if you just need to ship the video — no timeline, no keyframes. - [Fluos vs After Effects: when you don't need a timeline](https://www.fluos.io/blog/fluos-vs-after-effects): After Effects is a timeline. Fluos is a chat. Same 15-second video, 4–8 hours vs ~10 minutes — and when each one actually wins. - [Best AI After Effects alternatives in 2026 (honest, sorted by what you're making)](https://www.fluos.io/blog/best-ai-after-effects-alternatives): There's no single After Effects replacement. Here's an honest, use-case-by-use-case guide to the best AI and non-AI alternatives in 2026 — from prompt-to-motion to Cavalry. - [The honest Higgsfield alternative: Fluos vs Vibe Motion](https://www.fluos.io/blog/higgsfield-alternative): Higgsfield Vibe Motion and Fluos both turn a prompt into on-brand animated video. Here's the honest difference: focus, credits, and which fits your work. - [The best Jitter alternatives for on-brand marketing motion (2026)](https://www.fluos.io/blog/jitter-alternative): Jitter is a genuinely good browser timeline tool. If you're leaving it for more control or for finished on-brand marketing video without keyframing, here's the honest sort of alternatives in 2026. - [The best CapCut alternatives for brand and marketing motion (2026)](https://www.fluos.io/blog/capcut-alternative): CapCut is fast and free for social edits, but branded work looks like everyone else's. Here's the honest sort of CapCut alternatives for on-brand marketing motion in 2026. - [Fluos runs on ChatGPT, and that's the whole point](https://www.fluos.io/blog/what-ai-model-does-fluos-use): Fluos runs on the same frontier models behind ChatGPT. Here's why that matters, what we build on top, and why every model jump makes your videos better for free. - [GPT-5.6 can make a motion video from one prompt, and it's really good](https://www.fluos.io/blog/gpt-5-6-motion-video-one-prompt): gpt-5.6 can build a motion graphics video from a single prompt. it thinks for hours, costs real money, and the output is genuinely good. here's what's actually happening and what it means. - [How to make professional videos without hiring a motion designer](https://www.fluos.io/blog/videos-without-a-motion-designer): You don't need to hire a motion designer to ship professional marketing videos in 2026. Here's the workflow, what it costs, what you can make, and when a designer is still worth it. - [Chat-to-video tools in 2026: who actually does it](https://www.fluos.io/blog/best-chat-to-video-tools): "Chat-to-video" is everywhere in 2026, but most tools mean different things by it — cinematic footage, avatars, or templates. Here's the honest sort of who actually does it, and who just borrowed the name. - [Figma Motion is great — but it still can't do video or audio](https://www.fluos.io/blog/figma-motion-marketing-video): Figma Motion adds a real animation timeline to Figma — a genuine upgrade for UI and design-system motion. But it can't import video and has no audio. Here's where it fits, and where prompt-to-video wins for marketing. - [Prompt to video: make a marketing video just by describing it](https://www.fluos.io/blog/prompt-to-video): Prompt-to-video (chat-to-video) turns a text description into a finished animated marketing video. Here's how it works, what to write, and what you can make. - [How to make motion graphics without after effects (2026)](https://www.fluos.io/blog/motion-graphics-without-after-effects): You don't need After Effects to make motion graphics in 2026. Here's how AI and browser tools turn a prompt into a finished animated video, what it costs, and when AE still wins. - [The best AI tools for motion graphics in 2026](https://www.fluos.io/blog/best-ai-tools-for-motion-graphics-2026): An honest, category-by-category roundup of the best AI motion graphics tools in 2026 — from prompt-to-motion to After Effects. Pick by the job, not the hype. - [We launched Fluos: from prompt to motion video in minutes](https://www.fluos.io/blog/launching-fluos): Today we are launching Fluos. Here is why we built it, what ships on day one, and what comes next. - [Motion graphics for startups without a motion designer](https://www.fluos.io/blog/motion-graphics-for-startups): How lean marketing teams ship launch and ad motion without hiring a motion designer or learning After Effects. - [How much does a motion promo video cost? Freelancer vs AI](https://www.fluos.io/blog/motion-promo-video-cost): A practical breakdown of motion promo video costs — agency, freelancer, in-house AE, and AI-assisted workflows. - [After Effects vs prompt-to-video for marketing teams](https://www.fluos.io/blog/after-effects-vs-prompt-to-video): When marketers should use After Effects, when prompt-to-video is faster, and how to split the workflow. - [How to create a product launch video in under an hour](https://www.fluos.io/blog/product-launch-video-in-an-hour): A step-by-step launch video workflow for marketers: brief, preview, iterate, and export MP4 the same day. - [AI social ad motion: what to prompt for scroll-stopping creative](https://www.fluos.io/blog/ai-social-ad-motion-prompts): Prompt patterns for Meta and LinkedIn ad motion — hooks, proof, CTA, and aspect ratios from one brief. ## Documentation - [Account Settings](https://www.fluos.io/docs/account-settings): Notifications, data preferences, and where the rest of your settings live. - [Fluos API reference](https://www.fluos.io/docs/api): Public Fluos HTTP API — discovery files, documentation, search, and inbound webhooks — described by /openapi.json. - [Narration, Music, and Sound](https://www.fluos.io/docs/audio): Add a voiceover, a music bed, sound effects, and synced captions. - [Fluos API authentication](https://www.fluos.io/docs/authentication): How Fluos authenticates dashboard sessions with Clerk and verifies inbound webhook signatures. - [Brand Kit and Logos](https://www.fluos.io/docs/brand-kit): Keep logo, colors, and type consistent across fluos builds. - [Build Mode](https://www.fluos.io/docs/build-mode): What actually happens when fluos builds your video. - [Changelog](https://www.fluos.io/docs/changelog): Features, improvements, and fixes shipped to fluos — newest first. - [The Chat Composer](https://www.fluos.io/docs/chat): Every control in the chat, and how the agent decides what to do with a message. - [Connectors](https://www.fluos.io/docs/connectors): Let fluos read briefs and brand assets straight from your tools. - [Custom Prompts and Snippets](https://www.fluos.io/docs/custom-prompts): Save your standing rules once and stop retyping them. - [Dashboard Tour](https://www.fluos.io/docs/dashboard): Every panel in the fluos dashboard and what it is for. - [Fluos developer resources](https://www.fluos.io/docs/developers): Fluos OpenAPI spec, authentication, webhooks, markdown negotiation, and llms.txt for agents and integrators. - [FAQ](https://www.fluos.io/docs/faq): The questions we get most often. - [Create Your First Video](https://www.fluos.io/docs/first-video): The full loop, from first brief to a downloaded file. - [Getting Started](https://www.fluos.io/docs/getting-started): Create an account, finish onboarding, and reach your first project. - [Glossary](https://www.fluos.io/docs/glossary): The terms you will see across fluos, in plain language. - [Fluos documentation](https://www.fluos.io/docs): Fluos product guides plus Fluos developer resources — OpenAPI, authentication, and webhooks. - [Keyboard Shortcuts](https://www.fluos.io/docs/keyboard-shortcuts): Everything you can do without reaching for the mouse. - [Library](https://www.fluos.io/docs/library): One shared home for your logos, footage, documents, and reusable snippets. - [MAX Mode](https://www.fluos.io/docs/max-mode): Unlock advanced image and video generation for Pro builds. - [Multi-Format Cuts](https://www.fluos.io/docs/multi-format): Recompose one build for YouTube, LinkedIn, Reels, and more. - [Plan Mode](https://www.fluos.io/docs/plan-mode): Agree on the video before fluos builds it. - [Preview and Exports](https://www.fluos.io/docs/preview-and-exports): Play the build, check the numbers, and download the file. - [Plans and Credits](https://www.fluos.io/docs/pricing-credits): What each plan includes, how credits work, and what to do when they run out. - [Projects and Folders](https://www.fluos.io/docs/projects): How work is organized, found, and shared. - [Prompting Guide](https://www.fluos.io/docs/prompting): How to brief the agent so the first build lands close. - [Security and Privacy](https://www.fluos.io/docs/security-privacy): Where your content lives, who can see it, and what you control. - [Skills](https://www.fluos.io/docs/skills): Reusable playbooks the agent loads on demand. - [Troubleshooting](https://www.fluos.io/docs/troubleshooting): The problems people actually hit, and what to do about each one. - [Version History](https://www.fluos.io/docs/version-history): Every successful build is saved, and any of them can be brought back. - [Fluos webhooks](https://www.fluos.io/docs/webhooks): Inbound Clerk, Stripe, and Resend webhooks Fluos verifies and processes. Not a customer-configurable outbound webhook API. - [Workspaces and Collaboration](https://www.fluos.io/docs/workspaces-collaboration): Share a library, a plan, and a set of projects with your team. ## Fluos developer resources - [Fluos developer resources](https://www.fluos.io/developers): Hub for the Fluos OpenAPI spec, authentication, inbound webhooks, llms.txt, and docs search. - [Fluos OpenAPI specification](https://www.fluos.io/openapi.json): Machine-readable OpenAPI 3.1 description of public Fluos HTTP endpoints, with operationIds for function calling. - [Fluos developer documentation](https://www.fluos.io/docs/developers): How agents and integrators should discover Fluos: OpenAPI, markdown negotiation, auth, and webhooks. - [Fluos API reference](https://www.fluos.io/docs/api): Public Fluos HTTP API surface: discovery files, docs, search, and inbound webhooks. - [Fluos API authentication](https://www.fluos.io/docs/authentication): How Fluos authenticates browser sessions (Clerk) and verifies inbound webhook signatures. - [Fluos webhooks](https://www.fluos.io/docs/webhooks): Inbound Clerk, Stripe, and Resend webhook endpoints Fluos verifies and processes. - [Fluos llms.txt](https://www.fluos.io/llms.txt): Curated index of Fluos product, docs, and developer URLs for language models. - [Fluos llms-full.txt](https://www.fluos.io/llms-full.txt): Full-text dump of Fluos documentation for offline agent context. - [Fluos AI policy](https://www.fluos.io/ai.txt): Preferred AI crawler resources and contact for Fluos. ## Facts (for citation) - Fluos is an AI motion agent that creates motion graphics via chat; no After Effects required for most cuts. - Workflow: describe your video → the agent plans and builds the motion → live preview → export MP4. - Typical use cases: product launches, social ads, explainers, and brand motion kits. - Built for anyone shipping motion graphics — marketing, founders, product/design, sales/fundraising, and educators/creators — without a motion designer or freelancer queue. - Audience landing pages: /for/marketing, /for/founders, /for/product, /for/sales, and /for/educators. - Free tier includes one full build; Pro is pay-what-you-want with credits scaled to monthly spend. ## Optional - Full text dump: https://www.fluos.io/llms-full.txt - AI policy: https://www.fluos.io/ai.txt - OpenAPI: https://www.fluos.io/openapi.json - Fluos developer resources: https://www.fluos.io/developers - RSS: https://www.fluos.io/feed.xml # Documentation (processed) ## Account Settings Open the account menu at the bottom of the sidebar and choose **Account settings**. Build notifications [#build-notifications] Turn this on to get a browser push notification when a build finishes, so you can leave the tab and come back when it is ready. Your browser asks for permission the first time. If you decline, the toggle stays off and the panel tells you why — you will need to re-enable notifications for the site in your browser settings before it can be turned on. Not every browser supports web push; the toggle disables itself with an explanation when yours does not. Help improve fluos [#help-improve-fluos] An opt-in toggle: *"Let us review your prompts and generated videos to make the product better."* It is the same choice offered during onboarding, and you can change it at any time. Your data is never sold or shared publicly — see [Security and Privacy](/docs/security-privacy) for detail. Where the other settings live [#where-the-other-settings-live] Account settings is deliberately small. Most things are scoped elsewhere: | Setting | Where | | ------------------------------ | -------------------------------------------- | | Workspace name, members, roles | Workspace switcher → **Workspace settings** | | Plan, credits, invoices | Workspace switcher → **Billing & credits** | | Skills and connected tools | Sidebar → **Skills and Connectors** | | Snippets and assets | Sidebar → **Library** | | Email preferences | The unsubscribe link in any onboarding email | Feedback [#feedback] **Product feedback** in the same account menu opens a form that goes straight to the team. It is the fastest route for a bug report or a feature request. Related [#related] ## Fluos API reference The canonical machine-readable Fluos API description is **[https://www.fluos.io/openapi.json](https://www.fluos.io/openapi.json)**. Every operation has a unique `operationId`, a description, typed parameters, and response schemas so agents can register function-calling tools from the spec. Base URL [#base-url] `https://www.fluos.io` Discovery [#discovery] | operationId | Method | Path | Purpose | | --------------------- | ------ | ---------------- | ------------------- | | `getFluosOpenApiSpec` | GET | `/openapi.json` | This specification | | `getFluosLlmsTxt` | GET | `/llms.txt` | Curated URL index | | `getFluosLlmsFullTxt` | GET | `/llms-full.txt` | Full-text docs dump | | `getFluosAiTxt` | GET | `/ai.txt` | AI crawler policy | | `getFluosSitemap` | GET | `/sitemap.xml` | All public URLs | | `getFluosRobotsTxt` | GET | `/robots.txt` | Crawler rules | | `getFluosRssFeed` | GET | `/feed.xml` | Blog RSS | These endpoints are public and cacheable. No authentication. Content (Accept negotiation) [#content-accept-negotiation] | operationId | Method | Path | | -------------------- | ------ | -------------- | | `getFluosHome` | GET | `/` | | `getFluosDevelopers` | GET | `/developers` | | `getFluosDocsIndex` | GET | `/docs` | | `getFluosDocPage` | GET | `/docs/{slug}` | | `getFluosAbout` | GET | `/about` | | `getFluosPricing` | GET | `/pricing` | | `getFluosBlogPost` | GET | `/blog/{slug}` | Send `Accept: text/markdown` for Markdown. Missing `Accept` returns HTML. Incompatible `Accept` values return `406`. Search [#search] | operationId | Method | Path | Parameters | | ----------------- | ------ | ------------- | ------------------ | | `searchFluosDocs` | GET | `/api/search` | `q` (query string) | Public. Returns fumadocs/Orama hits over this documentation set. Inbound webhooks [#inbound-webhooks] These accept provider-signed POSTs only. See [Fluos webhooks](/docs/webhooks). | operationId | Method | Path | | ---------------------- | ------ | ---------------------- | | `receiveClerkWebhook` | POST | `/api/webhooks/clerk` | | `receiveStripeWebhook` | POST | `/api/stripe/webhook` | | `receiveResendWebhook` | POST | `/api/webhooks/resend` | Errors [#errors] | Status | When | | ------ | ------------------------------------------------------------------------------------------------------- | | `404` | Unknown path. Markdown body lists `/sitemap.xml`, `/llms.txt`, `/docs`, `/developers`, `/openapi.json`. | | `406` | `Accept` rejected HTML and Markdown. | | `401` | Authenticated product API without a Clerk session. JSON `{ "error", "code": "unauthorized" }`. | Function calling [#function-calling] Import `/openapi.json` and register each `operationId` as a tool. Prefer discovery + `searchFluosDocs` + Markdown `getFluosDocPage` before answering product questions. Do not call webhook operations from an agent — they require provider secrets. ## Narration, Music, and Sound fluos generates audio as part of the build. You do not upload a voiceover or license a track — you describe what the video needs and it is produced in place. The three kinds of audio [#the-three-kinds-of-audio] | Kind | Ask for it like this | | ----------------- | ------------------------------------------------ | | **Narration** | "Add a calm voiceover explaining each step" | | **Music** | "Put a subtle, upbeat instrumental bed under it" | | **Sound effects** | "Add a soft whoosh on each scene transition" | Music is generated instrumental-only, so it never fights with narration. Narration changes how the video is cut [#narration-changes-how-the-video-is-cut] This is worth understanding before you ask for a voiceover. When a video is narrated, the narration becomes the master clock — scenes are timed to the script rather than to a fixed beat grid. One idea per scene, headlines stay short, and visuals have to keep moving while the narration continues. That is also why narrated explainers are held to a stricter motion standard. A scene that fades in and then sits still for eight seconds of voiceover is the exact failure fluos is designed to catch, so it will rework it rather than ship it. If you want narration layered over a fast promo cut instead, say so — "keep the beat-driven pacing, just add a voiceover on top" — and fluos treats it as a promo rather than an explainer. Writing the script [#writing-the-script] You have two options: * **Give fluos the script.** Paste it in and ask it to narrate exactly that. Best when the copy is approved. * **Let fluos write it.** Describe the message and audience. Best when you are still exploring. ```txt Narrate this with the following script, word for word: "Billing used to take an afternoon. Now it takes a minute…" ``` Voice [#voice] fluos uses a default voice unless you steer it. Ask in chat for a different feel — "a warmer, lower voice", "something more energetic" — and it will adjust. There is no voice picker in the UI. Captions [#captions] Ask for captions and fluos transcribes the generated narration at word level, so captions land in sync rather than being timed by hand. ```txt Add captions synced to the voiceover. Bold, centered, one line at a time. ``` Audio in exports [#audio-in-exports] Audio is included in **MP4** exports. **GIF** has no audio track at all — if your video relies on narration, export MP4. Audio generation happens during the build. If it fails, fluos strips the broken reference rather than shipping a file that will not play, and the beat stays silent. Ask for the narration again in a follow-up — it usually succeeds on a retry. Related [#related] ## Fluos API authentication Fluos has two auth stories: **browser sessions** for the product, and **provider signatures** for inbound webhooks. Product sessions (Clerk) [#product-sessions-clerk] Sign-in is handled by [Clerk](https://clerk.com/). Fluos never stores a password. Users sign in with Google, Apple, or a one-time email code. See [Getting Started](/docs/getting-started). Authenticated product routes (`/dashboard`, `/admin`, and most `/api/*` handlers) expect a Clerk session cookie. Unauthenticated API calls receive: ```json { "error": "Unauthorized", "code": "unauthorized" } ``` There is no public API key, OAuth app, or personal access token for third-party apps today. If you need programmatic video generation, that is an enterprise conversation — [contact Fluos sales](/contact-sales). Public endpoints [#public-endpoints] These do **not** require a session: * `/openapi.json`, `/llms.txt`, `/llms-full.txt`, `/ai.txt` * `/sitemap.xml`, `/robots.txt`, `/feed.xml` * `/docs`, `/developers`, marketing pages * `GET /api/search` * Markdown negotiation on public pages (`Accept: text/markdown`) Webhook signatures [#webhook-signatures] Inbound webhooks are authenticated by the provider, not by Clerk: | Endpoint | Header | Secret | | --------------------------- | --------------------------------------------- | ------------------------------ | | `POST /api/webhooks/clerk` | `svix-id`, `svix-timestamp`, `svix-signature` | `CLERK_WEBHOOK_SIGNING_SECRET` | | `POST /api/stripe/webhook` | `stripe-signature` | `STRIPE_WEBHOOK_SECRET` | | `POST /api/webhooks/resend` | `svix-id`, `svix-timestamp`, `svix-signature` | `RESEND_WEBHOOK_SECRET` | Invalid signatures return `400`. These endpoints are not a general write API — only the matching provider can produce a valid signature. Details: [Fluos webhooks](/docs/webhooks). Workspace connectors [#workspace-connectors] Figma, Notion, Google Drive, Slack, and Linear connections use Composio-managed OAuth from **Skills → Connectors** inside a Fluos workspace. Tokens stay with Composio. That flow is user-initiated in the product, not a Fluos-hosted MCP server. ## Brand Kit and Logos Brand in fluos [#brand-in-fluos] There is no Brand Kit settings screen in fluos. Your brand is locked by two things: the assets you keep in the [Library](/docs/library), and a [snippet](/docs/custom-prompts) holding your rules — which is applied to every message in the workspace automatically. A practical brand kit for a project is: 1. **Logo** — prefer SVG 2. **Colors** — hex or named tokens 3. **Typography** — display + body preferences 4. **Do / don't** — short constraints Upload Your Logo (SVG Preferred) [#upload-your-logo-svg-preferred] Chat and library accept **SVG** (`image/svg+xml`) alongside PNG, JPG, GIF, and WEBP (images up to 10 MB). When you attach an SVG logo, fluos treats it as vector markup the agent can **inline** into the composition. That unlocks path-level motion (stroke draw, fill reveal, morph, staggered shapes). A PNG/JPG logo still works, but animation is limited to transforms, masks, and effects on the flat image. ```txt Use the attached SVG logo for the end card. Animate a stroke-draw reveal, then hold on the mark + URL. Do not redraw or approximate the logo. ``` Raster logos are fine for a clean pop-in or wipe. SVG is better when you want the mark itself to draw, morph, or reveal by shape — the product path our motion agent is built for. Lock Colors and Type [#lock-colors-and-type] Put brand rules in the first message, the plan, or — best — a saved snippet: ```txt Brand: - Logo: attached brand.svg (inline; never recreate) - Colors: #0A0A0A, #F06E2C, #FAFAF9 - Type: bold geometric sans for headlines; clean sans for body - Motion: confident, not playful; no bounce easings - Always end with logo + URL lockup ``` Save that block once in **Library → Snippets** and every project in the workspace starts on-brand without you retyping it. See [Custom Prompts and Snippets](/docs/custom-prompts). Reference Images vs Embed [#reference-images-vs-embed] For photos, mocks, and mood boards the default is **reference** — recreate the look in HTML/CSS/SVG/GSAP rather than pasting the file on screen. Ask explicitly when you want the uploaded image **embedded** (product hero, screenshot walkthrough, etc.). SVG logos default to **inline** so they can animate. Do not ask the agent to re-draw your mark from scratch. Raster Logos [#raster-logos] If you only have PNG/JPG/WebP: * Upload the highest-resolution transparent mark you have * Ask for wipe, shine, pop-in, or end-card lockup treatments * Prefer switching to SVG later for draw/morph work Checklist [#checklist] * [ ] SVG logo attached (or sharp transparent PNG) * [ ] Hex colors named once * [ ] Type direction stated * [ ] End card / CTA rules stated * [ ] Saved as a workspace snippet so it applies everywhere Related [#related] ## Build Mode Build mode applies changes to your composition. It is the default, and it is where every video is actually made. What happens after you hit send [#what-happens-after-you-hit-send] 1. **A sandbox starts.** Every project gets an isolated environment where the composition is written and run. On a cold project this is the "Booting" state in the preview. 2. **The agent works.** It reads the relevant [skills](/docs/skills), pulls in any attachments or [library](/docs/library) assets, writes the composition, and generates narration, music, or sound effects if the video needs them. 3. **fluos checks its own work.** The build is validated and rendered frame-by-frame to measure whether things actually move. Problems get repaired automatically, up to a handful of passes. 4. **The preview updates.** The status chip flips to **Live** and you can play it. A build is meaningfully slower than a chat reply because all four of those steps are real. Long, narrated, multi-scene videos take the longest. The tools the agent uses [#the-tools-the-agent-uses] You do not call these directly — you ask for an outcome and fluos picks the tool. Knowing they exist helps you ask for the right thing. | Capability | What to ask for | Limits per build | | ------------------------------- | --------------------------------------------------------- | ---------------------- | | Narration, music, sound effects | "Add a calm voiceover", "put a subtle music bed under it" | — | | Word-level captions | "Add captions synced to the voiceover" | — | | Review your uploaded footage | "Which parts of this clip are usable?" | 10 reviews | | Cut a segment from your footage | "Use the 0:12–0:18 part of that clip" | 8 cuts, 60s max each | | Browse the workspace library | "Use our logo from the library" | Up to 80 assets listed | | Read a spreadsheet | "Chart the revenue column" | — | | Web research | "Match the style of stripe.com" | — | | AI video clips *(MAX, Pro)* | "Generate a b-roll shot of a city at dusk" | 2 clips, 5s max each | | AI images *(MAX, Pro)* | "Generate an abstract gradient background" | 6 images | The per-build caps exist so one slow generation cannot starve the rest of the build. If you need more, split the work across follow-ups. Quality gates [#quality-gates] fluos measures its own motion rather than trusting the model's opinion of it. Frames are sampled and compared, so a scene that "fades in and freezes" is detected as static even if the code looks animated. For narrated multi-scene explainers, that check can block a build: if scenes are still frozen after the automatic repair passes, fluos declines to publish that version and tells you so, rather than handing you a slideshow with a voiceover over it. Ask it to retry and it reworks the flagged scenes. Softer findings — pacing notes, judgment calls — show as a dismissible **Motion quality notes** banner and never block. A validated build is never thrown away over an opinion. Free plan builds [#free-plan-builds] On the free plan you get **one build per day**, reset at midnight UTC. Questions, brainstorming, and Plan mode do not count — only messages that actually commission video work. The composer shows how many you have left. When you are out, you get a clear message and the option to upgrade. See [Plans and Credits](/docs/pricing-credits). If a build takes too long [#if-a-build-takes-too-long] Builds have a time budget. If a composition is too heavy to finish inside it, the run stops with an explanation rather than hanging forever. The usual causes are long embedded video and very high frame counts — shorten the footage segment or reduce the scope and try again. Related [#related] ## Changelog ## The Chat Composer Chat is the whole interface. This page is a reference for what each control does. Composer controls [#composer-controls] | Control | Purpose | | ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | | **Build / Plan** | The mode toggle. Build applies changes to your video; Plan is read-only and outlines them first. Toggle with Shift+Tab. | | **Thinking effort** | How much reasoning the agent spends per turn: Low, Medium, High, Max. Defaults to Medium. | | **Max** | Pro toggle for AI image and video generation. See [MAX Mode](/docs/max-mode). | | **Add content** | Attach files, insert a saved snippet, or pull something from the library. | | **Microphone** | Dictate a message. Recordings cap at two minutes and are transcribed into the composer, where you can edit before sending. | | **`/`** | Opens the **Skills** picker and inserts an `@skill-name` mention. | | **Send / Stop** | Sends, or interrupts a running build. | Drag files anywhere over the chat and you get a drop target for images, videos, and PDFs. What the placeholder is telling you [#what-the-placeholder-is-telling-you] The composer placeholder changes with context, which is a useful signal: * *"Describe the video you want to create…"* — a fresh project, nothing built yet. * *"Ask fluos to update the video scenes…"* — Build mode with an existing video. * *"Describe the video you want to plan…"* — Plan mode. * *"Queue a follow-up, or steer this build…"* — a build is running. Anything you send now is queued and applied after, or used to steer the build in progress. Which messages start a build [#which-messages-start-a-build] Not every message triggers a build. Before running anything, fluos classifies what you asked for. **These start a build:** * Direct requests to create or change the video — "make a 15-second teaser", "slow scene 2" * Approving a plan — "implement it", "build it" * Retrying — "try again" **These get a conversational answer instead, and cost no build:** * Questions about capabilities — "can you do 9:16?", "what formats can I export?" * Brainstorming and creative discussion * Explicit "don't build yet" or "just plan this" * Research requests and questions about your footage * Asking fluos to write a skill for you This matters most on the free plan, where builds are limited. Ask as many questions as you like; only real work counts against the quota. Queueing and steering [#queueing-and-steering] If you think of something mid-build, send it anyway. It gets queued and shown as **Queued**, and you can promote it to **Steer** to redirect the run that is currently going rather than waiting for it to finish. Editing and retrying [#editing-and-retrying] Hover any message you sent to get **Edit message**. Editing rewinds the conversation to that point and re-sends — everything after it is discarded, which is exactly what you want when a follow-up sent the build down the wrong path. Press +Enter to submit the edit, or Esc to cancel. If a response fails, a **Retry** button appears on it. Editing an earlier message permanently drops the messages after it. The builds themselves are still safe in [version history](/docs/version-history) — only the conversation is truncated. Multiple chats per project [#multiple-chats-per-project] A project starts with one chat, but you can add more with **New chat** in the sidebar. Chats in the same project share the same composition and preview, so a second chat is a clean way to explore an alternative direction without cluttering the main thread. Related [#related] ## Connectors Connectors give the agent read access to the tools where your source material already lives, so you can point at a Figma frame or a Notion doc instead of exporting and re-uploading it. Open **Skills and Connectors** in the sidebar and switch to the **Connectors** tab. Available connectors [#available-connectors] | Connector | What fluos can use it for | | ---------------- | --------------------------------------------------------------------- | | **Figma** | Read frames, components, and design tokens for brand-accurate layouts | | **Notion** | Pull briefs, scripts, and campaign docs | | **Google Drive** | Read docs, sheets, and files you point it at | | **Slack** | Read the thread where a request was discussed | | **Linear** | Read issues and projects for release and changelog videos | Connecting [#connecting] Press **Connect** on a connector and complete the OAuth flow in the popup. There are no API keys to paste and fluos never sees your password — authorization is handled by the provider and fluos only receives a scoped token. Once connected, a toggle appears. **A connector only affects builds while its toggle is on**, so you can stay connected but keep it out of the agent's context until you need it. Using one [#using-one] Just refer to the source in plain language once the connector is enabled: ```txt Use the "Q3 Launch" brief in Notion as the script for a 30-second explainer. ``` ```txt Match the type scale and colors from our Figma design system file. ``` Scope and privacy [#scope-and-privacy] * Connections are **workspace-scoped**. Connecting Figma in one workspace does not connect it in another. * Connectors are **read-only** — fluos never writes back to your tools. * Disconnecting revokes fluos's access immediately. Connectors depend on server configuration. If the Connect button is unavailable or the popup closes without completing, connectors are not configured on your deployment — everything else in fluos works normally, and you can upload the same material to the [Library](/docs/library) instead. Related [#related] ## Custom Prompts and Snippets Snippets are saved blocks of prompt text — brand rules, tone, motion constraints, anything you would otherwise paste into every brief. Find them in **Library → Snippets**. Two ways they get used [#two-ways-they-get-used] This is the important part, and it is easy to miss: 1. **Automatically.** Your saved snippets are given to the agent as standing guidance on every message in that workspace, and it follows them when they are relevant. You do not have to insert anything. 2. **Manually.** In the composer, **Add content → Text snippets** drops the snippet's text straight into your draft so you can edit it for this specific brief. Because of the first behavior, keep snippets to durable rules. Anything one-off belongs in the message itself. Up to six snippets are applied as standing guidance. Fewer, sharper snippets beat a long list of overlapping ones. Managing snippets [#managing-snippets] In the Snippets tab you can create (**New snippet**), edit, and delete. Each one has a name and a body. What makes a good snippet [#what-makes-a-good-snippet] Good snippets are short, specific, and about constraints rather than content. **Brand lock** ```txt Always use the attached brand SVG inline — never redraw or replace the mark. Palette: #0A0A0A / #F06E2C / #FAFAF9. No other accent colors. Type stays large and high-contrast. ``` **Motion house style** ```txt Sharp ease-outs, no bounce, no elastic easing. No cut shorter than 8 frames. Every scene keeps some ambient motion — nothing freezes. ``` **Tone** ```txt Premium but approachable. Never use exclamation marks. Headlines under six words. Always end on a clear call to action. ``` What not to put in a snippet [#what-not-to-put-in-a-snippet] ```txt Make exactly the same video as project X with all previous context and random changes. ``` This fails for three reasons: it is ambiguous, it is not reusable, and because snippets apply to *every* message, a vague one quietly fights with your live instructions on unrelated projects. Also avoid: * Full scripts or one-off copy — those belong in the brief * Aspect ratio and duration, unless every single video you make uses the same ones * Anything that contradicts another snippet Related [#related] ## Dashboard Tour The dashboard is one screen with a persistent left sidebar. Everything — projects, library, skills, billing — hangs off that sidebar. The sidebar, top to bottom [#the-sidebar-top-to-bottom] | Item | What it does | | ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Workspace switcher** | Named after your active workspace, e.g. *Personal Workspace*. Opens the workspace list plus **Workspace settings**, **Billing & credits**, and **Create workspace**. | | **Home** | The landing view, with a composer you can brief straight from. | | **Search** | Opens the command palette. Also on ⌘K / Ctrl+K. | | **Skills and Connectors** | The dialog for agent [skills](/docs/skills) and OAuth [connectors](/docs/connectors). | | **Library** | Shared [uploads, footage, documents, and snippets](/docs/library). | | **Projects** | Expands into **All projects** (with folders), **Starred**, **Owned by me**, and **Shared with me**. | | **Recents** | Your last few projects, for one-click return. | | **Upgrade plan** | Appears on the free plan only. | | **Account menu** | Bottom-left. Holds **Account settings** and **Product feedback**. | | **Notifications** | The bell next to your avatar. Inbox plus a **What's new** tab. | You can collapse the sidebar to reclaim width. On mobile it becomes a drawer behind the menu button, and chat pages gain a **Show chat** / **Show preview** toggle since both panels cannot share a phone screen. Search [#search] Search is the fastest way to move around. Press ⌘K anywhere in the dashboard. It searches across **workspaces**, **projects**, **library assets**, and **folders**, and it also lists **navigate to** destinations — billing, settings, project views, documentation, and the [changelog](/docs/changelog). Selecting a project shows a preview of its video on the right before you commit to opening it. Inside a project [#inside-a-project] Opening a project swaps the sidebar into project mode, which adds: * **New project** and **New chat** * **Version history** — every successful build, restorable * The **Chats** list for this project The main area splits into the chat thread on the left and the live preview on the right. Notifications [#notifications] The bell has two tabs: * **Inbox** — workspace invites (with inline **Accept** / **Decline**), build and export results, and system messages. **Mark all read** clears the unread dot. * **What's new** — the latest changelog entries, with a link to the full [changelog](/docs/changelog). You can also opt into browser push notifications so you get pinged when a build finishes even if the tab is in the background. Turn it on in [Account settings](/docs/account-settings). Related [#related] ## Fluos developer resources This is the Fluos developer index. Fluos is an AI motion agent — a Clerk-authenticated web product. The public HTTP surface for agents is discovery, documentation, docs search, and inbound webhooks. Creating videos happens in the dashboard, not through a general-purpose generation REST API. Start here [#start-here] | Resource | URL | What it is | | --------------------------- | -------------------------------------------- | ----------------------------------------------------------- | | Fluos developer hub | [/developers](/developers) | Human-readable index of every developer URL | | Fluos OpenAPI specification | [/openapi.json](/openapi.json) | OpenAPI 3.1 with unique `operationId`s for function calling | | Fluos API reference | [/docs/api](/docs/api) | Endpoint list and schemas | | Fluos authentication | [/docs/authentication](/docs/authentication) | Clerk sessions and webhook signatures | | Fluos webhooks | [/docs/webhooks](/docs/webhooks) | Inbound Clerk, Stripe, and Resend endpoints | | llms.txt | [/llms.txt](/llms.txt) | Curated site index for language models | | Docs search | `/api/search?q=` | Public full-text search over these docs | Markdown content negotiation [#markdown-content-negotiation] Public Fluos pages implement [acceptmarkdown.com](https://acceptmarkdown.com/). Send `Accept: text/markdown` to the same URL a browser uses and you receive CommonMark with `Content-Type: text/markdown; charset=utf-8` and `Vary: Accept`. ```bash curl -sI -H "Accept: text/markdown" https://www.fluos.io/docs/developers ``` Docs also have Markdown siblings at `/docs/{slug}.md` and `/docs/{slug}.mdx`. If `Accept` rejects both HTML and Markdown, Fluos returns `406 Not Acceptable`. What is not a public API [#what-is-not-a-public-api] Authenticated product routes (`/api/chat`, `/api/exports`, `/dashboard`) require a Clerk session. They are not published for third-party function calling. Fluos does not currently host a public MCP server — workspace connectors use Composio OAuth from inside the product. Contact [#contact] * Support: [ask@fluos.io](mailto:ask@fluos.io) * Sales: [sales@fluos.ai](mailto:sales@fluos.ai) ## FAQ Getting started [#getting-started] Do I need video editing experience? [#do-i-need-video-editing-experience] No. There is no timeline and no keyframes. You describe what you want and refine it in conversation, the way you would brief a motion designer. Is there a free plan? [#is-there-a-free-plan] Yes — one build per day, no credit card. Planning, questions, and research do not count against it. See [Plans and Credits](/docs/pricing-credits). How long does a build take? [#how-long-does-a-build-take] Longer than a chat reply, because a real composition is written, validated, and quality-checked. Short social cuts are quick; long narrated explainers with embedded footage take the longest. Working with the agent [#working-with-the-agent] Why did it answer instead of building? [#why-did-it-answer-instead-of-building] fluos decides whether a message actually commissions video work. Questions and brainstorming get a conversational reply so they do not consume a build. If you want a build, say so directly. Can I stop a build once it starts? [#can-i-stop-a-build-once-it-starts] Yes — press **Stop**. You can also queue a follow-up while one is running, or promote it to **Steer** to redirect the run in progress. Can I go back to an earlier version? [#can-i-go-back-to-an-earlier-version] Yes. Every successful build is saved and restorable from [Version History](/docs/version-history), and restoring does not delete the version you were on. What is MAX mode? [#what-is-max-mode] A Pro toggle that lets the agent generate original images and video clips during a build. See [MAX Mode](/docs/max-mode). What is the difference between a skill and a snippet? [#what-is-the-difference-between-a-skill-and-a-snippet] A [snippet](/docs/custom-prompts) is a few standing rules applied to every message. A [skill](/docs/skills) is a full playbook for a kind of video, loaded when it is relevant. Assets [#assets] What can I upload? [#what-can-i-upload] Images (PNG, JPG, GIF, WebP, SVG) and PDFs up to 10 MB, spreadsheets up to 50 MB, and video up to 1 GB stored — files up to 5 GB are accepted and compressed on the way in. Can I use my SVG logo? [#can-i-use-my-svg-logo] Yes, and you should. fluos inlines the vector so individual paths can animate. An SVG always beats a flattened PNG. See [Brand Kit and Logos](/docs/brand-kit). Will my uploaded image appear in the video? [#will-my-uploaded-image-appear-in-the-video] Only if you ask for it. By default an attached image is treated as a *reference* for the look, not something to put on screen. Say "show this photo in scene 2" when you want it embedded. Can fluos use footage I already have? [#can-fluos-use-footage-i-already-have] Yes. Upload it and fluos indexes it scene by scene, so you can ask for "the part where she picks up the cup" and it will cut that segment. See [Library](/docs/library). Audio and export [#audio-and-export] Can it add a voiceover? [#can-it-add-a-voiceover] Yes — narration, instrumental music, sound effects, and word-level synced captions are all generated during the build. See [Narration, Music, and Sound](/docs/audio). What formats can I export? [#what-formats-can-i-export] MP4 with audio, or a silent GIF loop, at High / Standard / Draft quality. Aspect ratio and duration belong to the composition and are set in chat, not in the export dialog. Can I make the same video in several aspect ratios? [#can-i-make-the-same-video-in-several-aspect-ratios] Yes. Ask for another ratio and the agent recomposes the existing build rather than starting over. See [Multi-Format Cuts](/docs/multi-format). Teams and billing [#teams-and-billing] Can my team work in one place? [#can-my-team-work-in-one-place] Yes. Invite people to a workspace and give them Owner, Collaborator, or Read access. Everyone shares the same library, snippets, and skills. See [Workspaces and Collaboration](/docs/workspaces-collaboration). Where do I manage billing? [#where-do-i-manage-billing] Workspace switcher → **Billing & credits**. Only workspace owners can change the plan. What happens when credits run out? [#what-happens-when-credits-run-out] New builds pause until the next cycle. Previews, exports of existing versions, and your library keep working. Raising your monthly amount tops you up immediately. Privacy [#privacy] Is my content used for training? [#is-my-content-used-for-training] Only if you opt in. The toggle is in **Account settings** under *Help improve fluos*, and it is off unless you turn it on. See [Security and Privacy](/docs/security-privacy). Related [#related] ## Create Your First Video The core loop [#the-core-loop] 1. Create a project, or open the one onboarding made for you. 2. Send a clear creative brief in the chat. 3. Wait for the build — the preview panel appears as soon as the agent starts. 4. Play the preview and send narrow follow-ups. 5. Export when it looks right. Most first videos take one build and two or three follow-ups. Write a brief that lands [#write-a-brief-that-lands] The agent works best when your first message answers four things: **format**, **duration**, **look**, and **ending**. Everything else it will infer or ask about. ```txt Create a 30-second launch teaser for an electric bike in 16:9. Style: bold kinetic typography, warm orange highlights, fast transitions. Ending: final 3 seconds lock on the logo and URL. ``` If the brief is thin on a first build, fluos may pause and ask a couple of clarifying questions rather than guessing. Answer them and it continues. Switch the composer to **Plan** and talk it through first. Plan mode is read-only — it produces a written plan you approve before anything is built, and it never spends a build. See [Plan Mode](/docs/plan-mode). Attach what you have [#attach-what-you-have] Drag files onto the chat, or use **Add content** in the composer. | Type | Formats | Size limit | | ------------ | ---------------------------- | -------------------------------------------------------------- | | Images | PNG, JPG, GIF, WebP, **SVG** | 10 MB | | Documents | PDF | 10 MB | | Spreadsheets | CSV, XLS, XLSX, XLSM | 50 MB | | Video | MP4, WebM, QuickTime, M4V | 1 GB stored (up to 5 GB accepted and compressed on the way in) | A few things worth knowing: * **SVG logos are first-class.** fluos inlines the vector markup so individual paths can animate. Always prefer the SVG over a flattened PNG. See [Brand Kit and Logos](/docs/brand-kit). * **Uploads default to *reference*, not *embed*.** A screenshot or mood board tells the agent what to make things *look like*. If you want the actual file on screen, say so: "show this photo full-bleed in scene 2". * **Spreadsheets become charts.** Attach a CSV and ask for an animated bar race or line chart. * **Anything you upload lands in the [Library](/docs/library)** and can be reused in other projects in the same workspace. You can also paste a URL. fluos fetches the page and uses it as context — handy for "make a teaser in the style of this landing page". Watch the build [#watch-the-build] The preview panel opens as soon as the build starts and shows a status chip: * **Booting** — an isolated sandbox is starting up. * **Live** — the composition is running; you can scrub and play it. * **Updating** — a follow-up build is being applied in the background. Behind the scenes the agent writes the composition, generates any narration or music, validates its own output, and repairs motion problems before showing you the result. That is why a build takes longer than a chat reply. Iterate in small steps [#iterate-in-small-steps] Follow-ups work best when each one changes a single thing. ```txt Slow the logo reveal — it should settle by 2s and hold. ``` ```txt Scene 3 text is too small. Bump it and keep it inside the safe margins. ``` ```txt Swap the background to a deep navy gradient, keep everything else. ``` Broad rewrites ("make it better", "redo it") usually cost you a good version. If you do lose one, [version history](/docs/version-history) has every successful build. Asking fluos a question — "what aspect ratios can you do?", "why did scene 2 feel slow?" — gets a conversational answer and does **not** consume a build. Only messages that actually commission video work count. Export [#export] Press **Download**, pick a format and quality, and start the export. MP4 keeps audio; GIF is a silent loop. Full detail in [Preview and Exports](/docs/preview-and-exports). Next steps [#next-steps] ## Getting Started Create an account [#create-an-account] Go to the sign-up page and pick a method. fluos does not use passwords — you sign in with a provider or a one-time email code. | Method | What happens | | ------------------------ | --------------------------------------------- | | **Continue with Google** | Google OAuth, no extra steps | | **Continue with Apple** | Apple OAuth, no extra steps | | **Email** | We email a six-digit code; enter it to finish | For the email route, enter your address and press **Create account**. A code arrives within a few seconds — paste it and press **Verify & continue**. If it does not arrive, use **Resend code**, or **Use a different email** to start over. Sign in with the exact email address the invite was sent to. A mismatched account is the single most common reason invite acceptance fails. See [Workspaces and Collaboration](/docs/workspaces-collaboration). Sign in [#sign-in] The sign-in page offers the same three methods. If you already have an account, entering your email sends a fresh sign-in code. If the address is new, fluos creates the account for you instead of erroring out. Finish onboarding [#finish-onboarding] The first time you open the dashboard, a short setup flow runs. It has five steps and takes under a minute: 1. **Welcome** — a quick introduction. 2. **A few questions** — your role, what you plan to make, how you found fluos, and your video experience. Every question is optional and skippable; the answers only shape the emails and guidance you get, never your build quality. 3. **Feature tour** — chat-to-video, exporting, and collaborating. 4. **Data sharing** — an optional toggle: *"Yes, use my prompts and videos to improve fluos."* You can change this later in **Account settings**. 5. **Ready** — fluos creates your first project in the background. Choose **Start creating** to jump straight into its chat, or **Explore the dashboard** first. A **Personal Workspace** is created automatically the first time you sign in, so you always have somewhere to build. What arrives in your inbox [#what-arrives-in-your-inbox] New accounts get a short onboarding sequence from `no-reply@fluos.io`. You can reply to any of them — replies go to a real inbox. | When | Email | | -------------- | ------------------------------------------------------------------------- | | Immediately | Welcome and first-video prompt | | After 1 hour | A two-minute first-video walkthrough | | After 24 hours | A nudge or a next-steps tip, depending on whether you have built anything | | After 3 days | The feature most people miss | | After 6 days | What other people are making | | After 7 days | A plan suggestion (skipped if you already upgraded) | | After 12 days | A re-engagement note (skipped if you have been active) | You also get one-off emails when your first export finishes and when you run out of credits. Every onboarding email has a one-click unsubscribe link; opting out stops the sequence but keeps account and billing emails coming. Quick checklist [#quick-checklist] * [ ] Account created * [ ] Signed in with the email you intend to use long-term * [ ] Onboarding completed * [ ] Workspace selected in the sidebar * [ ] First project open Next step [#next-step] Continue with [Create Your First Video](/docs/first-video), or take the [Dashboard Tour](/docs/dashboard) first. ## Glossary Build [#build] One run of the agent that produces or changes your video. Builds are what the free plan limits — questions and planning are not builds. Build mode [#build-mode] The default composer mode. Changes are applied to your composition. See [Build Mode](/docs/build-mode). Composition [#composition] The animated document behind your video — the layout, type, motion, and audio that the preview plays and the export renders. Connector [#connector] A read-only OAuth link to an outside tool such as Figma or Notion, so the agent can use material that lives there. See [Connectors](/docs/connectors). Credits [#credits] The unit of AI usage on paid plans. Heavier work — long builds, generated video and images — costs more. See [Plans and Credits](/docs/pricing-credits). Export [#export] A rendered file you can download: MP4 with audio, or a silent GIF. See [Preview and Exports](/docs/preview-and-exports). Extracted clip [#extracted-clip] A segment the agent cut out of one of your videos and saved as its own library asset. Folder [#folder] A grouping of projects inside a workspace. Organizational only — it does not change who can see what. MAX [#max] A Pro toggle that lets the agent generate original video clips and images during a build. See [MAX Mode](/docs/max-mode). Motion quality check [#motion-quality-check] fluos's automatic review of its own output. Frames are sampled and compared to detect scenes that do not actually move, and problems are repaired before you see the result. Plan mode [#plan-mode] A read-only mode that produces a written plan for your approval instead of building. Costs no build. See [Plan Mode](/docs/plan-mode). Preview [#preview] The live player next to your chat. It runs the real composition, not a video file, which is why you can scrub it moments after a build finishes. Project [#project] One video, plus the chats, versions, and exports that belong to it. See [Projects and Folders](/docs/projects). Proxy [#proxy] A lightweight 720p-class copy of an uploaded video that fluos edits against, so large source files do not slow every build down. Reference vs embed [#reference-vs-embed] Whether an attached image tells the agent what to *make things look like* (reference — the default) or is meant to appear on screen (embed). Say which one you want. Scene index [#scene-index] A timestamped breakdown of an uploaded video — what happens in each shot and how usable it is. It is what lets you ask for "the part where…" instead of a timecode. Skill [#skill] A reusable playbook for a kind of video, loaded by the agent on demand or called with `@name`. See [Skills](/docs/skills). Snippet [#snippet] A saved block of prompt text — standing brand or style rules that apply to every message in the workspace. See [Custom Prompts and Snippets](/docs/custom-prompts). Steer [#steer] Redirecting a build that is already running, instead of waiting for it to finish and correcting after. Thinking effort [#thinking-effort] How much reasoning the agent spends on a turn: Low, Medium, High, or Max. Higher settings are slower and cost more. Version [#version] A saved snapshot of a successful build. Restorable at any time from [Version History](/docs/version-history). Workspace [#workspace] The container that owns projects, library assets, snippets, skills, members, and billing. See [Workspaces and Collaboration](/docs/workspaces-collaboration). ## Fluos documentation fluos is an AI motion agent. You describe the video you want in plain language, and fluos writes a real animated composition — layout, typography, motion, and audio — then renders it live in a sandbox preview you can play, refine, and export as MP4 or GIF. There is no timeline to learn and no keyframes to place. You iterate by talking to the agent, the same way you would brief a motion designer. Start with [Getting Started](/docs/getting-started) to set up your account, then follow [Create Your First Video](/docs/first-video) for the full chat-to-export loop. Start here [#start-here] How fluos works [#how-fluos-works] 1. **You brief the agent in chat.** Attach a logo, footage, a screenshot, or a link if you have one. 2. **fluos builds a real composition.** Each build runs in an isolated sandbox where the agent writes and validates the animation, generates any narration or music, and checks its own motion quality. 3. **The preview goes live.** You scrub it, play it, and send follow-ups to change specific beats. 4. **You export.** Download an MP4 with audio or a silent GIF loop. Every successful build is saved to [version history](/docs/version-history), so you can always go back to an earlier cut. Explore by area [#explore-by-area] Fluos developer resources [#fluos-developer-resources] Agents and integrators should start at [Fluos developer resources](/docs/developers). The OpenAPI spec lives at [/openapi.json](/openapi.json). Auth and inbound webhooks are documented at [Fluos API authentication](/docs/authentication) and [Fluos webhooks](/docs/webhooks). Get help [#get-help] If something is not behaving, [Troubleshooting](/docs/troubleshooting) covers the common cases and the [FAQ](/docs/faq) answers the questions we get most often. Unfamiliar term? Check the [Glossary](/docs/glossary). You can also send feedback from inside the app: open the account menu at the bottom of the sidebar and choose **Product feedback**. ## Keyboard Shortcuts Shortcuts are written for macOS. On Windows and Linux, use Ctrl wherever appears. Anywhere in the dashboard [#anywhere-in-the-dashboard] | Shortcut | Action | | ------------------------- | ----------------------------------- | | K | Open search | | Esc | Close the current dialog or overlay | In the chat composer [#in-the-chat-composer] | Shortcut | Action | | ---------------------------------- | ----------------------------- | | Enter | Send | | Shift Enter | New line without sending | | Shift Tab | Switch between Build and Plan | | / | Open the skill picker | | @ | Mention a skill by name | | | Move through the skill picker | | Enter or Tab | Accept the highlighted skill | | Esc | Dismiss the skill picker | Editing a message [#editing-a-message] | Shortcut | Action | | ----------------------------- | --------------- | | Enter | Save and resend | | Esc | Cancel the edit | In the library preview [#in-the-library-preview] | Shortcut | Action | | ------------------------- | --------------------- | | | Previous / next asset | | Esc | Close the preview | K to get anywhere, and ShiftTab to drop into Plan mode when you realize you are not sure what you want yet. Related [#related] ## Library The Library is your workspace's asset store. Everything in it is available to every project in that workspace, and the agent can pull from it during any build. Open it from **Library** in the sidebar. What lives there [#what-lives-there] The Library has three tabs: * **Media** — images and video * **Documents** — PDFs and spreadsheets * **Snippets** — reusable blocks of prompt text, covered in [Custom Prompts and Snippets](/docs/custom-prompts) Assets arrive from three places: direct uploads here, files you attached in a chat, and clips the agent cut out of your footage. Each card is badged accordingly — **Library**, **From chat**, or **Extracted clip**. Uploading [#uploading] Press **Upload**, or drag files anywhere onto the page. | Type | Formats | Size limit | | ------------ | ------------------------- | ----------- | | Images | PNG, JPG, GIF, WebP, SVG | 10 MB | | Documents | PDF | 10 MB | | Spreadsheets | CSV, XLS, XLSX, XLSM | 50 MB | | Video | MP4, WebM, QuickTime, M4V | 1 GB stored | Video files up to 5 GB are accepted — anything above 1 GB is compressed during upload. On supported browsers, large videos are also optimized locally before they leave your machine, which is much faster; you will see **Optimizing** before **Uploading**. If your device cannot do it, fluos falls back to server-side processing with no action needed from you. Assets belong to a workspace, not to you personally. Every member with access sees the same library. If the Library asks you to select a workspace, pick one in the sidebar switcher first. What happens to a video after upload [#what-happens-to-a-video-after-upload] Uploaded video goes through a short pipeline before it is fully usable, and the card shows you where it is: | Status | Meaning | | --------------------- | ----------------------------------------------------------------- | | **Processing video** | Building an edit-friendly 720p-class proxy and a poster frame | | **Analyzing** | An AI pass summarizing the footage — content, pacing, style | | **Indexing scenes** | Building a scene-by-scene index with timestamps and quality notes | | **Indexed** | Fully ready; the agent can reason about individual shots | | **Processing failed** | Something went wrong — press **Retry** | You can use a video before indexing finishes, but the agent is much more useful once it is done. That index is what lets you say *"use the part where she picks up the cup"* instead of hunting for timestamps yourself. Long footage is fine. fluos edits against the proxy, so a 20-minute source file does not slow down every build that touches it. What the agent can do with your assets [#what-the-agent-can-do-with-your-assets] Once media is in the library, you can ask for things like: * *"Which parts of that interview clip are actually usable?"* — a scene-by-scene review with quality notes * *"Cut the 0:12–0:18 section and use it as the opener"* — segment extraction, up to 60 seconds per cut, saved back as its own clip * *"Put our logo in the end card"* — the agent finds it, and inlines the SVG so the paths animate * *"Chart the revenue column from that spreadsheet"* — the data is read directly * *"Add captions to that voiceover"* — word-level transcription Assets used inside a build are copied into the composition, so a later library change does not silently alter an existing video. Finding things [#finding-things] The search box filters on filename, media type, and the AI-generated description — so searching "kitchen" finds a clip you never named, as long as the analysis pass saw a kitchen in it. Media cards also show up to three style tags from analysis, plus a hint about whether an asset is best used **directly** on screen or as a **reference** for the agent to recreate. Previewing and using an asset [#previewing-and-using-an-asset] Click any card to open a full preview — images, video with controls, PDFs, and spreadsheet contents. Use and to move between assets and Esc to close. Each card has three actions: * **Use in chat** — pick a project, and fluos opens its chat with a draft prompt already written for that asset type * **Copy URL** — a direct link to the file * **Delete** Deleting [#deleting] Deleting removes the file, its derivatives (proxy, poster), and its search index. If an asset is attached to a message in a chat, deletion is blocked. That keeps your conversation history from filling with broken references. Remove it from the chat first, or leave it in place. Related [#related] ## MAX Mode What MAX Mode Is [#what-max-mode-is] **MAX** is a Pro toggle in the chat composer. When it is on, the agent can generate original media during a build — not only rearrange HTML, type, and motion from assets you already have. Without MAX, builds still create motion graphics from your brief, uploads, and library. With MAX, the agent can also: * **Generate video clips** — original B-roll, cutaways, backgrounds, or motion derived from an image you uploaded in the chat * **Generate images** — backgrounds, textures, hero stills, illustrations, and logos-from-prompt Generation is capped per build so one slow clip cannot stall everything else: up to **two video clips of five seconds each**, and up to **six images**. Need more than that? Split the work across follow-up messages. Who Can Use It [#who-can-use-it] | Plan | MAX | | ---------------- | ------------------------------------------ | | Free | Locked — upgrade prompt when you click Max | | Pro / Enterprise | Available | Your MAX preference is remembered per chat (browser local storage). How to Turn It On [#how-to-turn-it-on] 1. Open a project chat on a paid plan. 2. Find the **Max** control next to Plan / Build in the composer. 3. Toggle it on (it highlights when active). 4. Hover the control to see the capability list: video generation and image generation. MAX only affects subsequent messages. Turning it off mid-project does not undo clips or images already generated. When to Use MAX [#when-to-use-max] Use MAX when the brief needs footage or stills that you do not already have: ```txt MAX on — make a 20s 16:9 explainer about cold brew. Generate atmospheric B-roll between diagram scenes, and a custom hero still for the open. ``` Skip MAX when you already have logos, product shots, and screen recordings, and you only need motion design, captions, or pacing edits. That keeps credit use lower. Before vs After [#before-vs-after] | | MAX off | MAX on | | ------------------------------------- | ------- | ------------------------------------ | | Motion from HTML / GSAP / your assets | Yes | Yes | | AI-generated stills | No | Yes | | AI-generated video clips | No | Yes | | Typical credit use | Lower | Higher (generation tools cost extra) | Image and video generation tools consume credits on top of the usual chat/build usage. Prefer MAX for scenes that truly need new media; leave it off for brand-locked edits that only need your uploaded SVG and copy. Tips [#tips] * Attach a reference image in the **same chat** when you want generation steered by that look (workspace library assets are not used as image-generation references). * Still describe aspect ratio, duration, and brand constraints — MAX does not replace a clear brief. * Pair with [Brand Kit and Logos](/docs/brand-kit) so generated media stays on-palette with your mark. Next Steps [#next-steps] ## Multi-Format Cuts One Build, Several Platforms [#one-build-several-platforms] fluos compositions are HTML + motion, not a fixed camera crop. After you lock a cut in one aspect ratio, you can ask for another format in the same chat — the agent recomposes layout, type scale, and safe areas for the new frame instead of starting from a blank project. Typical path: 1. Ship a **16:9** master (YouTube, site, decks) 2. Ask for a **9:16** cut (TikTok / Reels / Shorts) 3. Optionally ask for **1:1** (feed / X / LinkedIn square) How to Ask [#how-to-ask] Be explicit about ratio and platform. Keep brand and story locked; only change the frame. ```txt Recompose this for 9:16 Reels. Keep the same story beats, logo, and palette. Rework layout and type for vertical safe areas — don't rebuild from scratch. ``` ```txt Give me a 1:1 cut for LinkedIn feed from this 16:9. Same VO and end card; tighten framing for square. ``` What Changes vs What Stays [#what-changes-vs-what-stays] | Usually preserved | Usually adapted | | ------------------------------ | ------------------------------------------------- | | Story beats / narration intent | Stage size and safe insets | | Brand colors, logo, type voice | Layout, hierarchy, line breaks | | Motion language / pacing feel | Cropping and element placement | | End card message | Duration tweaks if a platform needs a shorter cut | Export each cut separately from preview (MP4 or GIF) once that composition looks right — see [Preview and Exports](/docs/preview-and-exports). Platform Cheatsheet [#platform-cheatsheet] | Platform | Ratio | Notes | | --------------------- | ----------- | ------------------------------------------- | | YouTube, landing page | 16:9 | Default master for longer explainers | | TikTok, Reels, Shorts | 9:16 | Prefer shorter, punchier hooks | | LinkedIn / X feed | 1:1 or 16:9 | Square reads well in feed; 16:9 still works | | Stories | 9:16 | Keep critical type inside safe margins | Plan Mode Helps [#plan-mode-helps] In **Plan**, the agent is steered to lock aspect ratio / target platform and total duration before build. If you know you need multiple formats, say so up front: ```txt We'll need 16:9 and 9:16. Design the master in 16:9 first, then we'll cut vertical after approval. ``` Tips [#tips] * Finish creative direction in one ratio before mass-producing variants. * Reuse [brand rules](/docs/brand-kit) so every cut stays consistent. * For silent loops or thumbnails, export **GIF**; for anything with audio, export **MP4**. * Narrow follow-ups work best: one format request per message when iterating. Related [#related] ## Plan Mode Plan mode is read-only. Nothing is written to your composition and no build is spent. The agent's job is to produce a written plan you either approve or send back for changes. Switch to it with the **Plan** toggle in the composer, or press Shift+Tab. When to use it [#when-to-use-it] Plan mode earns its keep when: * The direction is still open and you want to think out loud. * The video is long or multi-scene and a wrong first build is expensive. * Several people need to agree before anything gets made. * You are on the free plan and want your one daily build to count. If you already know exactly what you want, skip it and brief Build directly. The flow [#the-flow] 1. Answer a few questions [#1-answer-a-few-questions] On a fresh plan, fluos usually opens a short questionnaire instead of guessing — audience, format, tone, duration, must-have beats. It steps through one question at a time, most with preset choices plus a **Something else?** field if none fit. Everything is optional, but the more you answer the tighter the plan. Press **Generate plan** on the review step when you are done. 2. Read the plan [#2-read-the-plan] fluos writes a structured plan: the concept, the scene-by-scene breakdown, pacing, and what it intends for typography, color, and motion. It appears as a card in the thread marked **Plan ready**. 3. Approve or revise [#3-approve-or-revise] The plan card gives you two actions: * **Implement** — switches the composer to Build and starts the build from the approved plan. * **Request changes** — opens a feedback box (*"What should change in this plan?"*). Send your notes and fluos revises the plan, still without building. You can revise as many times as you want. Revisions do not consume builds. Aspect ratio and duration are the two decisions that are most expensive to change later, because they change layout and pacing everywhere. Nail them in the plan. If you know you need several formats, say so up front — see [Multi-Format Cuts](/docs/multi-format). Questions in Plan mode [#questions-in-plan-mode] Plan mode is also just a good place to ask things. "What would you do differently for LinkedIn?" or "Is 45 seconds too long for this?" get a straight answer with no plan document produced and no build consumed. Related [#related] ## Preview and Exports The preview panel sits beside the chat and runs your actual composition — not a rendered video file. That is why it appears within seconds of a build finishing and why scrubbing is instant. Preview states [#preview-states] The status chip tells you what is happening: | State | Meaning | | ------------ | ------------------------------------------------------------------------------------------------- | | **Booting** | An isolated sandbox is starting up. Normal on a cold project. | | **Live** | The composition is running. Play, scrub, and iterate. | | **Updating** | A follow-up build is being applied. The current version keeps playing until the new one is ready. | Booting takes longest the first time you open a project in a while. If it stalls, see [Troubleshooting](/docs/troubleshooting). Composition stats [#composition-stats] While the preview is live, the header shows three numbers pulled from the composition itself: | Stat | What it means | | -------------- | -------------------------------------------------------------- | | **Duration** | Total length | | **FPS** | Frame rate, usually 30 | | **Resolution** | Output size, labeled 720p / 1080p / 1440p / 4K when it matches | These are worth a glance before every export. They are the fastest way to catch a build that quietly drifted to a different length or aspect ratio than you asked for. Duration, frame rate, and aspect ratio belong to the composition, so you change them in chat — *"make it 20 seconds"*, *"switch to 9:16"* — not in the export dialog. The dialog only chooses format, quality, and file name. Aspect ratios [#aspect-ratios] State the target platform or the ratio in your brief: | Ratio | Typical use | | -------- | ------------------------------------- | | **16:9** | YouTube, landing pages, presentations | | **9:16** | TikTok, Reels, Shorts, Stories | | **1:1** | Feed posts, logo stings, square ads | To ship one idea in several ratios, see [Multi-Format Cuts](/docs/multi-format). Motion quality notes [#motion-quality-notes] A **Motion quality notes** banner sometimes appears above the preview. These are advisory observations — pacing, a scene that could move more — and they never block a build. Read them, act on the ones you agree with, and dismiss the banner. Hard failures are handled differently: fluos repairs them automatically, and for narrated explainers it will refuse to publish a version whose scenes are measurably frozen rather than hand you a slideshow. See [Build Mode](/docs/build-mode). Exporting [#exporting] Press **Download** to open the export dialog. Format [#format] | Format | Best for | Notes | | ------- | ------------------------------------ | ---------------------------------------------- | | **MP4** | Anything final — ads, social, embeds | Includes narration, music, and sound effects | | **GIF** | Short silent loops, email and chat | No audio, and often a larger file than the MP4 | Quality [#quality] | Quality | Tradeoff | | ------------ | ---------------------------------------------------------------------- | | **High** | Best result, slowest render — the default | | **Standard** | Balanced | | **Draft** | Fastest — good for checking timing before committing to a final render | You can also set the download file name here. While it renders [#while-it-renders] Rendering happens on a server, not in your browser, and shows live progress. Compositions with embedded video take longest. For anything over about 30 seconds, export a **Draft** to sanity-check pacing and the end card, then re-export at **High**. It is much faster than discovering a timing problem after a full-quality render. After the export [#after-the-export] Exports are saved to the project and downloaded through your browser. Access follows project permissions, so a download link is not usable by someone outside the workspace. If an export fails, the message explains why. The most common cause is a composition that is too heavy to render inside the time budget — long embedded footage is usually the culprit. Shorten the segment or reduce scope and try again. Related [#related] ## Plans and Credits Plans at a glance [#plans-at-a-glance] | | Free | Pro | Enterprise | | -------------------------- | ----------------- | ------------------------------- | ---------------- | | Price | $0 | $10–$1,000 / month, your choice | Custom | | Builds | 1 per day | Unlimited | Unlimited | | Workspaces | 1 personal | Unlimited | Unlimited | | Collaborators | View-only sharing | Full edit access | Full edit access | | [MAX mode](/docs/max-mode) | — | Included | Included | Free [#free] You get **one build per day**, reset at midnight UTC, with no credit card. What does *not* count against it matters as much as what does. Questions, brainstorming, research, asking fluos to write a skill, and unlimited [Plan mode](/docs/plan-mode) iterations are all free. Only messages that actually commission video work consume a build. That makes the free plan much more usable than the number suggests: spend as long as you like planning, then spend your one build on something you have already agreed on. The composer shows how many builds you have left. Pro — pay what you want [#pro--pay-what-you-want] Pro is billed monthly at an amount you pick between **$10 and $1,000**, and you get **75 credits per dollar** at the start of each billing cycle. | Monthly amount | Credits granted | | -------------- | --------------- | | $10 | 750 | | $20 | 1,500 | | $100 | 7,500 | | $1,000 | 75,000 | Pro includes unlimited builds, unlimited workspaces, edit access for teammates, and MAX mode. Credits **do not roll over** — each cycle starts fresh. You can change your amount or cancel at any time; changes take effect at the start of the next cycle. Enterprise [#enterprise] Custom volume pricing, team-wide permissions, dedicated support, and SLA options. [Contact sales](/contact-sales) to talk it through. How credits are consumed [#how-credits-are-consumed] Credits track the AI work behind your builds. A typical build costs a few hundred to a few thousand, depending on how much the agent has to do. The heaviest items are: * **Long, multi-scene videos** — more scenes, more work * **Generated video and images** under [MAX mode](/docs/max-mode) * **High or Max thinking effort** in the composer * **Analyzing long uploaded footage** The lightest are follow-up edits: a narrow "slow the logo reveal" costs a fraction of the original build. This is the practical argument for iterating in small steps rather than asking for full rewrites. Credits measure combined input and output tokens across a build. Stretching your credits [#stretching-your-credits] * Iterate narrowly. One change per message. * Leave **MAX** off unless the video genuinely needs new generated media. * Keep thinking effort at **Medium** for routine edits; save High and Max for hard creative problems. * Use [Plan mode](/docs/plan-mode) to settle direction before spending a build on it. * Put standing brand rules in a [snippet](/docs/custom-prompts) so you are not re-explaining them every time. When credits run out [#when-credits-run-out] New builds cannot start until the next cycle refreshes them. You can raise your monthly amount at any time to get more credits immediately. Everything else — previews, exports of existing versions, the library — keeps working. You also receive an email when your credits are exhausted, so it does not catch you mid-project. Managing your plan [#managing-your-plan] Workspace switcher → **Billing & credits**. Owners can upgrade, change the monthly amount, and cancel. Other members can see the status but not change it. Referrals [#referrals] Referring someone grants bonus credits, which are held separately from your monthly grant. Related [#related] ## Projects and Folders A project is one video and the conversation that made it. It holds its chats, its live preview, its version history, and its exports. Creating a project [#creating-a-project] * **New project** in the sidebar, or * Brief straight from the composer on the Home screen — fluos creates the project for you and names it from your first message Projects are created inside your **active workspace**, so check the switcher at the top of the sidebar before you start if you belong to more than one. The Projects views [#the-projects-views] **Projects** in the sidebar expands into four views: | View | Contents | | ------------------ | ---------------------------------------------- | | **All projects** | Everything in the workspace, plus your folders | | **Starred** | Projects you have starred | | **Owned by me** | Projects you created | | **Shared with me** | Projects created by teammates | **Recents** sits below and gives you one-click return to the last few things you touched. Folders [#folders] Folders group projects inside **All projects** — by client, by campaign, by quarter, whatever you need. Create one, then drag projects into it or move them from the project's own menu. A project lives in at most one folder. Folders are a view over the workspace, not a permission boundary: putting a project in a folder does not restrict who can see it. Starring [#starring] Star a project to pin it to the **Starred** view. Stars are personal — starring something does not star it for your teammates. Renaming, duplicating, deleting [#renaming-duplicating-deleting] Every project card has a menu: * **Rename** — the auto-generated name is a first guess, not a decision * **Duplicate** — a fresh copy to explore a variation without risking the original * **Move to folder** * **Delete** Deleting a project removes its chats, version history, and exports. Download anything you want to keep first. Library assets are not affected — they belong to the workspace. Multiple chats in one project [#multiple-chats-in-one-project] A project starts with one chat, and **New chat** adds more. All chats in a project share the same composition and preview, which makes a second chat a clean way to try a different direction without cluttering the thread you like. Finding things fast [#finding-things-fast] Press ⌘K (Ctrl+K on Windows) anywhere. Search covers projects, folders, library assets, and workspaces, and selecting a project previews its video before you open it. Related [#related] ## Prompting Guide fluos responds to creative direction, not to keywords. The best mental model is briefing a motion designer who is fast, literal, and has never seen your brand before. The four things that matter most [#the-four-things-that-matter-most] Every strong brief answers these. If you leave one out, fluos will pick a default or ask. | | Weak | Strong | | ------------ | -------------- | --------------------------------------------------------------- | | **Format** | "make a video" | "16:9 for YouTube" | | **Duration** | — | "about 20 seconds" | | **Look** | "modern" | "editorial, high-contrast type on off-white, one accent orange" | | **Ending** | — | "final 3 seconds lock on the logo and URL" | ```txt A 20-second 16:9 product teaser for a cold brew brand. Editorial look: big serif type on warm off-white, one burnt-orange accent. Fast cuts on the beat, no narration. End on the logo with the tagline underneath. ``` Describe motion, not just layout [#describe-motion-not-just-layout] The difference between a passable video and a good one is almost always pacing. fluos understands motion language directly: * **Energy** — "fast cuts", "slow and confident", "punchy", "let it breathe" * **Timing** — "the headline should settle by 1.5s and hold" * **Choreography** — "stagger the bullet points", "the logo draws itself in" * **Transitions** — "wipe between scenes", "cross-dissolve", "hard cuts" If a scene feels wrong, name the feeling: "scene 2 drags", "the open has no hook", "the end card appears too abruptly." Reference versus embed [#reference-versus-embed] This trips people up more than anything else. When you attach an image, fluos treats it as a **reference** by default — it studies the look and recreates it, rather than dropping your file on screen. If you want the actual file visible, say so explicitly: ```txt Show this product photo full-bleed in scene 2, don't recreate it. ``` Logos are the exception — an attached SVG logo is always meant to appear, and fluos animates the real paths. Iterate narrowly [#iterate-narrowly] One change per message. It sounds slow; it is much faster in practice, because a narrow request cannot accidentally rewrite the parts you liked. **Keep / change.** Say what should stay before you say what should move: *"Keep the palette, type, and pacing. Only change the end card copy to 'Ships in March'."* Prompts worth stealing [#prompts-worth-stealing] **Launch teaser** ```txt A 15-second 9:16 launch teaser for our new running shoe. Hook in the first second, fast cuts, a bold price tag reveal, high-energy motion. End on the logo and "Available now". ``` **Logo sting and lower-third** ```txt Animate our logo and brand colors into a reusable 4-second intro sting, plus a matching lower-third for name and title. Same motion language for both. ``` **Narrated explainer** ```txt A 45-second 16:9 explainer of how our billing works. Calm narration, one idea per scene, headlines under six words. Show the interface doing the thing — no slideshows of static screenshots. ``` **Data story** ```txt Use the attached CSV. Build a 20-second animated bar chart race of monthly revenue, with the year counting up in the corner. Dark background, single accent color. ``` **Recompose an existing build** ```txt Recompose this for 9:16 Reels. Keep the same story beats, logo, and palette. Rework layout and type for vertical safe areas — don't rebuild from scratch. ``` What fluos does by default [#what-fluos-does-by-default] Knowing the defaults tells you what you do not need to specify — and what to override when you disagree: * Readable copy stays inside safe margins, well clear of the frame edges. * Entrances resolve early in a scene and then hold, so nothing is still moving when you are trying to read it. * Nothing freezes: every scene keeps some ambient motion, and static end cards are avoided. * Narrated videos treat the voiceover as the master clock — visuals are cut to the narration, not the other way round. * Social cuts get a hook in the first second and oversized type. * fluos avoids generic default typefaces in favor of something with a point of view. Reuse a brief [#reuse-a-brief] If you keep typing the same brand rules, save them once as a **snippet** and insert them with one click. See [Custom Prompts and Snippets](/docs/custom-prompts). For deeper, reusable playbooks, use [Skills](/docs/skills). Related [#related] ## Security and Privacy Isolation [#isolation] Every build and preview runs in an isolated sandbox that is created for the run and torn down afterwards. Nothing from one project's runtime is reachable from another. Access control [#access-control] * Sign-in is handled by a dedicated authentication provider — fluos never stores your password, and there is no password to store. * Projects, chats, library assets, and exports are scoped to a workspace, and every request is permission-checked on the server. * Membership and role determine what you can do. Removing a member revokes their access immediately. * Export download links follow the same checks, so they are not usable outside the workspace. Your content [#your-content] Chat messages, compositions, uploads, and exports are stored so the product can work — history, version restore, and a shared library all depend on it. **Training and product improvement is opt-in.** The *Help improve fluos* toggle in [Account settings](/docs/account-settings) controls whether your prompts and generated videos may be reviewed to improve the product. It is off unless you turn it on, and you can change it at any time. Your data is never sold or published. Connectors [#connectors] [Connectors](/docs/connectors) authorize through the provider's own OAuth flow. fluos receives a scoped, read-only token and never sees your credentials, never writes back to your tools, and loses access the moment you disconnect. Connections are per workspace. Deleting things [#deleting-things] * **Delete a project** to remove its chats, versions, and exports. * **Delete an asset** from the library to remove the file and its derived proxy, poster, and search index. Assets attached to saved chat messages are protected from deletion so your history does not break. * **Delete your account** to trigger a full cascade removal of your data. Legal [#legal] * [Privacy Policy](https://fluos.io/privacy) * [Terms of Service](https://fluos.io/terms) * [Cookie Policy](https://fluos.io/cookies) Reporting a concern [#reporting-a-concern] Use the support contact on the product site, or **Product feedback** in the account menu. It describes how things work day to day. The legal pages above are the source of truth. ## Skills A skill is a written playbook — a set of rules and a worked approach for a specific kind of video. Where a [snippet](/docs/custom-prompts) is a few standing rules, a skill is a full method the agent reads before it starts building. Open **Skills and Connectors** in the sidebar to see them. Built-in skills [#built-in-skills] fluos ships with a library of skills covering the video types it makes most often — product launches, explainers, social cuts, data stories, logo animation, caption styling, and the motion craft underneath all of them. You do not need to enable these. The agent picks the relevant ones on its own based on your brief. Browsing them is still worth ten minutes: the skill list is effectively a map of what fluos is good at, and reading one tells you exactly what vocabulary to use in your prompts. Calling a skill directly [#calling-a-skill-directly] Type `/` in the composer to open the skill picker, or `@` followed by the skill name. That inserts an `@skill-name` mention, which loads that skill up front instead of leaving the choice to the agent. ```txt @social-vertical Make a 12-second cut of this for TikTok. ``` Use this when you know exactly which playbook you want, or when the agent picked a different one than you expected. Writing your own [#writing-your-own] Ask for it in chat: ```txt Write a skill for our weekly changelog videos: 16:9, 25 seconds, dark background, one feature per scene, our orange accent, always end on the docs URL. ``` fluos writes the skill and saves it to your workspace. This is a conversational request, not a build — it does not consume a build or produce a video. Custom skills are workspace-scoped, so everyone on the team gets them. If it is a handful of constraints you always want applied, use a **snippet**. If it is a repeatable *format* — a recurring video type with its own structure and pacing — write a **skill**. Related [#related] ## Troubleshooting Quick triage [#quick-triage] | Symptom | Likely cause | First move | | ---------------------------- | ------------------------------------------- | --------------------------------------------- | | Preview stuck on **Booting** | Sandbox still starting | Wait a minute, then reload the chat | | Build failed or timed out | Composition too heavy for the time budget | Shorten embedded footage or split the request | | Video came out silent | Audio generation failed during the build | Ask for the narration again | | Nothing moves in a scene | Motion was flagged but not repaired | Ask fluos to rework that specific scene | | Invite will not accept | Signed in with a different email | Sign in with the invited address | | Upload rejected | Wrong type or over the size limit | Check the limits below | | Build will not start | Free daily build used, or credits exhausted | Wait for reset, or upgrade | | Export failed | Render exceeded its budget | Export at Draft quality, or shorten the video | The video is not what I asked for [#the-video-is-not-what-i-asked-for] Before assuming something is broken, check the composition stats above the preview. Duration and resolution drifting from the brief is the single most common "it went wrong" case, and it is fixed with one sentence: *"make it exactly 20 seconds in 16:9."* If a specific beat is off, name it rather than asking for a redo — *"scene 3 holds too long, tighten it to 2 seconds"*. Broad rewrites tend to lose the parts you liked. A scene is frozen [#a-scene-is-frozen] fluos measures its own motion and repairs frozen scenes automatically, but a stubborn one occasionally survives. Say which scene and what should move: ```txt Scene 2 freezes after the headline lands. Keep something moving — a slow push on the background and a subtle drift on the type. ``` For narrated explainers, fluos will refuse to publish a build whose scenes are measurably static rather than shipping a slideshow. If you see that message, retry — it reworks the flagged scenes. The build failed or ran too long [#the-build-failed-or-ran-too-long] Builds have a time budget. Common causes of hitting it: * **Long embedded video.** Cut a shorter segment: *"use only the 0:12–0:18 part."* * **Too much in one request.** Split it — build the base video, then add narration in a follow-up. * **Very high frame counts.** Reduce duration or resolution. Failed builds are not saved, so nothing you already had is lost. Check [Version History](/docs/version-history) if you want to go back a step. The preview will not start [#the-preview-will-not-start] Order of operations: 1. Give it a minute — a cold sandbox genuinely takes a while. 2. Reload the chat page. 3. Send a small follow-up to trigger a fresh build. If the preview is unhealthy, exporting is likely to fail too, so fix the preview first. Uploads [#uploads] | Type | Accepted | Limit | | ------------ | ------------------------- | ----------------------------------------------- | | Images | PNG, JPG, GIF, WebP, SVG | 10 MB | | Documents | PDF | 10 MB | | Spreadsheets | CSV, XLS, XLSX, XLSM | 50 MB | | Video | MP4, WebM, QuickTime, M4V | 1 GB stored, up to 5 GB accepted and compressed | If a video sits on **Processing** or shows **Processing failed**, press **Retry** on the card. You can still use it before scene indexing finishes — the agent is just less precise about it. Invites [#invites] Invites are bound to the exact email they were sent to. If acceptance fails, that is almost always why. Other outcomes: * **Already accepted** — you are a member; switch workspaces in the sidebar * **Revoked** or **expired** — ask for a new invite * **Sign-in required** — you are returned to the invite after signing in I cannot start a build [#i-cannot-start-a-build] Two possibilities: * **Free plan, daily build used.** It resets at midnight UTC. Meanwhile, planning and questions still work. * **Credits exhausted.** Raise your monthly amount for an immediate top-up, or wait for the next cycle. See [Plans and Credits](/docs/pricing-credits). The agent will not build, it just answers [#the-agent-will-not-build-it-just-answers] That is deliberate. fluos classifies whether a message commissions video work, and questions get a conversational reply so they do not burn a build. If you wanted a build, be explicit: ```txt Build this now: a 15-second 9:16 teaser using the attached logo. ``` Sign-in problems [#sign-in-problems] Sign out, sign back in, and retry in a clean tab. Confirm you are in the account you expect — having two accounts on different email addresses is a common cause of "my projects are gone." Send feedback from the account menu at the bottom of the sidebar. Include the exact error text and what you were doing — it makes diagnosis dramatically faster. Related [#related] ## Version History fluos saves a version each time a build validates successfully. Nothing is overwritten, so an experiment that goes wrong is never expensive. Open **Version history** in the sidebar while a project is open. What you see [#what-you-see] Versions are listed newest first on a timeline. Each entry shows: * **Version number** and a **Current** badge on the one that is live * The **prompt** that produced it, so you can recognize it without playing it * When it was **saved** * **Duration**, **FPS**, and **resolution** That metadata line is genuinely useful: it is the fastest way to spot the build where the duration or aspect ratio drifted away from what you asked for. Restoring [#restoring] Press **Restore version**. That version becomes the live one for the project, and you land back in the chat. Two things worth knowing: * **Restoring does not delete anything.** The version you were on stays in the list, so you can bounce between two directions freely. * **Your conversation stays intact.** Restore changes the composition, not the chat. Follow-up messages after a restore build on the restored version. Before asking for a big stylistic change, note which version you are on. If the rewrite goes sideways, restoring takes one click — much cheaper than trying to describe your way back. Versions are per project [#versions-are-per-project] History is scoped to the project, not to a single chat. If a project has several chats exploring different directions, their builds all appear on the same timeline. When history is empty [#when-history-is-empty] A project with no successful builds has no versions. Failed builds are not saved — only validated output makes the list. Related [#related] ## Fluos webhooks Fluos receives **inbound** webhooks from identity, billing, and email providers. These are not customer-configurable outbound webhooks, and agents must not call them — each request is signature-checked against a server-side secret. The OpenAPI operations are `receiveClerkWebhook`, `receiveStripeWebhook`, and `receiveResendWebhook` in [/openapi.json](/openapi.json). Clerk — POST /api/webhooks/clerk [#clerk--post-apiwebhooksclerk] Used for account lifecycle. | Event | What Fluos does | | -------------- | ----------------------------------------------------------- | | `user.created` | Records the canonical server-side signup (`user_signed_up`) | | `user.deleted` | Runs the account deletion cascade | **Auth:** Svix headers `svix-id`, `svix-timestamp`, `svix-signature` verified with `CLERK_WEBHOOK_SIGNING_SECRET`. **Responses:** `200` accepted, `400` bad signature, `500` not configured. Stripe — POST /api/stripe/webhook [#stripe--post-apistripewebhook] Used for Pro subscriptions and enterprise invoices. **Auth:** `stripe-signature` verified with `STRIPE_WEBHOOK_SECRET`. The raw body is required; do not pre-parse JSON before verification. **Responses:** `200` accepted, `400` missing/invalid signature, `500` handler failure (Stripe retries; handlers are idempotent). Resend — POST /api/webhooks/resend [#resend--post-apiwebhooksresend] Used for transactional email open tracking. **Auth:** Svix headers verified with `RESEND_WEBHOOK_SECRET`. **Body (relevant fields):** ```json { "type": "email.opened", "data": { "email_id": "..." } } ``` Configuring endpoints [#configuring-endpoints] Register the production URLs with each provider: * `https://www.fluos.io/api/webhooks/clerk` * `https://www.fluos.io/api/stripe/webhook` * `https://www.fluos.io/api/webhooks/resend` Local development uses `http://localhost:3000` plus the same paths. Outbound / customer webhooks [#outbound--customer-webhooks] Fluos does not currently offer a public outbound webhook subscription API (no `video.exported` customer callback URL). Enterprise workflow integration is arranged with [Fluos sales](/contact-sales). ## Workspaces and Collaboration A workspace is the container for everything shared: projects, library assets, snippets, custom skills, connectors, members, and billing. You get a **Personal Workspace** automatically on your first sign-in. Create more from the workspace switcher at the top of the sidebar — one per team, client, or brand is a common pattern. What is shared and what is not [#what-is-shared-and-what-is-not] | Shared across the workspace | Personal to you | | --------------------------- | ------------------------- | | Projects and folders | Starred projects | | Library assets and snippets | Notification preferences | | Custom skills | Which workspace is active | | Connectors | | | Plan and credits | | Nothing crosses workspace boundaries. Assets uploaded in one workspace are not visible in another, which is exactly what you want when workspaces map to clients. Inviting people [#inviting-people] Open the workspace switcher → **Workspace settings** → invite by email. You can paste several addresses separated by commas to invite a group at once. Each invite gets an email with a link. Invites are **pending** until accepted, and you can revoke one at any time before then. Invites are bound to the address they were sent to. If your teammate signs up with a different email, acceptance fails. Tell them to use the exact address you invited — this is far and away the most common problem with invites. Roles [#roles] | Role | Who it is for | What they can do | | ---------------- | -------------------------- | ------------------------------------------------------------------- | | **Owner** | The team lead who pays | Everything, including billing, roles, and removing members | | **Collaborator** | Anyone making videos | Create and edit projects, use and upload library assets, run builds | | **Read** | Reviewers and stakeholders | View projects and previews without changing anything | Give people **Read** by default if they only need to sign off on work. It costs nothing and keeps a stakeholder from accidentally rewriting a build. Accepting an invite [#accepting-an-invite] Invited people can accept from two places: the emailed link, or the **Inbox** tab of the notification bell once they are signed in, which has inline **Accept** and **Decline** buttons. An invite link can resolve several ways: * **Accepted** — you are now a member and land in the workspace * **Already accepted** — you were added earlier * **Revoked** or **expired** — ask for a fresh invite * **Sign-in required** — you are sent to sign in and returned to the invite afterwards Switching workspaces [#switching-workspaces] Use the switcher at the top of the sidebar. Your active workspace determines where new projects are created and which library you see, so check it before starting something new. Practical advice [#practical-advice] * Keep one clear billing owner per workspace. * Use folders for client or campaign separation *inside* a workspace; use separate workspaces when the assets and billing genuinely should not mix. * Put brand rules in a [snippet](/docs/custom-prompts) so every member's builds follow them without anyone having to remember. * Clear out pending invites you no longer need. Related [#related]