Vizro is a low-code toolkit for building high-quality data visualization apps.
> /plugin marketplace add mckinsey/vizro> /plugin install vizro-e2e-flow@vizro-marketplace
Repo: mckinsey/vizro
What's inside
Vizro is an open-source Python-based toolkit.
Use it to build beautiful and powerful data visualization apps quickly and easily, without needing advanced engineering or visual design expertise.
Then customize and deploy your app to production at scale.
In just a few lines of simple low-code configuration, with in-built visual design best practices, you can quickly assemble high-quality, multi-page prototypes, that are production-ready.
Every Vizro app is defined by a simple configuration, using these high-level categories:
Configuration can be written in multiple formats including Pydantic models, JSON, YAML or Python dictionaries for added flexibility of implementation.
Optional high-code extensions enable almost infinite customization in a modular way, combining the best of low-code and high-code - including bespoke visual formatting and custom components.
Visit the "How-to guides" for a more detailed explanation of Vizro features.
The benefits of the Vizro toolkit include:
Vizro helps you to build data visualization apps that are:
Quick and easy
Build apps in minutes. Use a few lines of simple configuration (via Pydantic models, JSON, YAML, or Python dictionaries) in place of thousands of lines of code.
Beautiful and powerful
Build high-quality multi-page apps without needing advanced engineering or visual design expertise. Use powerful features of production-grade BI tools, with in-built visual design best practices.
Flexible
Benefit from the capabilities and flexibility of open-source packages. Use the trusted dependencies of Plotly, Dash, and Pydantic.
Customizable
Almost infinite control for advanced users. Use Python, JavaScript, HTML and CSS code extensions.
Scalable
Rapidly prototype and deploy to production. Use the in-built production-grade capabilities of Plotly, Dash and Pydantic.
Visit "Why should I use Vizro?" for a more detailed explanation of Vizro use cases.
Use Vizro when you need to combine the speed and ease of low-code Python tools, with production capabilities of JavaScript and BI tools, and the freedom of open source:
Explore a few live demos to see different Vizro dashboards in action:
Browse the full Vizro Gallery for more examples.
Low-code framework for building dashboards.
The Vizro framework underpins the entire Vizro toolkit. It is a Python package (called vizro).
Visit the documentation for more details.
Chart examples.
The visual vocabulary helps you to decide which chart type to use for your requirements, and offers sample code to create these charts with Plotly or embed them into a Vizro dashboard.
Visit the visual vocabulary to search for charts or get inspiration.
A Model Context Protocol (MCP) server for Vizro.
Vizro-MCP works alongside an LLM to help you create Vizro dashboards and charts. It provides tools and templates to create a functioning Vizro chart or dashboard step-by-step.
Compatible with MCP-enabled LLM clients such as Cursor or Claude Desktop.
Use LLMs to generate charts and dashboards.
Vizro-AI dashboard generation is no longer actively developed and is superseded by Vizro-MCP. Vizro-AI supports only chart generation from version 0.4.0.
Vizro-AI is a separate package (called vizro_ai) that extends Vizro to incorporate LLMs. Use it to build interactive Vizro charts and dashboards, by simply describing what you need in plain English or other languages.
Visit the Vizro-AI documentation for more details.
pip install vizro
See the installation guide for more information.
The get started documentation explains how to create your first dashboard.
If you are an AI agent or LLM building Vizro apps, start with the Vizro for LLMs cheatsheet โ a single-page reference covering the minimum runnable app, model index, action index, @capture decorator matrix, and top errors with fixes. The llms.txt file provides a machine-readable index of the full documentation, and every documentation page returns clean Markdown when fetched with the Accept: text/markdown request header.
This repository is a monorepo containing the following packages:
| Folder | Version | Documentation |
|---|---|---|
| vizro-core | Vizro Docs | |
| vizro-ai | Vizro-AI Docs | |
| vizro-mcp | Vizro-MCP Docs |
We encourage you to ask and discuss any technical questions via the GitHub Issues. This is also the place where you can submit bug reports or request new features.
The contributing guide explains how you can contribute to Vizro.
You can also view current and former contributors here.
See our security policy.
vizro is distributed under the terms of the Apache License 2.0.
.claude-plugin/
marketplace.json
.devcontainer/
devcontainer.json
Dockerfile
install-hatch.sh
.github/
actions/
ctrf-report/
action.yml
failed-artifacts-and-slack-notifications/
action.yml
dependabot.yml
images/
basic_dashboard.png
bi_dashboard.png
call_center_dashboard.png
code_dashboard.png
features_dashboard.png
gapminder_example.png
huggingface_collection.png
infographic.svg
kpi_dashboard.png
logo_watermarks.svg
toolkit_dashboard_examples.png
toolkit_framework.svg
toolkit_visual_vocabulary.png
toolkit_vizro_ai_fallback.png
toolkit_vizro_ai.gif
visual_vocabulary.png
Vizro_Github_Banner_Dark_Mode.png
Vizro_Github_Banner_Light_Mode.png
vizro_spash_teaser_fallback.png
vizro_spash_teaser.gif
vizro-mcp.gif
ISSUE_TEMPLATE/
bug-report.yml
config.yml
feature-request.yml
general-question.yml
labeler.yml
pull_request_template.md
workflows/
build-vizro-whl.yml
checks-vizro-ai.yml
checks-vizro-core.yml
checks-vizro-dash-components.yml
checks-vizro-e2e-flow.yml
checks-vizro-experimental.yml
checks-vizro-mcp.yml
checks-workflows.yml
docs-link-checker.yml
github-repo-stats.yml
labeler.yml
lint-vizro-all.yml
pycafe-dashboards.yml
pycafe-docs-links.yml
release-if-needed.yml
release-vizro-e2e-flow.yml
test-e2e-component-library-vizro-core.yml
test-e2e-plot-vizro-ai.yml
test-e2e-vizro-dom-elements.yml
test-e2e-vizro-http-requests.yml
test-e2e-vizro-screenshots.yml
test-integration-browser-vizro-chat-component.yml
test-integration-vizro-chat-component.yml
test-integration-vizro-chat-popup.yml
test-integration-vizro-core.yml
test-unit-vizro-ai.yml
test-unit-vizro-chat-component.yml
test-unit-vizro-core-js.yml
test-unit-vizro-core.yml
test-unit-vizro-mcp.yml
test-vizro-dash-components.yml
update-static-files.yml
.gitignore
.pre-commit-config.yaml
.stylelintrc
.vale/
.vale.ini
styles/
Microsoft/
Accessibility.yml
Acronyms.yml
Adverbs.yml
AMPM.yml
Auto.yml
Avoid.yml
ComplexWords.yml
Dashes.yml
DateFormat.yml
DateNumbers.yml
DateOrder.yml
FirstPerson.yml
Foreign.yml
Gender.yml
GenderBias.yml
HeadingColons.yml
HeadingPunctuation.yml
Headings.yml
Hyphens.yml
ignore-names.txt
ignore.txt
meta.json
Negative.yml
Ordinal.yml
OxfordComma.yml
Percentages.yml
RangeTime.yml
SentenceLength.yml
Spacing.yml
Spellings.yml
Suspended.yml
Terms.yml
Units.yml
URLFormat.yml
VizroCapitals.yml
Vocab.yml
Wordiness.yml
Readability/
AutomatedReadability.yml
ColemanLiau.yml
FleschKincaid.yml
FleschReadingEase.yml
GunningFog.yml
LIX.yml
meta.json
SMOG.yml
vale/
Annotations.yml
Editorializing.yml
Hedging.yml
Litotes.yml
Redundancy.yml
Uncomparables.yml
AGENTS.md
biome.json
CLAUDE.md
CODE_OF_CONDUCT.md
CODEOWNERS
CONTRIBUTING.md
LICENSE.txt
pyproject.toml
README.md
SECURITY.md
tools/
check_package_release.py
check_vizro_docs_links_in_mcp_prompts.py
extract_release_notes.py
pycafe/
create_pycafe_links_comments.py
docs_links_filtering.sh
pycafe_utils.py
test_pycafe_generated_links.py
test_pycafe_predefined_links.py
release.sh
scan_yaml_for_risky_text.py
stamp_llms_txt.py
vizro-ai/
.readthedocs.yaml
changelog.d/
20260702_115140_lingyi_zhang_0_4_1.md
20260702_161445_runner.md
20260804_140000_nadijagraca_deprecate_vizro_ai_warning.md
new_fragment.md.j2
scriv.ini
CHANGELOG.md
DEPRECATION.md
docs/
assets/
images/
favicon.png
tutorials/
chart/
tutorial_1.png
user_guides/
chart_agent_1.png
chart_into_dashboard_large.png
vizro_insert_1.png
VizroAINewData.png
VizroAIPlotly.png
VizroAIVizro.png
images/
favicon/
favicon.png
index.md
llms.txt
overrides/
canonical_tag.py
main.html
partials/
tabs-item.html
pages/
API-reference/
vizro-ai.md
explanation/
disclaimer.md
faq.md
safeguard.md
safety-in-vizro-ai.md
tutorials/
quickstart.md
user-guides/
add-generated-chart-usecase.md
advanced-options.md
customize-vizro-ai.md
install.md
stylesheets/
extra.css
examples/
example.ipynb
example.py
pyproject.toml
hatch.toml
LICENSE.txt
pyproject.toml
README.md
src/
vizro_ai/
__init__.py
agents/
__init__.py
_chart_agent.py
_utils/
__init__.py
_constants.py
_safeguard.py
response_models/
__init__.py
_response_models.py
tests/
.gitkeep
e2e/
conftest.py
test_chart_agent.py
unit/
vizro-ai/
agents/
response_models/
test_response_model.py
test_chart_agent.py
utils/
test_safeguard_code.py
test_init.py
zensical.toml
vizro-core/
.readthedocs.yaml
AGENTS.md
changelog.d/
20260730_110736_runner.md
20260730_113551_petar_pejovic_0_1_60.md
new_fragment.md.j2
scriv.ini
CHANGELOG.md
CLAUDE.md
docs/
assets/
images/
vizro_logo.svg
tutorials/
actions/
01_action.png
02_action.gif
03_action.png
04_action.gif
05_action.gif
06_action.gif
07_action.gif
08_action.gif
09_action.gif
collections.svg
dashboard/
00-dashboard-final.png
01-first-page-button.png
01-first-page-layout.png
01-first-page.png
02-second-page.png
03-second-page-kpi.png
04-second-page-tabs.png
05-second-page-layout.png
06-second-page-controls.png
07-third-page.png
08-third-page-layout.png
09-third-page-parameter.png
10-third-page-custom-chart.png
11-dashboard-title-logo.png
12-dashboard-navigation.png
first-dashboard.png
vizro-mcp.gif
vizro-tutorial.gif
features.svg
user_guides/
actions/
actions_export.png
custom-actions1.png
custom-actions2.png
custom-actions3.png
custom-actions4.png
assets/
css_change_card.png
css_change.png
css_page_title.png
logo-dark.png
logo-light.png
components/
actions-card-trigger.gif
africa.svg
button_style_extra.png
button_style_variants.png
button_text.png
button_tooltip.png
button-with-an-icon.png
button.png
card_header_footer.png
card_icon.png
card_image_default.png
card_image_floating.png
card_image_styled.png
card_info_icon.png
card_text.png
card.png
cardstyle.png
collapsible-containers-flex.gif
collapsible-containers-grid.gif
container_with_background.png
container-info-icon.png
container-styled.gif
container-with-controls.png
containers.png
formatted_aggrid.png
formatted_graph.png
formatted_table.png
graph_with_extra.png
graph.png
hypotheses.svg
nav_card.png
nested_containers.png
responsive_icon.gif
tabs-info-icon.png
tabs-info.png
tabs.png
text_extra.png
text_markdown.png
text.png
conditional_notifications_actions/
custom_notification_keys.gif
customized_notification.gif
dynamic_progress_text.gif
progress_success_error_notification.gif
templated_notifications.gif
control/
control_group.png
control1.png
control2.png
control3.png
control4.png
control5.png
controls_defaults.png
custom_charts/
custom_chart_enhanced_scatter.png
custom_chart_showcase_parameter.gif
custom_chart_waterfall.png
custom_components/
custom-components0.png
custom-components1.png
custom-components2.png
custom-components3.png
custom-components4.png
custom_css/
font-change.png
highlighted-element.png
inspect-icon.png
inspect-panel.png
logo-position.png
temporary-changes.png
dashboard/
custom_header_area.png
dashboard_custom_header.png
dashboard_with_info_icon.png
dashboard_with_logo.png
dashboard.png
data/
data_pandas_dataframe.png
dynamic_data.gif
dynamic_filter.gif
iris.csv
parametrized_dynamic_data.gif
figure/
custom_html.png
custom_kpi.png
custom_multiple_cards.png
figure.png
kpi_cards.png
filters/
hierarchical_filter.gif
graph_table_actions/
cross_filter_between_containers.gif
cross_filter_between_pages.gif
cross_filter_from_graph_1.gif
cross_filter_from_graph_2.gif
... 1391 moreFAQ
vizro is a Claude Code plugin with 6 hand-picked skills for data work, indexed on Flowy. Install it with the command on its page. It includes dashboard-build, dashboard-design, designing-vizro-layouts. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.