From looker-skills
Creates a LookML dashboard in a Looker project, imports it as a user-defined dashboard (UDD), and refines it via user feedback. Use after model setup step.
How this skill is triggered — by the user, by Claude, or both
Slash command
/looker-skills:creating-looker-dashboardThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill guides you through the final step of onboarding: building the target
This skill guides you through the final step of onboarding: building the target dashboard requested by the user. You will define the dashboard as a LookML dashboard file in the project, import it into Looker as a User-Defined Dashboard (UDD), and iteratively update and synchronize it based on the user's feedback.
looker-cli folder ls"Shared" in the output. In a brand-new instance,
this folder is always present and its ID is almost always "1"."Shared" folder and use it as your target
folder ID (which will be passed to the folder_id parameter in later
steps).You must define the dashboard structure as a LookML dashboard file in your project:
Create the dashboards directory: If the dashboards/ directory does
not yet exist in the project, create it using the Looker CLI:
looker-cli project directory create {project_id} dashboards
Generate Dashboard LookML: Write the LookML dashboard definition locally
(e.g. to /tmp/{dashboard_name}.dashboard.lookml).
Upload the Dashboard File: Upload the file to your Looker project dashboards folder:
looker-cli project file create {project_id} dashboards/{dashboard_name}.dashboard.lookml /tmp/{dashboard_name}.dashboard.lookml
Critical Inclusion Step: You MUST include the dashboard files in
your LookML model file ({model_name}.model.lkml) so they can be discovered
by the project validator and the CLI import/sync commands: lkml include: "/dashboards/**/*.dashboard.lookml"
Inside the dashboard file, write the LookML dashboard definition,
configuring tiles (elements) that display the dimensions and measures you
created in Step 7. It is highly recommended to use layout: newspaper
(which supports grid coordinates row, col, width, and height out of
24 columns) to prevent import errors that can happen with older layout: grid row groupings.
Example Dashboard LookML (layout: newspaper):
- dashboard: sales_performance
title: Sales Performance Overview
layout: newspaper
preferred_viewer: dashboards-next
elements:
- name: total_revenue_tile
title: Total Revenue Over Time
model: ecommerce
explore: orders
type: looker_line
fields: [orders.created_date, orders.total_revenue]
sorts: [orders.created_date desc]
limit: 500
row: 0
col: 0
width: 12
height: 8
- name: order_count_tile
title: Top Countries by Orders
model: ecommerce
explore: orders
type: looker_column
fields: [users.country, orders.count]
sorts: [orders.count desc]
limit: 10
row: 0
col: 12
width: 12
height: 8
Note: Make sure the model and explore properties on each tile match the
model and explore names defined in your project, and the fields use fully
qualified view_name.field_name formats.
Validate the project to ensure the dashboard syntax is perfect and has no reference errors:
looker-cli api project validate_project {project_id}
If errors are returned, fix the LookML dashboard definition and re-validate until clean.
Import the LookML dashboard into your target Folder as a User-Defined Dashboard (UDD). This converts it from a static file into a database-backed dashboard in Looker.
Construct the lookml_dashboard_id in the format
{model_name}::{dashboard_name} (e.g. ecommerce::sales_performance).
Ensure Dev Mode Workspace Context: By default, Looker CLI sessions execute in the production workspace. Since your newly created dashboard exists only in Development Mode, you MUST switch the CLI session to the dev workspace immediately prior to importing/syncing. Chain the session update command to the import command:
looker-cli session update dev && looker-cli dashboard import lookml {model_name}::{dashboard_name} {folder_id}
The command will return a JSON object containing the details of the imported
UDD. Record the dashboard numeric id (e.g., 45) or slug from the
response.
Looker's project validation only checks LookML syntax—it does not verify if the SQL queries for each tile execute successfully against the database. To guarantee that the dashboard is 100% free of query errors before presenting it to the user, you MUST retrieve and execute the query behind every single dashboard tile:
Retrieve the dashboard element details (specifically targeting query_id)
for your newly imported UDD dashboard:
looker-cli dashboard cat {udd_id} --fields "dashboard_elements(query_id)"
For each unique query_id returned in the JSON results (excluding any null
values from text tiles), execute the query to verify database correctness:
looker-cli query runquery {query_id}
Verify that each query executes successfully and returns data without SQL or
database errors. If any query fails (indicating a database column mismatch,
bad SQL dialect function, or GCP permission issue), you MUST resolve the
issue in your LookML views, commit the changes, re-run looker-cli api project validate_project {project_id}, synchronize using looker-cli dashboard sync lookml, and re-verify using this sequence until all queries
execute successfully.
Present the imported dashboard link to the user:
{instance_url}/dashboards/{udd_id} (or /dashboards-next/{udd_id}).
STOP AND ASK the user for feedback on the layout, chart types, or labels:
"I have successfully built and imported your new dashboard! You can view it here: {dashboard_url}
Does this look good to you? Let me know if you'd like me to change any chart types, add new metrics, or adjust the layout!"
STOP AND WAIT for the user's response. Do not call any tools.
If the user requests changes to the dashboard (e.g., "make the order count a bar chart instead of column," or "add a filter"):
Edit your local LookML dashboard file and update it on the Looker server:
looker-cli project file update {project_id} dashboards/{dashboard_name}.dashboard.lookml /tmp/{dashboard_name}.dashboard.lookml
Validate the project:
looker-cli api project validate_project {project_id}
Propagate your changes directly to the imported UDD dashboard using the CLI sync command:
looker-cli dashboard sync lookml {model_name}::{dashboard_name}
Re-run Query Validation: Run the query verification check again to ensure your refinements did not introduce any new SQL or database errors:
looker dashboard cat {udd_id} --fields "dashboard_elements(query_id)"query_id, run the query to verify SQL correctness:
looker-cli query runquery {query_id}Ask the user to refresh their browser and review the changes. Repeat this loop until the user is fully satisfied!
npx claudepluginhub looker-open-source/looker-skillsCreates LookML views and models for Looker BI projects based on user goals. Maps model connections, validates LookML, and runs verification queries. Use after project setup.
Designs analytical dashboard specs: defines questions each chart answers, writes SQL queries, specifies layout and refresh cadence. For dashboard build requests.
Design and spec an analytical dashboard — define the question each chart answers, write the SQL queries, spec the layout and refresh cadence. Produces a complete dashboard spec ready to implement. Use when asked to "build a dashboard", "analytics dashboard", "BI dashboard", "weekly product health", or "visualize this data".