tableau-to-hex-skill

A skill that migrates a Tableau, Looker or Power BI dashboard to a Hex app and verifies numbers and looks with screenshots.

  • 91 ★ on the repository
  • Last commit
  • MIT
Skill

Broad access

Why this level

  • Works with Tableau, Looker and Entra tokens and credentials and with the data warehouse through a CLI.
  • Sends SQL and a specification to the Hex agent, and the build phase spends paid credits.
All reasons and checks

humphrey4data/tableau-to-hex-skill

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add skills/tableau-to-hex-skill

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • Works with Tableau, Looker and Entra tokens and credentials and with the data warehouse through a CLI.
  • Sends SQL and a specification to the Hex agent, and the build phase spends paid credits.

This is third-party code. Review the repository files before installing.

What it does

The skill guides an agent through migrating a BI dashboard to a Hex app with the same queries, numbers, filters, colors, layout and tooltips. The process has six steps: setup and logins, extraction from the source, logic validation against the warehouse before building, building through the Hex agent, a screenshot self-check loop and a sign-off with an evidence pack. From Tableau the agent downloads the `.twbx` workbook and parses the XML. For Looker it takes each tile's SQL through the API. For Power BI it reads the report definition and semantic model, and translates DAX measures to warehouse SQL and proves equivalence. The agent screenshots the Hex app headlessly, diffs panels against the source PNG and sends fixes until parity.

Who it is for. Analysts and BI engineers moving reports from Tableau, Looker or Power BI into Hex who want verifiable parity instead of manual rebuilding.

Good fit when

  • A company leaves Tableau Cloud for Hex and moves a working dashboard.
  • A Looker dashboard exposes SQL per tile and must be reproduced in Hex.
  • A Power BI model with DAX measures is translated to warehouse SQL with equivalence checks.
  • Before acceptance you need an evidence pack: side-by-side images and a per-panel parity table.

Not a fit when

  • There is no Hex workspace with CLI and the agent enabled: the build path is blocked without them.
  • A Power BI import-mode model has no reachable upstream warehouse: it cannot be migrated.
  • You need a plain data export rather than an exact visual copy.

Example request

Migrate this Tableau dashboard to Hex: https://<pod>.online.tableau.com/#/site/<site>/views/<Workbook>/<Dashboard>

Limitations

A Hex workspace with the CLI and the agent-threads feature is required, and the build phase spends workspace AI credits. Tableau needs a personal access token, Looker API3 credentials, and Power BI an Entra login through Azure CLI and the query permission enabled. A warehouse CLI is also installed: Snowflake, BigQuery, Databricks, Postgres or Redshift. Only Tableau is battle-tested in a production migration; for Looker and Power BI the process is documented as equivalent. Hover tooltips are not exposed by any API, so you send them as screenshots. Last commit 30 July 2026.

How to disable. Delete the skill folder from `.cursor/skills`, `.claude/skills` or `.codex/skills`. Revoke the issued Tableau, Looker and Entra tokens and close the Hex and warehouse CLI sessions.

FAQ

How do I install the skill?

Copy the folder into `.claude/skills/tableau-to-hex-migration/`, `.cursor/skills/` or `.codex/skills/` of the project or a personal directory. The agent follows `SKILL.md`, and commands live in `reference.md`.

What phrase starts a migration?

Paste a link to a Tableau view, Looker dashboard or Power BI report and ask to migrate it to Hex. Phrases like migrate, replicate and Tableau to Hex work.

How long does the build take?

The build phase through the Hex agent takes about 10 to 15 minutes. The self-check loop usually runs three or more rounds.

Which sources are supported?

Tableau Cloud and Server 2019.4+, Looker hosted and self-hosted, Power BI through Fabric, Premium or PPU. Tableau is battle-tested in production, the rest are documented as equivalent.

What does the user get at the end?

An evidence pack: side-by-side images, a per-panel parity table, explicit approximations and open questions. Acceptance stays with a human.

Discussion

No questions or reviews yet.

Skills

Three free Power BI skills: a model audit scored 0-100, HTML documentation and DAX measures created from a description.

SkillExtended access118Repository stars

A data visualization skill for agents: turns data into polished interactive HTML charts and full reports with one visual language

SkillMinimal access6.8KRepository stars

Excel analysis skill that profiles a sheet, cleans it, reconciles totals against the sheet's own sums and then releases numbers.

SkillMinimal access464Repository stars

Skill and CLI for tables: cleaning with recorded decisions, level-based statistics, a PDF report and a separate audit.

SkillExtended access101Repository stars

A CLI and 13 skills for Claude Code: the Power BI data model, DAX measures, row-level security and PBIR report pages straight from chat

CLIBroad access491Repository stars

31 skills for Claude Code and Codex for the analyst workflow: data checks, cohorts, funnels, A/B tests, dashboards, summaries

SkillMinimal access529Repository stars

README in short

A human-facing document with a table of sources and their status, a step-by-step process with the user's involvement, trigger phrases, install paths and prerequisites per BI tool. The agent procedure lives in SKILL.md and commands in reference.md.

README badge

Original SKILL.md

---
name: tableau-to-hex-migration
description: Migrate a Tableau, Looker, or Power BI dashboard to a Hex app that matches it exactly — same queries, results, filters, colors, layout, and tooltips. Use when the user pastes a Tableau dashboard/view link, a Looker dashboard link, or a Power BI report link and asks to migrate, replicate, copy, or rebuild it in Hex, or mentions "Tableau to Hex" / "Looker to Hex" / "Power BI to Hex".
---

# Tableau/Looker/Power BI → Hex Dashboard Migration

Given a Tableau, Looker, or Power BI dashboard URL, produce a Hex app that is a faithful copy: same underlying queries and numbers, same filters, same colors/layout/labels, same tooltips. The build is driven by the **Hex agent** (`hex thread` CLI); source logic is extracted from the **ground truth** — Tableau's workbook file (.twbx), Looker's dashboard + query APIs, or Power BI's report definition (PBIR) + semantic model (TMDL/DAX) — and validated against the **same warehouse Hex queries** before it is handed to Hex.

All command snippets referenced below live in [reference.md](reference.md) — read it before starting Phase 1.

**Adaptivity rule**: the procedure is environment-agnostic; only the leaf commands vary. Phase 0 pins four environment choices — **source BI** (Tableau / Looker / Power BI), warehouse engine (Snowflake / BigQuery / Databricks / Postgres-Redshift), source hosting (Tableau Cloud vs self-hosted Server; Looker-hosted vs customer-hosted; Power BI capacity/licensing tier), and OS (macOS vs Linux) — and every snippet in reference.md is either shared or labeled per branch. Follow your branch exactly; don't mix branches mid-run. (The Tableau + Snowflake + macOS branch is the most battle-tested; the others are documented equivalents.) Phases 2–5 are source-agnostic: Phase 1 is the **source adapter**, and whatever the source, it must produce the same artifact — a written spec with ground-truth queries, calc definitions, parameters/filters, colors, layout, and a rendered PNG.

## Preconditions and non-goals

Confirm these before Phase 1, and tell the user about anything that applies:

- **Works for**: dashboards of charts, tables, and heatmaps whose datasources are reachable from a Hex warehouse connection (Tableau custom SQL or published sources; Looker explores/Looks on a warehouse connection Hex can also reach; Power BI DirectQuery/composite models over such a warehouse, or import models whose upstream source tables live in one), with quick filters and parameters (Looker: dashboard filters and listen-mapped tiles; Power BI: slicers and report/page/visual-level filters).
- **Power BI hard blockers — check before promising anything**: (a) an **import-mode model with no reachable upstream warehouse** (data lives only inside the pbix/semantic model) has nothing for Hex to query — stop and tell the user; (b) measures are **DAX, not SQL** — every measure must be *translated* to warehouse SQL and proven equivalent, which makes Phase 2 the dominant cost and complex DAX (nested `CALCULATE` context transitions, heavy time intelligence) a per-measure judgment call; (c) licensing walls — XMLA read and export-to-file need Fabric capacity or Premium-Per-User, and the `executeQueries` REST API needs its tenant setting enabled. Budget roughly 2× the Tableau/Looker correction rounds.
- **Hex workspace requirements**: the CLI must be enabled for the workspace, and Phase 3 depends on the **Hex agent (threads)** feature, which consumes the workspace's AI credits and may be disabled or exhausted on some plans. Verify early — `hex thread create` failing with a credits/feature error means the whole build path is blocked until the workspace admin enables it (there is no free fallback with comparable quality).
- **No clean Hex equivalent — agree a fallback with the user up front**: Tableau Stories; dashboard actions (filter/highlight/URL/set actions); row-level security and user filters; user-specific data blending.
- **Out of scope**: refresh schedules, permission migration, publishing/embedding, alert subscriptions. The deliverable is a draft Hex app at visual/numeric parity (Phase 5 evidence pack).
- A container usually holds **several dashboards** (a Tableau workbook, a Power BI report's pages, a Looker folder). After Phase 1 lists them, **ask the user two scope questions** and record the answers in the spec:
  1. **Which to migrate** — all of them, only the linked one, or a subset. Default to only the linked one if they don't care.
  2. **One app or one app with tabs** — if the selected dashboards are **tabs of the same logical report** (a Tableau workbook published with tabs, a Power BI report's pages), the default is **one Hex Generative app with a tab per dashboard** (generative apps support tab navigation; say so in the build prompt and keep each tab's SQL cells scoped to its own dashboard). Only genuinely unrelated dashboards get separate apps (one thread each).

  Whatever the grouping, never mix panels from a dashboard that isn't in scope into another dashboard's tab.

## Progress checklist

```
- [ ] Phase 0: Setup + ground rules (tooling, fidelity policy, run manifest)
- [ ] Phase 1: Extract the source spec (Tableau: twbx + XML; Looker: dashboard/query APIs; Power BI: PBIR + TMDL/DAX; + rendered PNGs)
- [ ] Phase 2: Validate every query against the warehouse (the source's numbers as truth)
- [ ] Phase 3: Build the Hex app with `hex thread create --new-project`
- [ ] Phase 4: Self-check loop (screenshot diff, YAML, numbers) until parity
- [ ] Phase 5: Deliver the parity evidence pack, get user sign-off
```

## Phase 0 — Setup and ground rules

Check what's installed; install only what's missing.

1. **Hex CLI** (required — this drives the whole build; macOS/Linux, Windows via WSL):
   ```bash

Report a problem