CLI demos
Terminal recordings, rendered as SVG: install through deploy, local through Snowflake, the AI copilot, agentPolicy enforcement, day-2 incident response, and agent-loop compaction. Each one carries a takeaway popup with the numbers from that recording. Click play; the SVG only animates after you opt in (no autoplay, no JS).
Recorded against CLI 0.10.0
The recordings were made with CLI 0.10.0 and have not been re-recorded for 0.18.1. The output, versions, timings and costs on screen are from that recording. Where this page and a recording disagree about what the CLI does today, the page is right: see the notes under each section. For current output, follow Get Started.
Convinced? → Install in 30 seconds. Want longer-form proof of specific workflows? → See it run (narrative scenarios, ~50 s each, with takeaway numbers).
Install + run, locally
Start here. No cloud account is needed.
On the CLI that this site documents (0.18.1), fluid init my-project --quickstart scaffolds the template with fluidVersion: 0.7.5 and also writes a workspace file next to the project. The recording predates both; the contract it validates carries an older fluidVersion. See Get Started for the files the current CLI writes.
Same contract, different cloud
Change the binding block and re-deploy. The schema, dq.rules and build stages stay as they were; the cloud-specific fields in binding change. Changing binding.platform alone is not enough: the platform, the format and the location have to agree. For example, platform: gcp with a parquet format and a local path produces a plan that emits nothing, and fluid validate warns that apply would emit nothing for that port. See Switch clouds for the three keys that move together.
GCP / BigQuery
AWS / Athena
Snowflake
AI copilot — full Gemini-powered flow
The fluid forge AI copilot generating a finance-domain contract end-to-end: project memory loaded, finance domain expertise pack applied (SOX + GDPR), local context discovered, a Gemini streaming call, and the contract emerging block-by-block with the agentPolicy gate. The version below is hand-scripted to follow the real-API flow; a real-capture script (scripts/demos/forge_gemini_real_capture.py) is kept for recording an actual session.
Snowflake live-auth dry-run
The snowflake-biz-lab flow at full fidelity: env credentials sourced, real validate --strict, plan against the live account, apply --mode dry-run rendering DDL without firing it, then policy-apply --mode check over the compiled IAM bindings.
AI copilot — interview shape only
fluid forge --blank skips the LLM call entirely and just scaffolds the structured stub for the chosen domain. Useful when you know what you want and don't need an LLM round-trip.
Policy + IAM compilation
The policy-check → generate artifacts → policy-apply --mode check triple. Validates the access policy, compiles to cloud IAM bindings (BigQuery/Snowflake/AWS), and hands the bindings to the provider in check mode (no live IAM mutations; as of 0.18.1 --mode enforce makes none either).
agentPolicy enforcement (LLM / AI governance)
Declare agentPolicy in YAML, validate it, see the enforcement summary, watch a replay of agent reads (allow/deny) against the policy.
Long-form scenario casts
The casts below pair with the See it run page. Each tells a story (problem, CLI flow, result) in about 30-50 seconds, with takeaway numbers from the recording.
$0.03 per data product — three providers, one contract
Six months → sixty seconds — source-aligned Bronze
23 questions, skipped — guided UX
3am Slack ping → ship in 90 seconds
$0.50 → $0.05 — agent-loop compaction
How the casts are produced
The pipeline that built each SVG above:
scripts/demos/<name>.py ← cast generator
↓
/tmp/casts/<name>.cast.raw ← raw asciinema cast (gitignored)
↓
scripts/cast-v3-to-v2.py ← format conversion (asciinema 3.x → 2.x)
↓
scripts/scrub-cast.py ← strip API keys, JWTs, env-shaped secrets
↓
svg-term --in <cast> ← render to animated SVG (no --window;
our <CliCast> component supplies
the terminal chrome)
↓
docs/.vuepress/public/demos/<name>.svg ← the only file that gets committed
Two passes of secret-scanning happen:
scrub-cast.pyredacts known formats (AIza…,sk-…,sk-ant-…, JWTs,KEY=…/SECRET=…/PASSWORD=…16+ char values) and substitutes literal$SNOWFLAKE_ACCOUNT/$SNOWFLAKE_USER/$GEMINI_API_KEYenv values for friendly placeholders.- Final-SVG grep in
generate-demos.shre-scans the output before keeping the file. If any leak pattern matches in the post-scrub SVG, the file is deleted and the build fails.
The .cast.raw working files live in /tmp/casts/ (gitignored) and are deleted at the end of each render.
To regenerate everything:
scripts/generate-demos.sh # regenerate every cast
scripts/generate-demos.sh --safe-only # only the credential-free casts
scripts/generate-demos.sh forge-gemini # one specific cast
Source for each cast lives at scripts/demos/<name>.py — review or fork freely.