Looker Demo Creator (demo-create)
From zero to production Looker demo in minutes. Automated, deterministic orchestrator for creating end-to-end Looker demos, synthetic BigQuery datasets, 3NF Snowflake LookML semantic models, 100% test-verified dashboards, Conversational Analytics (CA) Agents published to Gemini Enterprise (GE), and Embedded Analytics portals.
Overview
demo-create unifies the full-stack Looker demo lifecycle into a deterministic, gated pipeline:
- Pre-Flight & Skill Sync (
pre-check): Audits GCP/Looker credentials, prunes deprecated MCP servers/skills, and installs CLI-first skills into~/.gemini/config/skills/. - Schema Co-Design & Modular DAG Synthesis (
data generate): Designs 3NF relational schemas (Mermaid ERD + sample preview) and synthesizes Parquet tables (>7,500 rows/sec) viasynthetic-data-authoring. - BigQuery Ingestion (
data upload): Creates datasets and loads partitioned/clustered Parquet tables into BigQuery. - LookML Modeling & QA Deployment (
lookml): Introspects BigQuery/Dataplex metadata intoSPEC.md, generates views/explores/dashboards, validates 100% of queries, and releases vialkr-dev-cli. - Conversational Analytics & Gemini Enterprise (
agent/ge): Grounds 1:1 Golden Queries from dashboard tiles, links them to a Looker CA Agent, and publishes to Gemini Enterprise. - Embedded Portal Scaffolding (
embed): Scaffolds a branded React/Vitelooker-embed-demoapplication.
What Gets Automated: Production Deliverables Inventory
Instead of spending days or weeks stitching together synthetic data scripts, debugging LookML joins, hand-crafting dashboard tiles, writing validation queries, and plumbing AI agent endpoints, demo-create produces a complete, production-grade enterprise demo in minutes:
| Production Asset | What Gets Automated | Exact Output Format |
|---|---|---|
| BigQuery Data Warehouse | 3NF relational schema synthesis (Modular DAG with Pareto/Log-Normal distributions, PK/FK referential integrity, and in-memory TableValidator scorecard) and batch Parquet upload |
Clean BigQuery dataset with partitioned/clustered tables |
| LookML 3NF Semantic Model | CLI-driven BigQuery & Dataplex metadata extraction (SPEC.md), Explore Base View selection, Chasm Trap elimination with Native Derived Table (NDT) rollups joined one_to_one, role-playing diamond joins, and field metadata (label:, description:, value_format_name:, drill_fields:) |
Complete views/*.view.lkml, explores/*.explore.lkml, and models/*.model.lkml |
| Executive Tabbed Dashboard | Executive tabbed report architecture, single-value KPI banners, dual-axis timelines, advanced_vis_config rounded geometry, cross-filtering, and popovers |
Production dashboards/*.dashboard.lookml deployed via API |
| LookML Performance Optimization | Static suggestions: [...] on low-cardinality dims, suggestable: no on unique IDs/text, model datagroup caching, BigQuery partition pruning filters, and raw foreign key hiding |
Production-hardened LookML avoiding database query spikes |
| Pre-Deployment QA Audit | Dev branch push, LookML project validator, 100% test execution of all dashboard queries via Looker API, and bounded self-healing (max 3 iterations) | 100% HTTP 200 OK query pass certificate before production release |
| Conversational Analytics (CA) Agent | Auto-generated domain persona and query rules, extraction of dashboard tiles into 1:1 Looker 4.0 Golden Queries with expanded_share_url grounding |
Live AI Agent in Looker with natural language chat UI |
| Gemini Enterprise (GE) Integration | Automated registration and one-click publishing to connected Gemini Enterprise apps via Looker internal API | Natural language querying across enterprise Gemini apps in minutes |
| White-Labeled Embed Portal (Optional) | Scaffolding of React/Vite application (looker-embed-demo), .env configuration (VITE_CHAT_AGENT_ID), and CSS brand design tokens |
Complete web application ready to run (pnpm install && pnpm dev) |
⚡ Spotlight: From Raw Data to Gemini Enterprise in Minutes
A flagship capability of demo-create is bridging the gap between raw data synthesis and cross-organizational enterprise AI in minutes:
graph LR
Tiles["Dashboard Query Tiles"] --> Ground["Extract & Ground Golden Queries<br/>(expanded_share_url)"]
Ground --> LinkAgent["Link to Looker CA Agent<br/>(PATCH /api/4.0/agents/{id})"]
LinkAgent --> PublishGE["One-Click Publish to GE<br/>(POST /api/4.0/internal/agents/{id}/publish)"]
PublishGE --> Chat["Natural Language Querying<br/>in Gemini Enterprise Apps"]
- Deterministic Dashboard-to-Query Extraction: Every query tile from your generated executive dashboard is inspected and translated into an active Looker query.
- Looker 4.0 Golden Query Grounding: Base queries are created via
POST /api/4.0/queriesto obtain deterministicexpanded_share_urlpermalinks, then registered as 1:1 Golden Queries (POST /api/4.0/golden_queries). - Agent Linking: Golden queries are bound to the Conversational Analytics Agent (
PATCH /api/4.0/agents/{agent_id}), establishing high-precision semantic grounding. - One-Click Gemini Enterprise Publishing: The agent is published directly to connected Gemini Enterprise apps via
POST /api/4.0/internal/agents/{agent_id}/publish.
Within minutes of starting the flow, non-technical users and executives can query the entire domain dataset in natural language directly within Gemini Enterprise.
📄 Inspect a Real Deliverable
Curious what the final output looks like? Inspect real deliverables produced by a completed run:
👉 View Canonical Technical Spec (SPEC.md): IoT Trucking Fleet Analytics 👉 View Canonical Delivery Report (DELIVERY_REPORT.md): IoT Trucking Fleet Analytics
Key highlights from the report:
- BigQuery Summary: 6 relational tables, 21,675 rows across
dim_vehicles,fct_trips,fct_sensor_telemetry, etc. - LookML Architecture: 3NF ERD with Native Derived Table (
vehicle_metrics_ndt) eliminating Chasm Traps. - Quality Audit: 19 / 19 (100%) dashboard tile queries tested with HTTP 200 OK before production release.
- Live AI Agent: 7 pre-seeded Golden Queries and verified Gemini Enterprise publish state.
Prerequisites
Before running demo-create, ensure the following tools, cloud roles, and Looker settings are in place. For the full IAM Principal Matrix, copy-paste gcloud setup script, granular Looker role permissions, OAuth client registration, and SSH port-forwarding guide, see docs/PREREQUISITES.md.
| Category | Required Setup |
|---|---|
| 1. Local CLI & Infrastructure | • Python >= 3.11 & uv (uv tool install looker-demo-cli installs both demo-create and lkr-dev-cli).• Google Cloud SDK ( gcloud & bq) authenticated via gcloud auth login and gcloud auth application-default login.• Looker Instance (API 4.0) with a pre-configured BigQuery Connection. • Gemini Enterprise (GE) App in GCP ( global, us, or eu) for Gate 5 agent publishing. |
| 2. Google Cloud APIs & IAM | • APIs: bigquery, aiplatform (Vertex AI / LLM), discoveryengine (GE), cloudresourcemanager, and optional dataplex/datacatalog.• Developer / Local ADC: roles/bigquery.dataEditor, roles/bigquery.jobUser, roles/aiplatform.user, roles/serviceusage.serviceUsageConsumer, roles/discoveryengine.viewer, and roles/resourcemanager.projectIamAdmin (to auto-bind Looker SA IAM).• Looker BigQuery SA: roles/bigquery.dataEditor + roles/bigquery.jobUser.• Looker Gemini SA ( ai_ge_service_account_email): roles/discoveryengine.admin + an assigned Gemini Enterprise License. |
| 3. Looker Permissions | • Instance Settings: lkr-cli OAuth app registered (register_oauth_client_app) and Admin > Platform > Gemini enabled (CA + Publish to GE).• User Role: Looker Admin role (Recommended for all gates) — or granular permissions by gate: Developer + manage_project_models (Gates 2–3 LookML dev/deploy), CA Agent Author (create_agents/manage_agents, create_queries, explore for Gate 4), and Admin (Gate 5 GE config & publish). |
👉 Full Setup, IAM Matrix & gcloud Bootstrap Script → docs/PREREQUISITES.md
Getting Started: Two Ways to Build
🚀 Mode 1: AI Agent Pair-Programmer (Primary Hero Flow)
Run interactively with your AI coding assistant (Antigravity, Claude Code, or AgentAPI) using the looker-demo-orchestrator skill.
Step 1: Install Persistent CLI Tools
uv tool install looker-demo-cli
Installs demo-create, looker-demo-cli, and lkr (lkr-dev-cli) globally across terminal sessions.
Step 2: Run Pre-Flight Audit & Auto-Fix
demo-create pre-check --fix
Verifies GCP/Looker credentials, prunes deprecated MCP servers (data-designer, bigquery, knowledge-catalog), and syncs CLI-first skills. Fails fast (exit code 3) if authentication is missing.
Step 3: Configure Authentication (If Blocked)
# 1. Google Cloud & Application Default Credentials (ADC)
gcloud auth login
gcloud auth application-default login
gcloud config set project <PROJECT_ID>
# 2. Looker OAuth Login
lkr auth login
Step 4: Launch the AI Demo Creation Flow
Instruct your AI assistant in chat:
"Create an end-to-end Looker demo for IoT Fleet Analytics (or SaaS ARR, Retail, Fintech)."
The AI agent orchestrates the gated workflow interactively:
- Interactive Schema Co-Design & Modular DAG Synthesis: Proposes a Mermaid ERD and 5–10 row sample preview at Gate 1 before synthesizing Parquet tables (
>7,500 rows/sec) viasynthetic-data-authoringand loading BigQuery. - Fast-Path Deterministic CLI Execution: Runs compiled CLI subcommands directly (
demo-create data,lookml model,lookml optimize,lookml deploy,agent create,agent publish). - On-Demand Specialized Subagents: Spawns
data-engineer,lookml-snowflake-modeler,lookml-dashboard-designer,lookml-qa-validator, andembed-portal-engineeronly when required by the gate.
💻 Mode 2: Standalone CLI (Headless Engine)
Execute demo-create directly from your terminal or CI/CD pipeline, one gate at a time:
demo-create pre-check --fix
demo-create data generate --domain retail --row-count 25000 --output-dir scratch/parquet
demo-create data upload --parquet-dir scratch/parquet --gcp-project my-gcp-project --dataset retail_analytics
demo-create lookml model --looker-project retail_analytics --dataset retail_analytics --connection my_bq_connection
demo-create lookml deploy --looker-project retail_analytics --lookml-dir lookml
State is persisted to .demo-state.json between calls, so later gates inherit earlier answers and you only pass what changes. See docs/COMMANDS.md for ephemeral uvx, .venv, and local editable installation patterns.
Documentation
| Document | Purpose |
|---|---|
docs/PREREQUISITES.md |
Prerequisites, GCP IAM & Looker Permissions — Principal IAM matrix, copy-paste gcloud setup script, Looker role permissions by gate, OAuth setup, and GE provisioning. |
docs/COMMANDS.md |
Full command reference — Every command, flag, and default, generated from the implementation and enforced by a CI drift test. |
docs/ARCHITECTURE.md |
Architecture & Invariants — How the CLI is layered, skill organization, and the invariants a change must preserve. |
CONTRIBUTING.md |
Setup, the local gate, and how to add a command. |
AGENTS.md |
Instructions for an AI agent orchestrating a build. |
Commands Quick Reference
Use demo-create status (or demo-create status --json) at any point to inspect completed gates and get the literal next command to run:
$ demo-create status
┏━━━┳━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━┓
┃ ┃ Gate ┃ Stage ┃ Status ┃ Human gate ┃
┡━━━╇━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━┩
│ ✓ │ 0 │ Environment audit & 4-target confirmation│ done │ confirm │
│ ✓ │ 1 │ Schema co-design, synthesis & BQ load │ done │ confirm │
│ ▶ │ 2 │ Semantic modeling & dashboard generation │ current │ -- │
│ · │ 3 │ Optimization, validation & release │ pending │ confirm │
│ · │ 4 │ Conversational Analytics agent grounding │ pending │ confirm │
│ · │ 5 │ Gemini Enterprise publishing │ pending │ confirm │
└───┴──────┴──────────────────────────────────────────┴─────────┴────────────┘
→ Gate 2: Semantic modeling & dashboard generation
$ demo-create lookml model --looker-project retail_demo --dataset retail \
--connection acme_bigquery --gcp-project acme-analytics
| Command Group | Key Subcommands | Purpose |
|---|---|---|
status |
demo-create status [--json] |
Reports completed gates, current gate, requires_human_confirmation, and next_command. |
pre-check |
demo-create pre-check [--fix] [--json] |
Audits GCP/Looker auth, prunes deprecated MCP servers/skills, and syncs skills into ~/.gemini/config/skills/ (data-design/, lookml/, embed-portal/). |
data |
generate, upload [--verify-only], inspect |
Synthesizes local Parquet files, loads BigQuery datasets with Day Partitioning & Clustering, and inspects schemas. |
lookml |
model, clean-root, optimize, restore, deploy |
Generates LookML from BigQuery/Parquet, cleans root duplicates, applies performance optimizations (with .backup_pre_opt snapshots), validates queries, and deploys to production. |
agent |
create, golden-queries, publish |
Provisions Looker CA AI Agents, extracts & links 1:1 Golden Queries (expanded_share_url), and publishes to Gemini Enterprise. |
ge |
status, configure, publish |
Inspects Looker Gemini enablement, discovers GCP Discovery Engine apps, binds roles/discoveryengine.admin to the Looker SA, and publishes agents. |
embed |
scaffold |
Scaffolds a branded React/Vite looker-embed-demo portal pre-wired with Looker, dashboard, and CA agent IDs. |
env |
init, run-script, python |
Initializes a workspace .venv or executes ad-hoc Python scripts inside the CLI's bundled environment. |
👉 Exhaustive Command & Flag Reference → docs/COMMANDS.md
👉 Architecture, Gated State & Skill Layout → docs/ARCHITECTURE.md
Metadata
Release files for looker-demo-cli 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| looker_demo_cli-0.3.1.tar.gz | 494.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| looker_demo_cli-0.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 790.0 kB
Release files / looker_demo_cli-0.3.1.tar.gz
| Download URL | looker_demo_cli-0.3.1.tar.gz |
|---|---|
| Size | 494.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9a27d652476832f8b633493c3f3131bf18c139447d6c3188c40b757603cebde7
|
|
BLAKE2b-256 checksum How to use checksums |
899f7531642c93bb20f242cb091461eb641650a2e66f43637ba7a5f8bbef606f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / looker_demo_cli-0.3.1-py3-none-any.whl
| Download URL | looker_demo_cli-0.3.1-py3-none-any.whl |
|---|---|
| Size | 295.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
931501964dd7fc568cbfe0f159cd8acec330a68d468125c4aaf12e8db5a40c8e
|
|
BLAKE2b-256 checksum How to use checksums |
04839289e0aa8b770c1e3a313d6bd8a7fdcf1a5a4a7285562fb7f8fd29d0ce40
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency log