Skip to content

About

Interactive viewer for Power BI semantic models (TMDL): table canvas, relationship matrix, measure dependency flow. Installable web app + VS Code extension.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

15 stars

Watchers

1 watching

Forks

Latest commit

 

History

361 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Semantic Model Viewer

Understand how a Power BI semantic model fits together: tables, relationships, DAX, and Power Query.

CI License: MIT Latest release

For Power BI developers and consultants exploring, maintaining, or handing over models. The browser viewer and local app parse your model metadata on your computer without uploading it.

Semantic Model Viewer showing the synthetic Contoso Retail model with tables and relationships

Try in browser · Windows portable ZIP · VS Code extension

The browser demo opens with a synthetic Contoso Retail model. No installation or account is needed.

Learning library: watch recordings, download PDF walkthroughs, and follow the guides

What's new in 0.6

  • Readable diagrams without zooming. Names stay at 11px or larger. Tables open as full cards with every relationship's cardinality badge when the pane has room. Focus shows a table's neighbourhood, arranged, in one press. On small screens the canvas keeps the space, and narrow dependency flows run top to bottom with tidy links.
  • Ask your agent, see the answer. smv show opens the relevant Tables and Measures views side by side, or as tabs on a narrow window, and the agent gives the answer in the conversation. Live sessions follow the agent's next view.
  • Fabric connection. Sign in with a work account, browse workspaces and models, open read-only metadata, reopen it offline and refresh it.
  • Colours by source or table folder, with a compact legend, and VS Code light, dark and high-contrast themes.
  • Bundled CLI and Copilot tools. Extension packages include the smv command and native Copilot tools.

Get started

Where First steps Requirements
Windows portable Extract the ZIP and double-click Run Semantic Model Viewer.cmd. Windows x64 and a browser; no installation or separate Python setup.
Browser Open the demo, then choose Open model to import your own model. A desktop browser; Chrome/Edge also support connecting a repository folder.
VS Code Install the extension, open your project folder, then select a model in Semantic Model Viewer. VS Code; no Python or Power BI Desktop needed for local model files.
Mac / run from source Follow the repository setup. Python 3 and a browser.

See the portable download instructions for package availability.

In Tables, add Sales with +, select it, and explore its filter paths. In Measures, select a measure to follow its dependencies and inspect the DAX.

Supported files: TMDL (*.SemanticModel folders and PBIP project folders) and model.bim. A .pbip file alone is not the model; .pbix files cannot be opened directly. See supported input and troubleshooting.

Claude Code

Load the semantic-model-viewer plugin to open models, ask for visual explanations, and save offline snapshots from Claude Code. It runs the existing CLI through Claude's shell tools. Install from inside Claude Code:

/plugin marketplace add MrPerfectH/Semantic-Model-Viewer#claude-marketplace
/plugin install semantic-model-viewer@semantic-model-tools

Use /semantic-model-viewer:open for diagrams. /semantic-model-viewer:setup is optional for a global terminal command. smv show <model> --table "Cost Center" --related --dependents opens a reusable side-by-side Tables/Measures workspace; relations and dependents give short metadata answers. Requires Node.js 22+ and Git. The plugin CLI has no runtime npm dependencies. No separate Viewer app installation is needed. See plugin setup and commands.

The CLI workspace workflow downloads Fabric definitions using an existing Azure CLI login, generates offline diagrams, and records source and renderer hashes. Local models require no cloud login. Choose opening behavior with --open none|system.

Fabric connection

Work-account sign-in, workspace/model browsing, read-only metadata inspection, cached reopening and manual refresh, in the standalone app and desktop VS Code. Standard sign-in and live model opening have been tested on macOS, Linux x64 and Windows x64. See Fabric connection setup. Read + Build access may expose limited internal metadata.

What you can do

Explore tables and relationships

Build a canvas around the tables you care about. Read cardinality and filter direction, follow active and inactive relationships, and inspect table and column details. Add related tables, highlight filter paths, hide unrelated objects, and choose among automatic layouts. Pan, zoom, use the minimap, pin tables, save named views, and undo layout edits.

Relationship canvas Table inspector
Sales and its dimensions on the relationship canvas Sales table source, columns, and relationship details

Tables and layout guide

Trace measure dependencies and understand DAX

See what feeds a measure and what depends on it. Start from a table or column to find direct and indirect dependent measures, then inspect their formulas without losing the selected source. Search by name, folder, home table, or DAX; identify hidden measures and report usage when report metadata is loaded.

Read DAX beside the graph, compare formulas, format expressions, and inline referenced measures to inspect the expanded calculation. Optional table and column references show which model objects the visible measures use.

Dependency flow DAX comparison
Gross Margin % with upstream and downstream measure dependencies Gross Margin % and Gross Profit formulas beside their dependency graph

Measures guide · Table and column dependencies · Watch a 35-second workflow

Follow Power Query flows and read M

Explore queries, parameters, functions, and table partitions as inputs and consumers. Trace upstream or downstream, filter the inventory, and inspect a query without losing the flow target. Read line-numbered M beside the graph or in the full query reader, copy the exact definition, jump through resolved references, and use Back to retrace your steps. Missing definitions, unresolved references, and analysis limitations remain visible.

Query input flow M and query details
Parameters and source queries feeding StageSales StageSales flow beside its inputs, consumer, and M expression

Power Query guide

See the whole model with Domains and Matrix

Use Domains to explore groups of related tables and their connections, expanding groups when you need more detail. Use Matrix to compare fact tables against their related tables and spot shared dimensions, multiple relationships, and filter behavior.

Domain map Relationship matrix
Eleven Contoso Retail domains and the connections between them Fact tables and related tables in the relationship matrix

Domains and Matrix guide

Share an interactive model, without installing the Viewer

Choose Save snapshot to export one HTML file that your colleague opens in a desktop browser. They can explore the model, compare formulas, change the layout, and save another snapshot without a model connection, installation, or internet access. Your saved views, presentation, DAX, and available Power Query definitions travel with the file.

A focused canvas still exports the full model metadata, including DAX and available M. Endpoint strings and parameter values written in M are included. Share the file with people who should see those definitions.

Snapshot sharing guide

Fit the Viewer into your workflow

Use the browser, repository launchers, or VS Code extension. Switch between Classic and Spellbook appearances in the browser app, and preserve the chosen presentation in interactive snapshots. The snapshot CLI can export an offline model view from TMDL without opening a browser. Agents can also capture annotated views and build walkthroughs with imported numbers, transparent calculations, and proposed changes; see visual explanations. Image capture uses an installed Chrome/Chromium; snapshot export still needs no browser. The interactive agent workflow opens focused Tables and Measures views in the integrated browser, reuses a live session for follow-up questions, reads selections, and exports acknowledged viewer state. MCP is optional.

The searchable Reference workspace, Claude Code plugin, and agent-authored visual explanations are in development. They are separate from the stable features shown above. The portable Windows build is also prepared locally; see the download status before choosing that route.

Dependency analysis is static. The Viewer does not execute DAX or M or fetch source data; links it cannot resolve remain explicit. See the viewer guide for workflows and limitations.

Documentation

I want to… Guide
Browse recordings, PDF walkthroughs, and learning materials Learning library
Install, update, or open my own model Installation and troubleshooting
Explore the views and see more screenshots Viewer guide
Share a portable model Interactive snapshots
Export a snapshot from the command line CLI
Connect to a Fabric workspace (preview) Fabric connection
Drive the Viewer from an agent Interactive viewer · Visual explanations
Understand data handling Security and privacy
Develop or contribute Developer guide · Contributing

Related tools

Semantic Model Cleaner helps review apparently unused model items across selected PBIR reports and apply local cleanup actions. Use the Viewer to understand a model and the Cleaner to review cleanup opportunities. See the Cleaner repository for its beta status, setup, and analysis limitations.

Model Alchemist compares two Power BI semantic models in TMDL format, shows object-level differences, and lets you deploy selected changes to a local model or Microsoft Fabric. Use it to review differences between model versions and promote chosen changes.

Feedback and contributing

Report a bug or suggest a feature. Use the synthetic demo or a small made-up model in public reports. For code contributions, read CONTRIBUTING; report security issues privately.

Built and maintained by Przemek Harazny (@MrPerfectH) as a personal open-source project. Released under the MIT License. Demo models and screenshots use synthetic data.

The bundled agent delivery candidate adds native VS Code tools and complete Claude Code/Codex packages with private runtimes. Source-only Git payloads retain an explicit Node requirement until complete artifacts are published.

About

Interactive viewer for Power BI semantic models (TMDL): table canvas, relationship matrix, measure dependency flow. Installable web app + VS Code extension.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

15 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages