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 entire full-stack Looker demo creation lifecycle into a single automated pipeline:
- Pre-flight & Environment Audit (
pre-check): Verifies active GCP/ADC accounts, installs/patches global MCP tools (data-designer,bigquery,knowledge-catalog), checks Looker authentication (OAuth / API keys), and organizes agent skills into intent-based subfolders. - Dataset Decision & Synthesis: Automatically checks for existing BigQuery datasets, enables data augmentation or green-field relational schema generation, and validates referential integrity.
- BigQuery Loading: Creates datasets and partitioned/clustered tables in BigQuery.
- LookML Generation & Direct Code-Mode Deployment: Autogenerates production-ready views, explores, and executive dashboards, provisioning and deploying them directly to the Looker instance using
lkr code-modewithout requiring an MCP server. - Conversational Analytics & Gemini Enterprise: Provisions Looker CA AI Agents, extracts dashboard queries into 1:1 Golden Queries, and publishes to Gemini Enterprise.
- Embedded Portal Scaffolding: Clones and configures a clean, dedicated
looker-embed-demoworkspace for external client demos.
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, realistic engineering distributions, PK/FK referential integrity, and batch Parquet upload | Clean BigQuery dataset with partitioned/clustered tables |
| LookML 3NF Semantic Model | 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 (npm run 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 a real deliverable produced by a completed run:
👉 View Canonical Delivery Report: 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.
Getting Started: Two Ways to Build
🚀 Mode 1: AI Agent Pair-Programmer (Primary Hero Flow)
Run interactively with your AI coding assistant (Jetski, Claude Code, or AgentAPI) using the looker-demo-orchestrator skill.
Step 1: Install Persistent CLI Tools
On any fresh machine, bootstrap the environment globally in seconds using uv:
uv tool install looker-demo-cli
This installs demo-create, looker-demo-cli, and lkr (lkr-dev-cli) into an isolated, persistent environment available across all terminal sessions.
Step 2: Run Pre-Flight Audit & Auto-Fix
Immediately run pre-check --fix to configure MCP servers, check dependencies, and sync agent skills:
demo-create pre-check --fix
Step 3: Configure Authentication (If Blocked)
-
Google Cloud & Application Default Credentials (ADC):
gcloud auth login gcloud auth application-default login gcloud config set project <PROJECT_ID>
-
Looker Authentication (
lkr auth login): Run the interactive Looker OAuth login:lkr auth login
(Or ephemerally:
uvx --from "lkr-dev-cli[codemode]" lkr-dev-cli auth login)
Step 4: Launch the AI Demo Creation Flow
Once authenticated, 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 entire workflow interactively:
- Interactive Schema Co-Design: Collaborate with the agent on ERD diagrams, field definitions, and micro-sample data previews before generating full scale.
- Subagent Hub-and-Spoke Execution: The parent orchestrator delegates execution to specialized subagents:
data-engineer(Batch synthesis & BQ load)lookml-modeler(Front-door semantic modeling & 3NF triage)lookml-snowflake-modeler(3NF modeling, NDT rollups & diamond joins)lookml-dashboard-designer(Pixel-perfect executive tabbed dashboards)lookml-performance-optimizer(Google Cloud Looker performance best practices)lookml-qa-validator(Dev push, validation & max 3 query self-healing)ca-agent-provisioner(CA agent & golden queries; conditional on user confirmation)embed-portal-engineer(Vite embed portal; conditional on user confirmation)
⚙️ Gemini Enterprise (GE) Integration & Automated Provisioning
When deploying Conversational Analytics (CA) Agents to publish into Gemini Enterprise (GE), demo-create automatically verifies and configures Looker GE settings:
- Automated Inspection (
GET /api/4.0/gemini_enablement):- Inspects active Looker Gemini enablement settings.
- If already configured, prompts to publish directly to the configured app or reconfigure.
- Automated GCP Discovery & Configuration (
PATCH /api/4.0/gemini_enablement):- If unconfigured, scans the GCP project for active Discovery Engine apps across standard regions (
global,us,eu). - Updates Looker GE settings sending the full enablement payload with
ai_ge_publish_enabled: true.
- If unconfigured, scans the GCP project for active Discovery Engine apps across standard regions (
- Automated Looker Service Account IAM Role:
- Automatically grants the Looker Service Account (
ai_ge_service_account_email) the Discovery Engine Admin (roles/discoveryengine.admin) role viagcloud projects add-iam-policy-binding.
- Automatically grants the Looker Service Account (
- Standalone CLI Inspection & Management:
# Check Looker GE status demo-create ge status # Configure Looker GE settings interactively demo-create ge configure --gcp-project <PROJECT_ID>
💻 Mode 2: Standalone CLI (Headless Engine)
Execute demo-create directly from your terminal or CI/CD pipeline:
demo-create run --project=retail_analytics --scope=internal
Alternative Installation Methods
Run Ephemerally with uvx (Zero-Install Alternative)
You can also execute the CLI on-demand in an ephemeral cache without pre-installing:
# Run pre-flight audit and auto-fix MCP / skills
uvx looker-demo-cli pre-check --fix
# Run end-to-end interactive demo creator
uvx looker-demo-cli run --project=retail_analytics --scope=internal
Workspace Virtual Environment & Script Runner
To eliminate missing dependency errors across agent scratch scripts or data synthesis pipelines:
# Initialize a local .venv with all demo packages pre-installed:
demo-create env init
source .venv/bin/activate
# Execute ad-hoc scratch scripts using the CLI's bundled Python environment:
demo-create run-script scratch/generate_data.py
# Run one-off Python commands in the demo environment:
demo-create python -c "import pandas, pyarrow, google.cloud.bigquery; print('Ready!')"
Running from Local Source or Git (Development)
# Run directly from local source directory:
uvx --from . demo-create pre-check --fix
# Run directly from Git:
uvx --from git+https://github.com/lkrdev/looker-demo-cli.git demo-create pre-check --fix
# Local Editable Installation:
cd ~/looker-demo-cli
demo-create env init
source .venv/bin/activate
uv pip install -e .
Commands & Usage
1. Environment & Skill Audit (pre-check)
# Run visual audit of GCP credentials, MCP tools, and intent skills
demo-create pre-check
# Automatically install missing MCP configs and symlink skills into intent subfolders
demo-create pre-check --fix
# Emit raw JSON report for programmatic agent consumption
demo-create pre-check --json
2. End-to-End Demo Creation (run)
# Interactive wizard
demo-create run --project=retail_insights --scope=internal
# Non-interactive / Agent Mode
demo-create run \
--project=logistics_analytics \
--scope=external \
--gcp-project=my-analytics-project \
--gcp-account=user@example.com \
--agent-mode
3. Modular Pipeline Commands
You can run any phase of the pipeline independently. State is automatically persisted in .demo-state.json across executions:
Data Synthesis & Ingestion (demo-create data)
# Synthesize local Parquet files
demo-create data generate --domain retail --scale medium --output-dir scratch/parquet
# Upload Parquet tables to BigQuery
demo-create data upload --parquet-dir scratch/parquet --project my-gcp-project --dataset retail_analytics
# Inspect existing BigQuery tables and schema
demo-create data inspect --project my-gcp-project --dataset retail_analytics
Semantic Modeling & Deployment (demo-create lookml)
# Generate LookML from an existing BigQuery dataset with Knowledge Catalog / Dataplex introspection
demo-create lookml model --project retail_analytics --dataset retail_analytics --connection bigquery_connection
# Generate LookML from local Parquet files
demo-create lookml model --project retail_analytics --parquet-dir scratch/parquet --connection bigquery_connection
# Deploy staged LookML files to dev workspace, run query tests, and release to production
demo-create lookml deploy --project retail_analytics --lookml-dir lookml/
Conversational Analytics & Golden Queries (demo-create agent)
# Provision CA Agent, extract dashboard Golden Queries, and publish to Gemini Enterprise
demo-create agent create --model retail_analytics --explore orders --dashboard-id retail_analytics::executive_overview --publish-ge
# Extract and link Golden Queries from dashboard files to an existing agent
demo-create agent golden-queries --agent-id 1042 --dashboard-id retail_analytics::executive_overview
# Publish agent to Gemini Enterprise
demo-create agent publish --agent-id 1042
Standalone Embed Portal Scaffolding (demo-create embed)
# Scaffold React/Vite portal with .env configured for Looker, dashboard, and CA chat
demo-create embed scaffold --project retail_analytics --dashboard-id 1042 --agent-id 1042 --brand-name "Retail Insights"
Gemini Enterprise Management (demo-create ge)
# Check Looker Gemini enablement and GE status
demo-create ge status
# Discover GCP GE instances, configure Looker, and grant IAM roles
demo-create ge configure --instance-id my-ge-app --location us
Intent-Based Skill Organization
When you run demo-create pre-check --fix, skills are automatically pulled from remote repositories and organized into ~/.gemini/config/skills/:
~/.gemini/config/skills/
├── data-design/
│ ├── data-designer/
│ ├── data-designer-architect/
│ ├── data-designer-engineer/
│ ├── data-designer-evaluator/
│ └── vertex-ai/
├── lookml/
│ ├── lkr-code-mode/
│ ├── repo-lookml/
│ ├── lookml-model/
│ ├── lookml-explore/
│ ├── lookml-view/
│ ├── lookml-dashboard/
│ ├── lookml-dashboard-to-query/
│ └── embed-themes/
└── embed-portal/
├── looker-demo-orchestrator/
├── setup-embed-demo/
├── customize-frontend/
├── customize-frontend-branding/
├── customize-frontend-theme/
└── sso-embed/
This guarantees that any Jetski agent in any directory can discover and execute Looker demo workflows.
Metadata
Release files for looker-demo-cli 0.1.8
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.1.8.tar.gz | 169.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| looker_demo_cli-0.1.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 242.1 kB
Release files / looker_demo_cli-0.1.8.tar.gz
| Download URL | looker_demo_cli-0.1.8.tar.gz |
|---|---|
| Size | 169.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
91a86c146596b3ead8ea27afab3dc8009ae976dbf3fd9953ac34d433d7fe9652
|
|
BLAKE2b-256 checksum How to use checksums |
c03d54d7be1ce57723f05b15d9a49024ed428a262569ba3a7937c71b8c56e5c2
|
| 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 Sep 9, 2026.
Transparency logRelease files / looker_demo_cli-0.1.8-py3-none-any.whl
| Download URL | looker_demo_cli-0.1.8-py3-none-any.whl |
|---|---|
| Size | 72.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
22c9f7629dfe78c742a291e4f6cb805c887b33e7b14184454864c9afa9fdd791
|
|
BLAKE2b-256 checksum How to use checksums |
71017fe9e1f6cf45595d85964e2653086b5e22f9f091951ef14b752205843a7e
|
| 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 Sep 9, 2026.
Transparency log