From a1f806849ef97de2a6d493fc7fb0017274226807 Mon Sep 17 00:00:00 2001 From: MinaSaad1 Date: Sun, 5 Apr 2026 22:44:48 +0200 Subject: [PATCH] chore: untrack marketing folder and unused assets from git Remove marketing/ directory (51 files) and 19 unused asset files that are not referenced in README.md from git tracking. Update .gitignore to prevent re-adding them. Only the 17 SVGs actually used in README are now tracked in assets/. --- .gitignore | 21 ++ assets/Claude_AI_symbol.svg | 7 - assets/New_Power_BI_Logo.svg | 36 -- assets/auto-sync-ai-v7a.png | 3 - assets/auto-sync-ai-v7b.png | 3 - assets/auto-sync-ai.png | 3 - assets/commands.svg | 347 ------------------ assets/cta-start.svg | 186 ---------- assets/dax-skill.svg | 202 ---------- assets/deploy-secure.svg | 267 -------------- assets/docs-diagnostics.svg | 226 ------------ assets/dual-layer.svg | 220 ----------- assets/feature-grid.svg | 230 ------------ assets/header.svg | 19 - assets/how-it-works.svg | 228 ------------ assets/modeling-skill.svg | 220 ----------- assets/release-vibe-bi.png | 3 - assets/release-vibe-bi.svg | 301 --------------- assets/token-cost.svg | 186 ---------- assets/workflow.svg | 244 ------------ marketing/generate_images.py | 187 ---------- marketing/images/architecture-flow.png | 3 - marketing/images/auto-sync.png | 3 - marketing/images/backup-restore.png | 3 - marketing/images/before-after.png | 3 - marketing/images/bulk-operations.png | 3 - marketing/images/chat-demo-report.png | 3 - marketing/images/chat-demo.png | 3 - marketing/images/commands.png | 3 - marketing/images/cta-start.png | 3 - marketing/images/dax-debugging.png | 3 - marketing/images/dax-skill.png | 3 - marketing/images/deploy-secure.png | 3 - marketing/images/docs-diagnostics.png | 3 - marketing/images/dual-layer.png | 3 - marketing/images/feature-grid.png | 3 - marketing/images/how-it-works.png | 3 - marketing/images/layers.png | 3 - marketing/images/model-health-check.png | 3 - marketing/images/modeling-skill.png | 3 - marketing/images/release-vibe-bi.png | 3 - marketing/images/report-layer.png | 3 - marketing/images/report-workflow.png | 3 - marketing/images/rls-testing.png | 3 - marketing/images/skills-hub.png | 3 - marketing/images/stats.png | 3 - marketing/images/token-cost.png | 3 - marketing/images/visual-types.png | 3 - marketing/images/workflow.png | 3 - .../linkedin-posts/01-carousel-overview.md | 24 -- marketing/linkedin-posts/02-why-pbi-cli.md | 27 -- marketing/linkedin-posts/03-token-cost.md | 24 -- marketing/linkedin-posts/04-how-it-works.md | 25 -- marketing/linkedin-posts/05-chat-demo.md | 29 -- .../linkedin-posts/06-bulk-operations.md | 30 -- marketing/linkedin-posts/07-dax-skill.md | 26 -- marketing/linkedin-posts/08-dax-debugging.md | 26 -- marketing/linkedin-posts/09-model-health.md | 25 -- marketing/linkedin-posts/10-modeling-skill.md | 26 -- marketing/linkedin-posts/11-backup-restore.md | 26 -- marketing/linkedin-posts/12-rls-testing.md | 23 -- marketing/linkedin-posts/13-deploy-secure.md | 27 -- .../linkedin-posts/14-docs-diagnostics.md | 21 -- marketing/linkedin-posts/15-architecture.md | 25 -- marketing/linkedin-posts/16-feature-scope.md | 31 -- marketing/linkedin-posts/17-cta-start.md | 22 -- marketing/linkedin-posts/18-promo-video.md | 19 - .../19-release-vibe-bi-comments.md | 107 ------ .../linkedin-posts/19-release-vibe-bi.md | 30 -- marketing/linkedin-posts/20-auto-sync.md | 26 -- marketing/linkedin-posts/README.md | 66 ---- 71 files changed, 21 insertions(+), 3887 deletions(-) delete mode 100644 assets/Claude_AI_symbol.svg delete mode 100644 assets/New_Power_BI_Logo.svg delete mode 100644 assets/auto-sync-ai-v7a.png delete mode 100644 assets/auto-sync-ai-v7b.png delete mode 100644 assets/auto-sync-ai.png delete mode 100644 assets/commands.svg delete mode 100644 assets/cta-start.svg delete mode 100644 assets/dax-skill.svg delete mode 100644 assets/deploy-secure.svg delete mode 100644 assets/docs-diagnostics.svg delete mode 100644 assets/dual-layer.svg delete mode 100644 assets/feature-grid.svg delete mode 100644 assets/header.svg delete mode 100644 assets/how-it-works.svg delete mode 100644 assets/modeling-skill.svg delete mode 100644 assets/release-vibe-bi.png delete mode 100644 assets/release-vibe-bi.svg delete mode 100644 assets/token-cost.svg delete mode 100644 assets/workflow.svg delete mode 100644 marketing/generate_images.py delete mode 100644 marketing/images/architecture-flow.png delete mode 100644 marketing/images/auto-sync.png delete mode 100644 marketing/images/backup-restore.png delete mode 100644 marketing/images/before-after.png delete mode 100644 marketing/images/bulk-operations.png delete mode 100644 marketing/images/chat-demo-report.png delete mode 100644 marketing/images/chat-demo.png delete mode 100644 marketing/images/commands.png delete mode 100644 marketing/images/cta-start.png delete mode 100644 marketing/images/dax-debugging.png delete mode 100644 marketing/images/dax-skill.png delete mode 100644 marketing/images/deploy-secure.png delete mode 100644 marketing/images/docs-diagnostics.png delete mode 100644 marketing/images/dual-layer.png delete mode 100644 marketing/images/feature-grid.png delete mode 100644 marketing/images/how-it-works.png delete mode 100644 marketing/images/layers.png delete mode 100644 marketing/images/model-health-check.png delete mode 100644 marketing/images/modeling-skill.png delete mode 100644 marketing/images/release-vibe-bi.png delete mode 100644 marketing/images/report-layer.png delete mode 100644 marketing/images/report-workflow.png delete mode 100644 marketing/images/rls-testing.png delete mode 100644 marketing/images/skills-hub.png delete mode 100644 marketing/images/stats.png delete mode 100644 marketing/images/token-cost.png delete mode 100644 marketing/images/visual-types.png delete mode 100644 marketing/images/workflow.png delete mode 100644 marketing/linkedin-posts/01-carousel-overview.md delete mode 100644 marketing/linkedin-posts/02-why-pbi-cli.md delete mode 100644 marketing/linkedin-posts/03-token-cost.md delete mode 100644 marketing/linkedin-posts/04-how-it-works.md delete mode 100644 marketing/linkedin-posts/05-chat-demo.md delete mode 100644 marketing/linkedin-posts/06-bulk-operations.md delete mode 100644 marketing/linkedin-posts/07-dax-skill.md delete mode 100644 marketing/linkedin-posts/08-dax-debugging.md delete mode 100644 marketing/linkedin-posts/09-model-health.md delete mode 100644 marketing/linkedin-posts/10-modeling-skill.md delete mode 100644 marketing/linkedin-posts/11-backup-restore.md delete mode 100644 marketing/linkedin-posts/12-rls-testing.md delete mode 100644 marketing/linkedin-posts/13-deploy-secure.md delete mode 100644 marketing/linkedin-posts/14-docs-diagnostics.md delete mode 100644 marketing/linkedin-posts/15-architecture.md delete mode 100644 marketing/linkedin-posts/16-feature-scope.md delete mode 100644 marketing/linkedin-posts/17-cta-start.md delete mode 100644 marketing/linkedin-posts/18-promo-video.md delete mode 100644 marketing/linkedin-posts/19-release-vibe-bi-comments.md delete mode 100644 marketing/linkedin-posts/19-release-vibe-bi.md delete mode 100644 marketing/linkedin-posts/20-auto-sync.md delete mode 100644 marketing/linkedin-posts/README.md diff --git a/.gitignore b/.gitignore index e6e6aad..daf20cb 100644 --- a/.gitignore +++ b/.gitignore @@ -42,3 +42,24 @@ demo.SemanticModel/ demo.pbip pbir_desktop_test/ "pbib examples/" + +# Marketing assets (local only, not for GitHub) +marketing/ + +# Assets not referenced in README +assets/*.png +assets/Claude_AI_symbol.svg +assets/New_Power_BI_Logo.svg +assets/commands.svg +assets/cta-start.svg +assets/dax-skill.svg +assets/deploy-secure.svg +assets/docs-diagnostics.svg +assets/dual-layer.svg +assets/feature-grid.svg +assets/header.svg +assets/how-it-works.svg +assets/modeling-skill.svg +assets/release-vibe-bi.svg +assets/token-cost.svg +assets/workflow.svg diff --git a/assets/Claude_AI_symbol.svg b/assets/Claude_AI_symbol.svg deleted file mode 100644 index 879ad81..0000000 --- a/assets/Claude_AI_symbol.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/assets/New_Power_BI_Logo.svg b/assets/New_Power_BI_Logo.svg deleted file mode 100644 index d7ab042..0000000 --- a/assets/New_Power_BI_Logo.svg +++ /dev/null @@ -1,36 +0,0 @@ - - - - PBI Logo - Created with Sketch. - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/auto-sync-ai-v7a.png b/assets/auto-sync-ai-v7a.png deleted file mode 100644 index beb9add..0000000 --- a/assets/auto-sync-ai-v7a.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cd0accbfe5f058a692937540f456a1010e2fa82f60089949e52d3c4999d8c401 -size 17179306 diff --git a/assets/auto-sync-ai-v7b.png b/assets/auto-sync-ai-v7b.png deleted file mode 100644 index 394b2e9..0000000 --- a/assets/auto-sync-ai-v7b.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:173d00d74c9e4bebb2f957b84562b62155b0c0a42081f81be425f3d3c4dcf628 -size 16253073 diff --git a/assets/auto-sync-ai.png b/assets/auto-sync-ai.png deleted file mode 100644 index c372baf..0000000 --- a/assets/auto-sync-ai.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:21eeb1a24d1a8d59ff0e4a8903dd7e7f864e01c715420012417e010395c90005 -size 17077876 diff --git a/assets/commands.svg b/assets/commands.svg deleted file mode 100644 index 2442364..0000000 --- a/assets/commands.svg +++ /dev/null @@ -1,347 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ██╗ ██╗ ██╗ ██████╗ ███████╗ ██████╗ ██╗ - ██║ ██║ ██║ ██╔══██╗ ██╔════╝ ██╔══██╗ ██║ - ██║ ██║ ██║ ██████╔╝ █████╗ ██████╔╝ ██║ - ╚██╗ ██╔╝ ██║ ██╔══██╗ ██╔══╝ ██╔══██╗ ██║ - ╚████╔╝ ██║ ██████╔╝ ███████╗ ██████╔╝ ██║ - ╚═══╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ - - - - ██╗ ██╗ ██╗ ██████╗ ███████╗ ██████╗ ██╗ - ██║ ██║ ██║ ██╔══██╗ ██╔════╝ ██╔══██╗ ██║ - ██║ ██║ ██║ ██████╔╝ █████╗ ██████╔╝ ██║ - ╚██╗ ██╔╝ ██║ ██╔══██╗ ██╔══╝ ██╔══██╗ ██║ - ╚████╔╝ ██║ ██████╔╝ ███████╗ ██████╔╝ ██║ - ╚═══╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ - - - - - - - The First CLI for Both Power BI Modeling and Reporting - - - - - - - - Claude Code - - - - - - - - ██████╗ ██████╗ ██╗ ██████╗ ██╗ ██╗ - ██╔══██╗ ██╔══██╗ ██║ ██╔════╝ ██║ ██║ - ██████╔╝ ██████╔╝ ██║ ███╗ ██║ ██║ ██║ - ██╔═══╝ ██╔══██╗ ██║ ╚══╝ ██║ ██║ ██║ - ██║ ██████╔╝ ██║ ╚██████╗ ███████╗ ██║ - ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ - - - - ██████╗ ██████╗ ██╗ ██████╗ ██╗ ██╗ - ██╔══██╗ ██╔══██╗ ██║ ██╔════╝ ██║ ██║ - ██████╔╝ ██████╔╝ ██║ ███╗ ██║ ██║ ██║ - ██╔═══╝ ██╔══██╗ ██║ ╚══╝ ██║ ██║ ██║ - ██║ ██████╔╝ ██║ ╚██████╗ ███████╗ ██║ - ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ - - - - - - - - - - - - - - - Power BI - - - - Modeling - + - - Reporting - - - - - - - - - - - - - - - - - pbi-cli -- command showcase - - - - - - - MODELING - - REPORTING - - - - - - - - - - - - - $ - pbi-cli - model export - - - $ - pbi-cli - dax run - - - $ - pbi-cli - dax add-measure - - - $ - pbi-cli - table list - - - $ - pbi-cli - relationship list - - - $ - pbi-cli - model import - - - - - $ - pbi-cli - report add-visual - - - $ - pbi-cli - report bind-data - - - $ - pbi-cli - report add-page - - - $ - pbi-cli - report list-visuals - - - $ - pbi-cli - report update-theme - - - $ - pbi-cli - report export - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $_ - - 30+ commands - - - - - - - - - Both layers - - - - - - - - AI-native - - - pipx install pbi-cli-tool - - - \ No newline at end of file diff --git a/assets/cta-start.svg b/assets/cta-start.svg deleted file mode 100644 index dcf9508..0000000 --- a/assets/cta-start.svg +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ██╗ ██╗ ██╗ ██████╗ ███████╗ ██████╗ ██╗ - ██║ ██║ ██║ ██╔══██╗ ██╔════╝ ██╔══██╗ ██║ - ██║ ██║ ██║ ██████╔╝ █████╗ ██████╔╝ ██║ - ╚██╗ ██╔╝ ██║ ██╔══██╗ ██╔══╝ ██╔══██╗ ██║ - ╚████╔╝ ██║ ██████╔╝ ███████╗ ██████╔╝ ██║ - ╚═══╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ - - - - ██╗ ██╗ ██╗ ██████╗ ███████╗ ██████╗ ██╗ - ██║ ██║ ██║ ██╔══██╗ ██╔════╝ ██╔══██╗ ██║ - ██║ ██║ ██║ ██████╔╝ █████╗ ██████╔╝ ██║ - ╚██╗ ██╔╝ ██║ ██╔══██╗ ██╔══╝ ██╔══██╗ ██║ - ╚████╔╝ ██║ ██████╔╝ ███████╗ ██████╔╝ ██║ - ╚═══╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ - - - - - - - The First CLI for Both Power BI Modeling and Reporting - - - - - - - - Claude Code - - - - - - - - ██████╗ ██████╗ ██╗ ██████╗ ██╗ ██╗ - ██╔══██╗ ██╔══██╗ ██║ ██╔════╝ ██║ ██║ - ██████╔╝ ██████╔╝ ██║ ███╗ ██║ ██║ ██║ - ██╔═══╝ ██╔══██╗ ██║ ╚══╝ ██║ ██║ ██║ - ██║ ██████╔╝ ██║ ╚██████╗ ███████╗ ██║ - ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ - - - - ██████╗ ██████╗ ██╗ ██████╗ ██╗ ██╗ - ██╔══██╗ ██╔══██╗ ██║ ██╔════╝ ██║ ██║ - ██████╔╝ ██████╔╝ ██║ ███╗ ██║ ██║ ██║ - ██╔═══╝ ██╔══██╗ ██║ ╚══╝ ██║ ██║ ██║ - ██║ ██████╔╝ ██║ ╚██████╗ ███████╗ ██║ - ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ - - - - - - - - - - - - - - - Power BI - - - - Modeling - + - - Reporting - - - - - - - - - - - - Start Vibe Modeling - - - Two commands to transform your Power BI workflow - - - - - - - $ - pipx install pbi-cli-tool - - - - - - - - - - - $ - pbi connect - - - - - ✔ Connected! 7 skills installed. - - - - - - - - - - in - - @minasaad1 - - - - mina-saad.com - - - github.com/MinaSaad1/pbi-cli - - - Open source. MIT License. Star it on GitHub. - - - Like this? Share it with your Power BI team. - - - \ No newline at end of file diff --git a/assets/dax-skill.svg b/assets/dax-skill.svg deleted file mode 100644 index 238f9f4..0000000 --- a/assets/dax-skill.svg +++ /dev/null @@ -1,202 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ██╗ ██╗ ██╗ ██████╗ ███████╗ ██████╗ ██╗ - ██║ ██║ ██║ ██╔══██╗ ██╔════╝ ██╔══██╗ ██║ - ██║ ██║ ██║ ██████╔╝ █████╗ ██████╔╝ ██║ - ╚██╗ ██╔╝ ██║ ██╔══██╗ ██╔══╝ ██╔══██╗ ██║ - ╚████╔╝ ██║ ██████╔╝ ███████╗ ██████╔╝ ██║ - ╚═══╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ - - - - ██╗ ██╗ ██╗ ██████╗ ███████╗ ██████╗ ██╗ - ██║ ██║ ██║ ██╔══██╗ ██╔════╝ ██╔══██╗ ██║ - ██║ ██║ ██║ ██████╔╝ █████╗ ██████╔╝ ██║ - ╚██╗ ██╔╝ ██║ ██╔══██╗ ██╔══╝ ██╔══██╗ ██║ - ╚████╔╝ ██║ ██████╔╝ ███████╗ ██████╔╝ ██║ - ╚═══╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ - - - - - - - The First CLI for Both Power BI Modeling and Reporting - - - - - - - - Claude Code - - - - - - - - ██████╗ ██████╗ ██╗ ██████╗ ██╗ ██╗ - ██╔══██╗ ██╔══██╗ ██║ ██╔════╝ ██║ ██║ - ██████╔╝ ██████╔╝ ██║ ███╗ ██║ ██║ ██║ - ██╔═══╝ ██╔══██╗ ██║ ╚══╝ ██║ ██║ ██║ - ██║ ██████╔╝ ██║ ╚██████╗ ███████╗ ██║ - ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ - - - - ██████╗ ██████╗ ██╗ ██████╗ ██╗ ██╗ - ██╔══██╗ ██╔══██╗ ██║ ██╔════╝ ██║ ██║ - ██████╔╝ ██████╔╝ ██║ ███╗ ██║ ██║ ██║ - ██╔═══╝ ██╔══██╗ ██║ ╚══╝ ██║ ██║ ██║ - ██║ ██████╔╝ ██║ ╚██████╗ ███████╗ ██║ - ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ - - - - - - - - - - - - - - - Power BI - - - - Modeling - + - - Reporting - - - - - - - - - - - - DAX Skill - Ask questions about your data in plain English - - - - - - - - - - - - - - - - Claude Code - - - - What are the top 5 products by revenue? - - - - Querying your model... - - - - EVALUATE TOPN(5, Products, [Revenue], DESC) - - - - Here are your results: - - - Product - Revenue - - - - - - Adventure Touring Bike - $423,000 - - - Mountain Pro Series - $312,500 - - - Road Elite Carbon - $287,200 - - - Urban Commuter X1 - $198,400 - - - Trail Explorer 500 - $156,800 - - - - Execute Queries - - - Validate Syntax - - - Format Results - - - From question to answer in seconds. No DAX syntax required. - - - \ No newline at end of file diff --git a/assets/deploy-secure.svg b/assets/deploy-secure.svg deleted file mode 100644 index a3ea720..0000000 --- a/assets/deploy-secure.svg +++ /dev/null @@ -1,267 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ██╗ ██╗ ██╗ ██████╗ ███████╗ ██████╗ ██╗ - ██║ ██║ ██║ ██╔══██╗ ██╔════╝ ██╔══██╗ ██║ - ██║ ██║ ██║ ██████╔╝ █████╗ ██████╔╝ ██║ - ╚██╗ ██╔╝ ██║ ██╔══██╗ ██╔══╝ ██╔══██╗ ██║ - ╚████╔╝ ██║ ██████╔╝ ███████╗ ██████╔╝ ██║ - ╚═══╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ - - - - ██╗ ██╗ ██╗ ██████╗ ███████╗ ██████╗ ██╗ - ██║ ██║ ██║ ██╔══██╗ ██╔════╝ ██╔══██╗ ██║ - ██║ ██║ ██║ ██████╔╝ █████╗ ██████╔╝ ██║ - ╚██╗ ██╔╝ ██║ ██╔══██╗ ██╔══╝ ██╔══██╗ ██║ - ╚████╔╝ ██║ ██████╔╝ ███████╗ ██████╔╝ ██║ - ╚═══╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ - - - - - - - The First CLI for Both Power BI Modeling and Reporting - - - - - - - - Claude Code - - - - - - - - ██████╗ ██████╗ ██╗ ██████╗ ██╗ ██╗ - ██╔══██╗ ██╔══██╗ ██║ ██╔════╝ ██║ ██║ - ██████╔╝ ██████╔╝ ██║ ███╗ ██║ ██║ ██║ - ██╔═══╝ ██╔══██╗ ██║ ╚══╝ ██║ ██║ ██║ - ██║ ██████╔╝ ██║ ╚██████╗ ███████╗ ██║ - ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ - - - - ██████╗ ██████╗ ██╗ ██████╗ ██╗ ██╗ - ██╔══██╗ ██╔══██╗ ██║ ██╔════╝ ██║ ██║ - ██████╔╝ ██████╔╝ ██║ ███╗ ██║ ██║ ██║ - ██╔═══╝ ██╔══██╗ ██║ ╚══╝ ██║ ██║ ██║ - ██║ ██████╔╝ ██║ ╚██████╗ ███████╗ ██║ - ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ - - - - - - - - - - - - - - - Power BI - - - - Modeling - + - - Reporting - - - - - - - - - - - - Deploy + Secure - Snapshot, restore, and lock down your model - - - - - - - - Deployment Skill - - - - TMDL - - - - - v1 Baseline - - - - - - - v2 + Measures - - - - - - - v3 + RLS - - - - Rollback - - - pbi database export-tmdl - pbi database import-tmdl - - - - - - - - - - - - - - Security Skill - - - - - - E - East - - - - W - West - - - - A - Admin - - - - - - - - - Filter - - - - - East data - - - - West data - - - - All data - - - [Region] = "East" - - - pbi security-role create - pbi security-role add-filter - - - - - - - - - - - - - - TMDL Export/Import - - - - Transaction Safety - - - - Role-Based Filters - - - - - - Version control your models. Secure them with one prompt. - - - \ No newline at end of file diff --git a/assets/docs-diagnostics.svg b/assets/docs-diagnostics.svg deleted file mode 100644 index bbdeb1e..0000000 --- a/assets/docs-diagnostics.svg +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ██╗ ██╗ ██╗ ██████╗ ███████╗ ██████╗ ██╗ - ██║ ██║ ██║ ██╔══██╗ ██╔════╝ ██╔══██╗ ██║ - ██║ ██║ ██║ ██████╔╝ █████╗ ██████╔╝ ██║ - ╚██╗ ██╔╝ ██║ ██╔══██╗ ██╔══╝ ██╔══██╗ ██║ - ╚████╔╝ ██║ ██████╔╝ ███████╗ ██████╔╝ ██║ - ╚═══╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ - - - - ██╗ ██╗ ██╗ ██████╗ ███████╗ ██████╗ ██╗ - ██║ ██║ ██║ ██╔══██╗ ██╔════╝ ██╔══██╗ ██║ - ██║ ██║ ██║ ██████╔╝ █████╗ ██████╔╝ ██║ - ╚██╗ ██╔╝ ██║ ██╔══██╗ ██╔══╝ ██╔══██╗ ██║ - ╚████╔╝ ██║ ██████╔╝ ███████╗ ██████╔╝ ██║ - ╚═══╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ - - - - - - - The First CLI for Both Power BI Modeling and Reporting - - - - - - - - Claude Code - - - - - - - - ██████╗ ██████╗ ██╗ ██████╗ ██╗ ██╗ - ██╔══██╗ ██╔══██╗ ██║ ██╔════╝ ██║ ██║ - ██████╔╝ ██████╔╝ ██║ ███╗ ██║ ██║ ██║ - ██╔═══╝ ██╔══██╗ ██║ ╚══╝ ██║ ██║ ██║ - ██║ ██████╔╝ ██║ ╚██████╗ ███████╗ ██║ - ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ - - - - ██████╗ ██████╗ ██╗ ██████╗ ██╗ ██╗ - ██╔══██╗ ██╔══██╗ ██║ ██╔════╝ ██║ ██║ - ██████╔╝ ██████╔╝ ██║ ███╗ ██║ ██║ ██║ - ██╔═══╝ ██╔══██╗ ██║ ╚══╝ ██║ ██║ ██║ - ██║ ██████╔╝ ██║ ╚██████╗ ███████╗ ██║ - ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ - - - - - - - - - - - - - - - Power BI - - - - Modeling - + - - Reporting - - - - - - - - - - - - Docs + Diagnostics - Auto-document everything. Find bottlenecks instantly. - - - - Docs Skill - - - - Table - Column - Type - - - - Sales - Amount - Decimal - - Sales - OrderDate - DateTime - - Product - Name - String - - Product - Category - String - - Calendar - Date - DateTime - - ... 82 more columns - - - - - pbi model document - Generated complete data dictionary - - - - Diagnostics Skill - - - - - - Relationships OK - - - - No Circular Deps - - - - 3 Unused Measures - - - - Missing Date Table - - - - - Query Trace - SELECT ... FROM Sales - Duration: 2.4s - Recommendation: Add index - - - - - pbi trace start - - - - - Data Dictionary - - - - Query Tracing - - - - Health Check - - - Know your model inside out. Fix problems before they reach production. - - - \ No newline at end of file diff --git a/assets/dual-layer.svg b/assets/dual-layer.svg deleted file mode 100644 index 2a4d560..0000000 --- a/assets/dual-layer.svg +++ /dev/null @@ -1,220 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ██╗ ██╗ ██╗ ██████╗ ███████╗ ██████╗ ██╗ - ██║ ██║ ██║ ██╔══██╗ ██╔════╝ ██╔══██╗ ██║ - ██║ ██║ ██║ ██████╔╝ █████╗ ██████╔╝ ██║ - ╚██╗ ██╔╝ ██║ ██╔══██╗ ██╔══╝ ██╔══██╗ ██║ - ╚████╔╝ ██║ ██████╔╝ ███████╗ ██████╔╝ ██║ - ╚═══╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ - - - - ██╗ ██╗ ██╗ ██████╗ ███████╗ ██████╗ ██╗ - ██║ ██║ ██║ ██╔══██╗ ██╔════╝ ██╔══██╗ ██║ - ██║ ██║ ██║ ██████╔╝ █████╗ ██████╔╝ ██║ - ╚██╗ ██╔╝ ██║ ██╔══██╗ ██╔══╝ ██╔══██╗ ██║ - ╚████╔╝ ██║ ██████╔╝ ███████╗ ██████╔╝ ██║ - ╚═══╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ - - - - - - - The First CLI for Both Power BI Modeling and Reporting - - - - - - - - Claude Code - - - - - - - - ██████╗ ██████╗ ██╗ ██████╗ ██╗ ██╗ - ██╔══██╗ ██╔══██╗ ██║ ██╔════╝ ██║ ██║ - ██████╔╝ ██████╔╝ ██║ ███╗ ██║ ██║ ██║ - ██╔═══╝ ██╔══██╗ ██║ ╚══╝ ██║ ██║ ██║ - ██║ ██████╔╝ ██║ ╚██████╗ ███████╗ ██║ - ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ - - - - ██████╗ ██████╗ ██╗ ██████╗ ██╗ ██╗ - ██╔══██╗ ██╔══██╗ ██║ ██╔════╝ ██║ ██║ - ██████╔╝ ██████╔╝ ██║ ███╗ ██║ ██║ ██║ - ██╔═══╝ ██╔══██╗ ██║ ╚══╝ ██║ ██║ ██║ - ██║ ██████╔╝ ██║ ╚██████╗ ███████╗ ██║ - ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ - - - - - - - - - - - - - - - Power BI - - - - Modeling - + - - Reporting - - - - - - - - - - - - THE FIRST CLI FOR BOTH LAYERS - - - One CLI. Two Layers. Complete Control. - pbi-cli connects Claude Code to both your semantic model and your report design - - - - - - - - Semantic Model Layer - - - - - - - - - - Live .NET Connection - Direct TOM interop via pythonnet - - - - pbi measure create - - pbi dax execute - - pbi database export-tmdl - - pbi relationship create - - - - 7 Claude Skills - - - - - - Report Layer - - - - - NEW - - - - - - - - - - - PBIR File Operations - Read/write JSON, no connection - - - - pbi visual add --type bar - - pbi visual bind --category - - pbi filters add-topn --n 10 - - pbi report set-theme - - - - 5 Claude Skills - - - 27 command groups | 125+ subcommands | 32 visual types | 12 Claude skills - - - \ No newline at end of file diff --git a/assets/feature-grid.svg b/assets/feature-grid.svg deleted file mode 100644 index 5a12e79..0000000 --- a/assets/feature-grid.svg +++ /dev/null @@ -1,230 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ██╗ ██╗ ██╗ ██████╗ ███████╗ ██████╗ ██╗ - ██║ ██║ ██║ ██╔══██╗ ██╔════╝ ██╔══██╗ ██║ - ██║ ██║ ██║ ██████╔╝ █████╗ ██████╔╝ ██║ - ╚██╗ ██╔╝ ██║ ██╔══██╗ ██╔══╝ ██╔══██╗ ██║ - ╚████╔╝ ██║ ██████╔╝ ███████╗ ██████╔╝ ██║ - ╚═══╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ - - - - ██╗ ██╗ ██╗ ██████╗ ███████╗ ██████╗ ██╗ - ██║ ██║ ██║ ██╔══██╗ ██╔════╝ ██╔══██╗ ██║ - ██║ ██║ ██║ ██████╔╝ █████╗ ██████╔╝ ██║ - ╚██╗ ██╔╝ ██║ ██╔══██╗ ██╔══╝ ██╔══██╗ ██║ - ╚████╔╝ ██║ ██████╔╝ ███████╗ ██████╔╝ ██║ - ╚═══╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ - - - - - - - The First CLI for Both Power BI Modeling and Reporting - - - - - - - - Claude Code - - - - - - - - ██████╗ ██████╗ ██╗ ██████╗ ██╗ ██╗ - ██╔══██╗ ██╔══██╗ ██║ ██╔════╝ ██║ ██║ - ██████╔╝ ██████╔╝ ██║ ███╗ ██║ ██║ ██║ - ██╔═══╝ ██╔══██╗ ██║ ╚══╝ ██║ ██║ ██║ - ██║ ██████╔╝ ██║ ╚██████╗ ███████╗ ██║ - ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ - - - - ██████╗ ██████╗ ██╗ ██████╗ ██╗ ██╗ - ██╔══██╗ ██╔══██╗ ██║ ██╔════╝ ██║ ██║ - ██████╔╝ ██████╔╝ ██║ ███╗ ██║ ██║ ██║ - ██╔═══╝ ██╔══██╗ ██║ ╚══╝ ██║ ██║ ██║ - ██║ ██████╔╝ ██║ ╚██████╗ ███████╗ ██║ - ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ - - - - - - - - - - - - - - - Power BI - - - - Modeling - + - - Reporting - - - - - - - - - - - 22 Command Groups - Covering the full Tabular Object Model - - - - connect - Link to Power BI Desktop - - - dax - Execute and validate DAX queries - - - measure - Create, update, delete measures - - - table - Manage tables and schemas - - - - column - Add, rename, hide columns - - - relationship - Define table joins and cardinality - - - model - Model metadata and statistics - - - database - TMDL/TMSL import and export - - - - security-role - Row-level security roles - - - calc-group - Calculation groups and items - - - partition - Table partitions and refresh - - - perspective - User perspectives and views - - - - hierarchy - Column hierarchies and levels - - - expression - Named M/Power Query sources - - - calendar - Date table configuration - - - trace - Query tracing and profiling - - - - transaction - Atomic multi-step changes - - - advanced - Culture and locale settings - - - repl - Interactive DAX shell - - - skills - Claude Code AI skill packs - - - - disconnect - Close active connection - - - connections - Manage saved sessions - - - setup - Environment and DLL check - - - - 100+ Subcommands - Full TOM coverage - - - pbi <group> <command> [options] - - - \ No newline at end of file diff --git a/assets/header.svg b/assets/header.svg deleted file mode 100644 index e21bb45..0000000 --- a/assets/header.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - ██████╗ ██████╗ ██╗ ██████╗ ██╗ ██╗ - ██╔══██╗ ██╔══██╗ ██║ ██╔════╝ ██║ ██║ - ██████╔╝ ██████╔╝ ██║ ███╗ ██║ ██║ ██║ - ██╔═══╝ ██╔══██╗ ██║ ╚══╝ ██║ ██║ ██║ - ██║ ██████╔╝ ██║ ╚██████╗ ███████╗ ██║ - ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ - - - ██████╗ ██████╗ ██╗ ██████╗ ██╗ ██╗ - ██╔══██╗ ██╔══██╗ ██║ ██╔════╝ ██║ ██║ - ██████╔╝ ██████╔╝ ██║ ███╗ ██║ ██║ ██║ - ██╔═══╝ ██╔══██╗ ██║ ╚══╝ ██║ ██║ ██║ - ██║ ██████╔╝ ██║ ╚██████╗ ███████╗ ██║ - ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ - - diff --git a/assets/how-it-works.svg b/assets/how-it-works.svg deleted file mode 100644 index b5e0268..0000000 --- a/assets/how-it-works.svg +++ /dev/null @@ -1,228 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ██╗ ██╗ ██╗ ██████╗ ███████╗ ██████╗ ██╗ - ██║ ██║ ██║ ██╔══██╗ ██╔════╝ ██╔══██╗ ██║ - ██║ ██║ ██║ ██████╔╝ █████╗ ██████╔╝ ██║ - ╚██╗ ██╔╝ ██║ ██╔══██╗ ██╔══╝ ██╔══██╗ ██║ - ╚████╔╝ ██║ ██████╔╝ ███████╗ ██████╔╝ ██║ - ╚═══╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ - - - - ██╗ ██╗ ██╗ ██████╗ ███████╗ ██████╗ ██╗ - ██║ ██║ ██║ ██╔══██╗ ██╔════╝ ██╔══██╗ ██║ - ██║ ██║ ██║ ██████╔╝ █████╗ ██████╔╝ ██║ - ╚██╗ ██╔╝ ██║ ██╔══██╗ ██╔══╝ ██╔══██╗ ██║ - ╚████╔╝ ██║ ██████╔╝ ███████╗ ██████╔╝ ██║ - ╚═══╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ - - - - - - - The First CLI for Both Power BI Modeling and Reporting - - - - - - - - Claude Code - - - - - - - - ██████╗ ██████╗ ██╗ ██████╗ ██╗ ██╗ - ██╔══██╗ ██╔══██╗ ██║ ██╔════╝ ██║ ██║ - ██████╔╝ ██████╔╝ ██║ ███╗ ██║ ██║ ██║ - ██╔═══╝ ██╔══██╗ ██║ ╚══╝ ██║ ██║ ██║ - ██║ ██████╔╝ ██║ ╚██████╗ ███████╗ ██║ - ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ - - - - ██████╗ ██████╗ ██╗ ██████╗ ██╗ ██╗ - ██╔══██╗ ██╔══██╗ ██║ ██╔════╝ ██║ ██║ - ██████╔╝ ██████╔╝ ██║ ███╗ ██║ ██║ ██║ - ██╔═══╝ ██╔══██╗ ██║ ╚══╝ ██║ ██║ ██║ - ██║ ██████╔╝ ██║ ╚██████╗ ███████╗ ██║ - ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ - - - - - - - - - - - - - - - Power BI - - - - Modeling - + - - Reporting - - - - - - - - - - - - How It Works - - - Two commands. That is all. - - - - - - 1 - - - - - - - - - - - - - $ pipx install - pbi-cli-tool - ✓ Installed! - - - INSTALL - - One-line install via pipx - - - - - - - - - - 2 - - - - - - - - - - - - - $ pbi connect - Scanning for Power BI... - ✓ Connected to - Adventure Works - 7 skills installed - - - CONNECT - - Auto-detects Power BI Desktop - - - - - - - - - - 3 - - - - - - - Claude Code - - - - Create a date table - - - - Running: - pbi calendar generate - - - ✓ Date table created - - - CHAT - - Claude picks the right skill - - - - Claude auto-discovers 7 Power BI skills. No commands to memorize. - - - \ No newline at end of file diff --git a/assets/modeling-skill.svg b/assets/modeling-skill.svg deleted file mode 100644 index be22704..0000000 --- a/assets/modeling-skill.svg +++ /dev/null @@ -1,220 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ██╗ ██╗ ██╗ ██████╗ ███████╗ ██████╗ ██╗ - ██║ ██║ ██║ ██╔══██╗ ██╔════╝ ██╔══██╗ ██║ - ██║ ██║ ██║ ██████╔╝ █████╗ ██████╔╝ ██║ - ╚██╗ ██╔╝ ██║ ██╔══██╗ ██╔══╝ ██╔══██╗ ██║ - ╚████╔╝ ██║ ██████╔╝ ███████╗ ██████╔╝ ██║ - ╚═══╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ - - - - ██╗ ██╗ ██╗ ██████╗ ███████╗ ██████╗ ██╗ - ██║ ██║ ██║ ██╔══██╗ ██╔════╝ ██╔══██╗ ██║ - ██║ ██║ ██║ ██████╔╝ █████╗ ██████╔╝ ██║ - ╚██╗ ██╔╝ ██║ ██╔══██╗ ██╔══╝ ██╔══██╗ ██║ - ╚████╔╝ ██║ ██████╔╝ ███████╗ ██████╔╝ ██║ - ╚═══╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ - - - - - - - The First CLI for Both Power BI Modeling and Reporting - - - - - - - - Claude Code - - - - - - - - ██████╗ ██████╗ ██╗ ██████╗ ██╗ ██╗ - ██╔══██╗ ██╔══██╗ ██║ ██╔════╝ ██║ ██║ - ██████╔╝ ██████╔╝ ██║ ███╗ ██║ ██║ ██║ - ██╔═══╝ ██╔══██╗ ██║ ╚══╝ ██║ ██║ ██║ - ██║ ██████╔╝ ██║ ╚██████╗ ███████╗ ██║ - ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ - - - - ██████╗ ██████╗ ██╗ ██████╗ ██╗ ██╗ - ██╔══██╗ ██╔══██╗ ██║ ██╔════╝ ██║ ██║ - ██████╔╝ ██████╔╝ ██║ ███╗ ██║ ██║ ██║ - ██╔═══╝ ██╔══██╗ ██║ ╚══╝ ██║ ██║ ██║ - ██║ ██████╔╝ ██║ ╚██████╗ ███████╗ ██║ - ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ - - - - - - - - - - - - - - - Power BI - - - - Modeling - + - - Reporting - - - - - - - - - - - - Modeling Skill - Describe your schema. Claude builds it. - - - - - - - - - - - - - - - - Claude Code - - - - Create a star schema with Sales as the fact table, - linked to Products, Calendar, Customers, and Store - - - - - - Building star schema... - - - - Created table - Sales - (fact) - - - - Created table - Products - linked to Sales - - - - Created table - Calendar - linked to Sales - - - - Created table - Customers - linked to Sales - - - - Created table - Store - linked to Sales - - - - - - 5 tables, 4 relationships created - - - All relationships are one-to-many, single direction - - - - - - - - - Tables - - - - Relationships - - - - Measures - - - - Date Tables - - - From description to working schema in one prompt. - - - \ No newline at end of file diff --git a/assets/release-vibe-bi.png b/assets/release-vibe-bi.png deleted file mode 100644 index f4643d0..0000000 --- a/assets/release-vibe-bi.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:beaee64113d74512f7b8c24178bba4762145d6a54dd3ec47a64ae2b2706fe033 -size 6733336 diff --git a/assets/release-vibe-bi.svg b/assets/release-vibe-bi.svg deleted file mode 100644 index a410791..0000000 --- a/assets/release-vibe-bi.svg +++ /dev/null @@ -1,301 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ██╗ ██╗ ██╗ ██████╗ ███████╗ ██████╗ ██╗ - ██║ ██║ ██║ ██╔══██╗ ██╔════╝ ██╔══██╗ ██║ - ██║ ██║ ██║ ██████╔╝ █████╗ ██████╔╝ ██║ - ╚██╗ ██╔╝ ██║ ██╔══██╗ ██╔══╝ ██╔══██╗ ██║ - ╚████╔╝ ██║ ██████╔╝ ███████╗ ██████╔╝ ██║ - ╚═══╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ - - - - ██╗ ██╗ ██╗ ██████╗ ███████╗ ██████╗ ██╗ - ██║ ██║ ██║ ██╔══██╗ ██╔════╝ ██╔══██╗ ██║ - ██║ ██║ ██║ ██████╔╝ █████╗ ██████╔╝ ██║ - ╚██╗ ██╔╝ ██║ ██╔══██╗ ██╔══╝ ██╔══██╗ ██║ - ╚████╔╝ ██║ ██████╔╝ ███████╗ ██████╔╝ ██║ - ╚═══╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ - - - - - - - The First CLI for Both Power BI Modeling and Reporting - - - - - - - - Claude Code - - - - - - - - ██████╗ ██████╗ ██╗ ██████╗ ██╗ ██╗ - ██╔══██╗ ██╔══██╗ ██║ ██╔════╝ ██║ ██║ - ██████╔╝ ██████╔╝ ██║ ███╗ ██║ ██║ ██║ - ██╔═══╝ ██╔══██╗ ██║ ╚══╝ ██║ ██║ ██║ - ██║ ██████╔╝ ██║ ╚██████╗ ███████╗ ██║ - ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ - - - - ██████╗ ██████╗ ██╗ ██████╗ ██╗ ██╗ - ██╔══██╗ ██╔══██╗ ██║ ██╔════╝ ██║ ██║ - ██████╔╝ ██████╔╝ ██║ ███╗ ██║ ██║ ██║ - ██╔═══╝ ██╔══██╗ ██║ ╚══╝ ██║ ██║ ██║ - ██║ ██████╔╝ ██║ ╚██████╗ ███████╗ ██║ - ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ - - - - - - - - - - - - - - - Power BI - - - - Modeling - + - - Reporting - - - - - - - - - - - - - - - - - - - - - - - - - - ██╗ ██╗ ██╗ ██████╗ ███████╗ ██████╗ ██╗ - ██║ ██║ ██║ ██╔══██╗ ██╔════╝ ██╔══██╗ ██║ - ██║ ██║ ██║ ██████╔╝ █████╗ ██████╔╝ ██║ - ╚██╗ ██╔╝ ██║ ██╔══██╗ ██╔══╝ ██╔══██╗ ██║ - ╚████╔╝ ██║ ██████╔╝ ███████╗ ██████╔╝ ██║ - ╚═══╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ - - - - ██╗ ██╗ ██╗ ██████╗ ███████╗ ██████╗ ██╗ - ██║ ██║ ██║ ██╔══██╗ ██╔════╝ ██╔══██╗ ██║ - ██║ ██║ ██║ ██████╔╝ █████╗ ██████╔╝ ██║ - ╚██╗ ██╔╝ ██║ ██╔══██╗ ██╔══╝ ██╔══██╗ ██║ - ╚████╔╝ ██║ ██████╔╝ ███████╗ ██████╔╝ ██║ - ╚═══╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ - - - - - - - Vibe-Driven Business Intelligence - - - - ██████╗ ██████╗ ██╗ ██████╗ ██╗ ██╗ - ██╔══██╗ ██╔══██╗ ██║ ██╔════╝ ██║ ██║ - ██████╔╝ ██████╔╝ ██║ ███╗ ██║ ██║ ██║ - ██╔═══╝ ██╔══██╗ ██║ ╚══╝ ██║ ██║ ██║ - ██║ ██████╔╝ ██║ ╚██████╗ ███████╗ ██║ - ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ - - - - ██████╗ ██████╗ ██╗ ██████╗ ██╗ ██╗ - ██╔══██╗ ██╔══██╗ ██║ ██╔════╝ ██║ ██║ - ██████╔╝ ██████╔╝ ██║ ███╗ ██║ ██║ ██║ - ██╔═══╝ ██╔══██╗ ██║ ╚══╝ ██║ ██║ ██║ - ██║ ██████╔╝ ██║ ╚██████╗ ███████╗ ██║ - ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ - - - - - v3.10.1 - - - - - - - Previously - Vibe Modeling - - - - Modeling only - - - - - - - - - - - - - - Now - VIBE BI - - - - - - - - - - - Modeling - - + - - - - - - - - - Reporting - - - - - - - - - - - - - 30+ - commands - - - - - - - - 32 - visual types - - - - - - - - 12 - Claude skills - - - - - - - - ~30 - tokens/call - - - - - - - - 488 - tests - - - - \ No newline at end of file diff --git a/assets/token-cost.svg b/assets/token-cost.svg deleted file mode 100644 index 182e24a..0000000 --- a/assets/token-cost.svg +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ██╗ ██╗ ██╗ ██████╗ ███████╗ ██████╗ ██╗ - ██║ ██║ ██║ ██╔══██╗ ██╔════╝ ██╔══██╗ ██║ - ██║ ██║ ██║ ██████╔╝ █████╗ ██████╔╝ ██║ - ╚██╗ ██╔╝ ██║ ██╔══██╗ ██╔══╝ ██╔══██╗ ██║ - ╚████╔╝ ██║ ██████╔╝ ███████╗ ██████╔╝ ██║ - ╚═══╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ - - - - ██╗ ██╗ ██╗ ██████╗ ███████╗ ██████╗ ██╗ - ██║ ██║ ██║ ██╔══██╗ ██╔════╝ ██╔══██╗ ██║ - ██║ ██║ ██║ ██████╔╝ █████╗ ██████╔╝ ██║ - ╚██╗ ██╔╝ ██║ ██╔══██╗ ██╔══╝ ██╔══██╗ ██║ - ╚████╔╝ ██║ ██████╔╝ ███████╗ ██████╔╝ ██║ - ╚═══╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ - - - - - - - The First CLI for Both Power BI Modeling and Reporting - - - - - - - - Claude Code - - - - - - - - ██████╗ ██████╗ ██╗ ██████╗ ██╗ ██╗ - ██╔══██╗ ██╔══██╗ ██║ ██╔════╝ ██║ ██║ - ██████╔╝ ██████╔╝ ██║ ███╗ ██║ ██║ ██║ - ██╔═══╝ ██╔══██╗ ██║ ╚══╝ ██║ ██║ ██║ - ██║ ██████╔╝ ██║ ╚██████╗ ███████╗ ██║ - ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ - - - - ██████╗ ██████╗ ██╗ ██████╗ ██╗ ██╗ - ██╔══██╗ ██╔══██╗ ██║ ██╔════╝ ██║ ██║ - ██████╔╝ ██████╔╝ ██║ ███╗ ██║ ██║ ██║ - ██╔═══╝ ██╔══██╗ ██║ ╚══╝ ██║ ██║ ██║ - ██║ ██████╔╝ ██║ ╚██████╗ ███████╗ ██║ - ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ - - - - - - - - - - - - - - - Power BI - - - - Modeling - + - - Reporting - - - - - - - - - - - 100x More Efficient Than MCP - Token cost per operation: MCP tool call vs CLI command - - - - - - connect - - - 4,800 - - - ~30 - - - dax query - - - 4,600 - - - ~35 - - - measure - - - 4,400 - - - ~28 - - - model - - - 4,200 - - - ~25 - - - export - - - 4,500 - - - ~32 - - - - MCP tool call - - - CLI command - - | - - ~130x savings - - - Same capabilities, fraction of the cost. Your AI budget goes 100x further. - - - \ No newline at end of file diff --git a/assets/workflow.svg b/assets/workflow.svg deleted file mode 100644 index 949675d..0000000 --- a/assets/workflow.svg +++ /dev/null @@ -1,244 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ██╗ ██╗ ██╗ ██████╗ ███████╗ ██████╗ ██╗ - ██║ ██║ ██║ ██╔══██╗ ██╔════╝ ██╔══██╗ ██║ - ██║ ██║ ██║ ██████╔╝ █████╗ ██████╔╝ ██║ - ╚██╗ ██╔╝ ██║ ██╔══██╗ ██╔══╝ ██╔══██╗ ██║ - ╚████╔╝ ██║ ██████╔╝ ███████╗ ██████╔╝ ██║ - ╚═══╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ - - - - ██╗ ██╗ ██╗ ██████╗ ███████╗ ██████╗ ██╗ - ██║ ██║ ██║ ██╔══██╗ ██╔════╝ ██╔══██╗ ██║ - ██║ ██║ ██║ ██████╔╝ █████╗ ██████╔╝ ██║ - ╚██╗ ██╔╝ ██║ ██╔══██╗ ██╔══╝ ██╔══██╗ ██║ - ╚████╔╝ ██║ ██████╔╝ ███████╗ ██████╔╝ ██║ - ╚═══╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ - - - - - - - The First CLI for Both Power BI Modeling and Reporting - - - - - - - - Claude Code - - - - - - - - ██████╗ ██████╗ ██╗ ██████╗ ██╗ ██╗ - ██╔══██╗ ██╔══██╗ ██║ ██╔════╝ ██║ ██║ - ██████╔╝ ██████╔╝ ██║ ███╗ ██║ ██║ ██║ - ██╔═══╝ ██╔══██╗ ██║ ╚══╝ ██║ ██║ ██║ - ██║ ██████╔╝ ██║ ╚██████╗ ███████╗ ██║ - ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ - - - - ██████╗ ██████╗ ██╗ ██████╗ ██╗ ██╗ - ██╔══██╗ ██╔══██╗ ██║ ██╔════╝ ██║ ██║ - ██████╔╝ ██████╔╝ ██║ ███╗ ██║ ██║ ██║ - ██╔═══╝ ██╔══██╗ ██║ ╚══╝ ██║ ██║ ██║ - ██║ ██████╔╝ ██║ ╚██████╗ ███████╗ ██║ - ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ - - - - - - - - - - - - - - - Power BI - - - - Modeling - + - - Reporting - - - - - - - - - - - - The VIBE BI Workflow - - - - - 1 - - - - - - - - - - - - - - - - - Claude Code - AI Assistant - - - - - Reads TMDL + PBIR source files - - Understands model + report state - - Plans and executes changes - - - - - 2 - - - - - - - - $ pbi-cli - - - pbi-cli - The Bridge - - - - - Runs targeted CLI commands - - Writes TMDL + PBIR files - - ~30 tokens per operation - - - - - 3 - - - - - - - - - - Power BI Desktop - Live Preview - - - - - Detects file changes instantly - - Refreshes model live - - Report updates in real time - - - - - CLI commands - - ~30 tokens - - - - - TMDL + PBIR files - - auto-detected - - - - - reads updated model + report · loop continues - - - Powered by VIBE BI · Vibe-Driven Business Intelligence - - - \ No newline at end of file diff --git a/marketing/generate_images.py b/marketing/generate_images.py deleted file mode 100644 index 8739bef..0000000 --- a/marketing/generate_images.py +++ /dev/null @@ -1,187 +0,0 @@ -""" -Generate 4K marketing PNG images for pbi-cli. - -Each feature SVG already has the Vibe BI header baked in. -This script: -1. Reads each feature SVG as-is -2. Adds a footer with mina-saad.com/pbi-cli -3. Renders at 4K width (3840px) via Playwright -4. Saves as PNG to marketing/images/ -""" - -import re -from pathlib import Path -from playwright.sync_api import sync_playwright - -ASSETS_DIR = Path(__file__).parent.parent / "assets" -OUTPUT_DIR = Path(__file__).parent / "images" -TARGET_WIDTH = 3840 # 4K width - -# Feature SVGs to process (filename -> output name) -FEATURE_SVGS = { - "before-after.svg": "before-after", - "architecture-flow.svg": "architecture-flow", - "backup-restore.svg": "backup-restore", - "bulk-operations.svg": "bulk-operations", - "chat-demo.svg": "chat-demo", - "dax-debugging.svg": "dax-debugging", - "feature-grid.svg": "feature-grid", - "model-health-check.svg": "model-health-check", - "rls-testing.svg": "rls-testing", - "skills-hub.svg": "skills-hub", - "token-cost.svg": "token-cost", - "how-it-works.svg": "how-it-works", - "dax-skill.svg": "dax-skill", - "modeling-skill.svg": "modeling-skill", - "deploy-secure.svg": "deploy-secure", - "docs-diagnostics.svg": "docs-diagnostics", - "cta-start.svg": "cta-start", - # Report layer (v3) - "report-layer.svg": "report-layer", - "dual-layer.svg": "dual-layer", - "visual-types.svg": "visual-types", - "report-workflow.svg": "report-workflow", - "auto-sync.svg": "auto-sync", - "chat-demo-report.svg": "chat-demo-report", - # Additional assets - "commands.svg": "commands", - "layers.svg": "layers", - "release-vibe-bi.svg": "release-vibe-bi", - "stats.svg": "stats", - "workflow.svg": "workflow", -} - -FOOTER_HEIGHT = 60 -SVG_WIDTH = 850 - - -def read_svg_content(filepath: Path) -> str: - return filepath.read_text(encoding="utf-8") - - -def get_svg_height(svg_text: str) -> int: - """Extract height from SVG viewBox or height attribute.""" - match = re.search(r'viewBox="0 0 \d+ (\d+)"', svg_text) - if match: - return int(match.group(1)) - match = re.search(r'height="(\d+)"', svg_text) - if match: - return int(match.group(1)) - return 400 - - -def extract_svg_inner(svg_text: str) -> str: - """Extract everything between and tags.""" - inner = re.sub(r"<\?xml[^>]*\?>\s*", "", svg_text) - inner = re.sub(r"]*>", "", inner, count=1) - inner = re.sub(r"\s*$", "", inner) - return inner - - -def extract_defs(svg_text: str) -> str: - """Extract ... block if present.""" - match = re.search(r".*?", svg_text, re.DOTALL) - return match.group(0) if match else "" - - -def build_final_svg(feature_svg: str, feature_height: int) -> str: - """Build final SVG: feature content (with baked header) + footer.""" - total_height = feature_height + FOOTER_HEIGHT - - feature_inner = extract_svg_inner(feature_svg) - feature_defs = extract_defs(feature_svg) - # Remove defs from inner since we place them at top level - feature_inner_clean = re.sub( - r".*?", "", feature_inner, flags=re.DOTALL - ) - - defs_block = "" - if feature_defs: - defs_content = re.search( - r"(.*?)", feature_defs, re.DOTALL - ) - if defs_content: - defs_block = f" {defs_content.group(1)}" - - footer_y = feature_height + 40 - - return f""" -{defs_block} - - - - - - -{feature_inner_clean} - - - - - - mina-saad.com/pbi-cli -""" - - -def render_svg_to_png(svg_content: str, output_path: Path, page) -> None: - """Render an SVG string to a 4K PNG using Playwright.""" - match = re.search(r'viewBox="0 0 (\d+) (\d+)"', svg_content) - svg_w, svg_h = int(match.group(1)), int(match.group(2)) - - scale = TARGET_WIDTH / svg_w - target_h = int(svg_h * scale) - - html = f""" - - - - - -{svg_content} - -""" - - page.set_viewport_size({"width": TARGET_WIDTH, "height": target_h}) - page.set_content(html, wait_until="networkidle") - page.screenshot(path=str(output_path), full_page=True, type="png") - - -def main(): - OUTPUT_DIR.mkdir(parents=True, exist_ok=True) - - with sync_playwright() as p: - browser = p.chromium.launch(headless=True) - page = browser.new_page() - - for svg_file, output_name in FEATURE_SVGS.items(): - svg_path = ASSETS_DIR / svg_file - if not svg_path.exists(): - print(f" SKIP {svg_file} (not found)") - continue - - feature_svg = read_svg_content(svg_path) - feature_height = get_svg_height(feature_svg) - - composite = build_final_svg(feature_svg, feature_height) - - output_path = OUTPUT_DIR / f"{output_name}.png" - render_svg_to_png(composite, output_path, page) - - total_h = feature_height + FOOTER_HEIGHT - scale = TARGET_WIDTH / SVG_WIDTH - print( - f" OK {output_name}.png " - f"({TARGET_WIDTH}x{int(total_h * scale)})" - ) - - browser.close() - - print(f"\nDone! {len(FEATURE_SVGS)} images saved to {OUTPUT_DIR}") - - -if __name__ == "__main__": - main() diff --git a/marketing/images/architecture-flow.png b/marketing/images/architecture-flow.png deleted file mode 100644 index b4ad57a..0000000 --- a/marketing/images/architecture-flow.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:06197024146790a435df9df5b1e3d92411ba91d9e10d838b1c5cb0454db30412 -size 325045 diff --git a/marketing/images/auto-sync.png b/marketing/images/auto-sync.png deleted file mode 100644 index 5cbce3f..0000000 --- a/marketing/images/auto-sync.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b695582857e6973c41e132f965f3b5482ccf8d4c1706c91e0135e6b185b39e92 -size 428734 diff --git a/marketing/images/backup-restore.png b/marketing/images/backup-restore.png deleted file mode 100644 index 9a8705b..0000000 --- a/marketing/images/backup-restore.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:af234a800d37e0dc6ef678cd8be4f121761a19a17ae8a89e71e874d31ccccd37 -size 510647 diff --git a/marketing/images/before-after.png b/marketing/images/before-after.png deleted file mode 100644 index c40fbd1..0000000 --- a/marketing/images/before-after.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b9a8870d69511c79250e73ed97c7a341f9f5e6bab8f56be3bc0c07d4b658ad9c -size 396878 diff --git a/marketing/images/bulk-operations.png b/marketing/images/bulk-operations.png deleted file mode 100644 index 1ca104f..0000000 --- a/marketing/images/bulk-operations.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:216df8b05012f32ab08b9b324d8b6cc3ed6e7e9a260d22e40551bfde2dd6560b -size 496543 diff --git a/marketing/images/chat-demo-report.png b/marketing/images/chat-demo-report.png deleted file mode 100644 index cf36c9d..0000000 --- a/marketing/images/chat-demo-report.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:16370f39d88819cd2ebbeeef388d4dbb4a74d2e27806541cf22405588eab9bec -size 494548 diff --git a/marketing/images/chat-demo.png b/marketing/images/chat-demo.png deleted file mode 100644 index cee8149..0000000 --- a/marketing/images/chat-demo.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:68d66c38405f639830546c28a67f4b6661918db8eb1a2e62987ab308a343ac11 -size 477232 diff --git a/marketing/images/commands.png b/marketing/images/commands.png deleted file mode 100644 index ee71076..0000000 --- a/marketing/images/commands.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:228792a25890628147488724cfc0ae70d519dba2ec6d245ece14f17fe793d5ed -size 376799 diff --git a/marketing/images/cta-start.png b/marketing/images/cta-start.png deleted file mode 100644 index 911a55f..0000000 --- a/marketing/images/cta-start.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:321721da311ef30e92200fa2b054adf8871b5b20aa28c42593f20c1cd63e2ed9 -size 338421 diff --git a/marketing/images/dax-debugging.png b/marketing/images/dax-debugging.png deleted file mode 100644 index 649f5b9..0000000 --- a/marketing/images/dax-debugging.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9db7013eb897bbb0192a5875eff334990b6d822a37bc1be7e01fbbeb557b236c -size 519290 diff --git a/marketing/images/dax-skill.png b/marketing/images/dax-skill.png deleted file mode 100644 index afed2b9..0000000 --- a/marketing/images/dax-skill.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:068efbffa6996fb29e162275cf4f4a599d27ccb41212bb47f82124de0bb5e702 -size 459129 diff --git a/marketing/images/deploy-secure.png b/marketing/images/deploy-secure.png deleted file mode 100644 index 70b318c..0000000 --- a/marketing/images/deploy-secure.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:78425c8a90796e9c34166d9c52fb5f739c22712c02c9c42ecb114379a146d235 -size 464443 diff --git a/marketing/images/docs-diagnostics.png b/marketing/images/docs-diagnostics.png deleted file mode 100644 index a11fab1..0000000 --- a/marketing/images/docs-diagnostics.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a58af21589a5a42480d5c0fa0f79d59bd0b2e5be2545cddc61d257675d80c250 -size 522021 diff --git a/marketing/images/dual-layer.png b/marketing/images/dual-layer.png deleted file mode 100644 index 344cc68..0000000 --- a/marketing/images/dual-layer.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ac4141e141604242072b56d788e6244519c681e5115a1b6f815f9bee2b078f0e -size 430420 diff --git a/marketing/images/feature-grid.png b/marketing/images/feature-grid.png deleted file mode 100644 index 5327911..0000000 --- a/marketing/images/feature-grid.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b7abc15cfefab3e2e6024f542df3d7fef885b46a30a845e13f3eb09830b139ad -size 534414 diff --git a/marketing/images/how-it-works.png b/marketing/images/how-it-works.png deleted file mode 100644 index ce88b15..0000000 --- a/marketing/images/how-it-works.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a877f87ab6156cc879edd16764150b89c1cda7f5f63cbb4ba17dfb2c987302c1 -size 378908 diff --git a/marketing/images/layers.png b/marketing/images/layers.png deleted file mode 100644 index 28ae3f8..0000000 --- a/marketing/images/layers.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fbf81d066fd27aa38b82f371bf34154dd7cefe98e1a34b536d4ff61249b1908d -size 345944 diff --git a/marketing/images/model-health-check.png b/marketing/images/model-health-check.png deleted file mode 100644 index 58f9d7a..0000000 --- a/marketing/images/model-health-check.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b46f6f8b61a562408e571e442fb2bd40502c6c4f8b9eef9bda8b20972e889b99 -size 525757 diff --git a/marketing/images/modeling-skill.png b/marketing/images/modeling-skill.png deleted file mode 100644 index 726a7e1..0000000 --- a/marketing/images/modeling-skill.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dd521a25791eb6f492f97f797c20ea066b6315a939ba47efb24c29858340ef50 -size 477694 diff --git a/marketing/images/release-vibe-bi.png b/marketing/images/release-vibe-bi.png deleted file mode 100644 index 10cfd60..0000000 --- a/marketing/images/release-vibe-bi.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e46430adbe37f97fcc03305a429924449e0dc9255027454b69f08b106177e9ed -size 1191659 diff --git a/marketing/images/report-layer.png b/marketing/images/report-layer.png deleted file mode 100644 index 6ba8f26..0000000 --- a/marketing/images/report-layer.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f5a0596d5760e01ad55ceea261353070a6d7beaf0a32d5f11ae6b069e11f3a27 -size 358366 diff --git a/marketing/images/report-workflow.png b/marketing/images/report-workflow.png deleted file mode 100644 index ee65f9e..0000000 --- a/marketing/images/report-workflow.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:544dae4b02f5baf7dde1599d6b9b34af234e325a3f297113e9a297e48feaaee1 -size 360196 diff --git a/marketing/images/rls-testing.png b/marketing/images/rls-testing.png deleted file mode 100644 index 24385ab..0000000 --- a/marketing/images/rls-testing.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4804a7a74dfc7df1d9f200cca3eb985ea6d999d284062d03b5609852592fb7c4 -size 485307 diff --git a/marketing/images/skills-hub.png b/marketing/images/skills-hub.png deleted file mode 100644 index 5b3c19d..0000000 --- a/marketing/images/skills-hub.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:38cddcbe4ca8bb2f2429ad861603f0498280aedf7442f3b1a0674fb480b3188e -size 521526 diff --git a/marketing/images/stats.png b/marketing/images/stats.png deleted file mode 100644 index c2197d7..0000000 --- a/marketing/images/stats.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ac1747c2de360727fc5b6b5840ebe683e2bcfb2ba94b7e9ba4b4d0806f8447f8 -size 286663 diff --git a/marketing/images/token-cost.png b/marketing/images/token-cost.png deleted file mode 100644 index 0cddc7a..0000000 --- a/marketing/images/token-cost.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0bc54a4040abcf22ee6942ed5c69f1a571fca02ff239753cd3e43219e545ac46 -size 286221 diff --git a/marketing/images/visual-types.png b/marketing/images/visual-types.png deleted file mode 100644 index e81f219..0000000 --- a/marketing/images/visual-types.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0e2f009f6a1bf04a562642d3068c2a3ad0cd3e81ab90f4705f23f8835ca73a62 -size 481789 diff --git a/marketing/images/workflow.png b/marketing/images/workflow.png deleted file mode 100644 index 9cd37a9..0000000 --- a/marketing/images/workflow.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8e8dd2e17ad6fb400f0d9e09efbbbedc365830a5e8a817adaf6a9e017ea0b7b0 -size 367239 diff --git a/marketing/linkedin-posts/01-carousel-overview.md b/marketing/linkedin-posts/01-carousel-overview.md deleted file mode 100644 index e70a370..0000000 --- a/marketing/linkedin-posts/01-carousel-overview.md +++ /dev/null @@ -1,24 +0,0 @@ - - - - -Two days ago I shared the idea of 𝘃𝗶𝗯𝗲 𝗺𝗼𝗱𝗲𝗹𝗶𝗻𝗴. The response blew me away. - -So here's the full breakdown. 10 slides covering everything about 𝗽𝗯𝗶-𝗰𝗹𝗶, the open-source CLI that gives Claude Code full Power BI skills. - -What you'll find inside: - -- What vibe modeling actually means -- The 7 skill areas (DAX, modeling, deployment, diagnostics, docs, partitions, security) -- How it works in 3 steps: install, connect, chat -- Why it uses 130x fewer tokens than MCP servers -- Real examples of Claude writing DAX, creating measures, and querying your model - -No GUI. No copy-paste. Just describe what you need in plain English. - -Swipe through the carousel and let me know which slide hits hardest. I'd love to hear what resonates with your workflow. - -Star it on GitHub: https://github.com/MinaSaad1/pbi-cli -Full details: mina-saad.com/pbi-cli - -#PowerBI #DataModeling #OpenSource #VIbeModeling #ClaudeCode #DAX #DataAnalytics #AI diff --git a/marketing/linkedin-posts/02-why-pbi-cli.md b/marketing/linkedin-posts/02-why-pbi-cli.md deleted file mode 100644 index 2c3739c..0000000 --- a/marketing/linkedin-posts/02-why-pbi-cli.md +++ /dev/null @@ -1,27 +0,0 @@ - - - -Power BI development in 2024 looked like this: - -- Click through 6 menus to create one measure -- Copy-paste DAX from Stack Overflow and hope it works -- No version control. No undo beyond Ctrl+Z -- Manual documentation that's outdated the moment you write it - -Now picture this instead: - -- "Create a YTD Revenue measure" and it's done -- Claude writes the DAX, validates it, and adds it to your model -- TMDL export gives you real version control with git -- ~30 tokens per command instead of 4,000+ with MCP servers - -That's 𝗽𝗯𝗶-𝗰𝗹𝗶. Not a wrapper around an MCP server. A purpose-built CLI where Claude has native Power BI skills. - -The left side of this image is where most teams still are. The right side is where you could be this afternoon. - -Which side are you on? Drop a comment, I'm curious. - -GitHub: https://github.com/MinaSaad1/pbi-cli -Learn more: mina-saad.com/pbi-cli - -#PowerBI #DataModeling #VIbeModeling #ClaudeCode #DAX #OpenSource #DataEngineering #AI diff --git a/marketing/linkedin-posts/03-token-cost.md b/marketing/linkedin-posts/03-token-cost.md deleted file mode 100644 index c19f05e..0000000 --- a/marketing/linkedin-posts/03-token-cost.md +++ /dev/null @@ -1,24 +0,0 @@ - - - -MCP tools have a hidden cost most people don't talk about: 𝘀𝗰𝗵𝗲𝗺𝗮 𝗯𝗹𝗼𝗮𝘁. - -Every MCP tool definition (name, parameters, descriptions) gets loaded into your context window. Not when you call it. On 𝗲𝘃𝗲𝗿𝘆 𝘀𝗶𝗻𝗴𝗹𝗲 𝘁𝘂𝗿𝗻. A single tool schema costs anywhere from 400 to 3,500 tokens just to be available. - -Real benchmarks back this up: -→ A 5-server MCP setup burns ~55K tokens before you type anything (JD Hodges) -→ GitHub's MCP server with 43 tools: a simple repo query costs 44K tokens vs 1,365 for CLI (Scalekit) -→ Anthropic themselves measured 134K tokens of tool definitions internally - -Now imagine a Power BI MCP server with 20-40 tools for all the TOM operations. At 2,000-3,000 tokens per schema, that's 𝟲𝟬𝗞-𝟭𝟮𝟬𝗞 𝘁𝗼𝗸𝗲𝗻𝘀 of overhead eating your context window before you do any actual work. - -pbi-cli avoids this entirely. CLI commands cost ~30 tokens to invoke, and only when used. No schemas loaded. No per-turn tax. Skills load on-demand, not on every turn. - -That's why I built it as a CLI with skills instead of wrapping an MCP server. The architecture isn't just a preference. Real benchmarks show CLI is 4-32x more efficient per task, and for schema overhead specifically, the difference is even larger. - -Check the chart. The difference speaks for itself. - -GitHub: https://github.com/MinaSaad1/pbi-cli -Details: mina-saad.com/pbi-cli - -#PowerBI #ClaudeCode #MCP #TokenEfficiency #OpenSource #VibeModeling #AI #DataModeling diff --git a/marketing/linkedin-posts/04-how-it-works.md b/marketing/linkedin-posts/04-how-it-works.md deleted file mode 100644 index 26b5d90..0000000 --- a/marketing/linkedin-posts/04-how-it-works.md +++ /dev/null @@ -1,25 +0,0 @@ - - - -Two commands. That's all it takes. - -𝗦𝘁𝗲𝗽 𝟭: Install -`pipx install pbi-cli` -One line. No dependencies to chase. - -𝗦𝘁𝗲𝗽 𝟮: Connect -`pbi connect` -Auto-detects your running Power BI Desktop instance. No config files, no port numbers, no setup wizards. - -𝗦𝘁𝗲𝗽 𝟯: Chat -Open Claude Code and start talking. "Show me all measures." "Create a YTD calculation." "Export this model to TMDL." - -That's it. Claude discovers all 7 skills automatically. No registration, no API keys, no YAML to write. - -𝗭𝗲𝗿𝗼 𝗰𝗼𝗻𝗳𝗶𝗴𝘂𝗿𝗮𝘁𝗶𝗼𝗻. Just install, connect, and describe what you need. - -Try it in 30 seconds: -GitHub: https://github.com/MinaSaad1/pbi-cli -Full walkthrough: mina-saad.com/pbi-cli - -#PowerBI #ClaudeCode #OpenSource #VIbeModeling #DAX #DataModeling #DeveloperTools diff --git a/marketing/linkedin-posts/05-chat-demo.md b/marketing/linkedin-posts/05-chat-demo.md deleted file mode 100644 index 3600fcd..0000000 --- a/marketing/linkedin-posts/05-chat-demo.md +++ /dev/null @@ -1,29 +0,0 @@ - - - -No DAX syntax to memorize. No GUI menus to navigate. - -Look at this conversation: - -"Connect to my Power BI model." -Done. Claude finds it automatically. - -"Create a Total Revenue measure that sums the Amount column." -Done. Measure created, validated, added to your model. - -"Query the top 10 products by revenue." -Done. Results returned right in the terminal. - -Three requests. Three results. All in plain English. - -This is what working with 𝗽𝗯𝗶-𝗰𝗹𝗶 actually looks like. You don't learn commands. You don't read documentation. You just 𝗱𝗲𝘀𝗰𝗿𝗶𝗯𝗲 what you want. - -Claude handles the DAX syntax, the model object references, the column names, the formatting. You handle the thinking. - -That's the whole point of vibe modeling. The model is a conversation, not a spreadsheet. - -Just describe what you need: -GitHub: https://github.com/MinaSaad1/pbi-cli -Learn more: mina-saad.com/pbi-cli - -#PowerBI #DAX #ClaudeCode #VIbeModeling #OpenSource #DataAnalytics #AI #DataModeling diff --git a/marketing/linkedin-posts/06-bulk-operations.md b/marketing/linkedin-posts/06-bulk-operations.md deleted file mode 100644 index ee76553..0000000 --- a/marketing/linkedin-posts/06-bulk-operations.md +++ /dev/null @@ -1,30 +0,0 @@ - - - -One prompt. Five measures. 3.2 seconds. - -"Create YTD Revenue, QTD Revenue, MTD Revenue, Prior Year Revenue, and YoY Growth measures for the Sales table." - -That's it. One sentence. Claude writes all five DAX expressions, creates each measure, and confirms they're added to your model. - -Now compare that to the GUI approach: - -- Open the measure editor -- Write the DAX (or Google it) -- Test it -- Repeat 4 more times -- ~10 minutes and 50+ clicks per measure -- Total: nearly an hour of clicking - -With 𝗽𝗯𝗶-𝗰𝗹𝗶, all five measures land in your model before you finish your coffee. - -This isn't a demo trick. This is the daily workflow. Need 12 KPIs for a new report? Describe them in a paragraph. Need to rename 30 measures to match a naming convention? One prompt. - -𝗕𝗮𝘁𝗰𝗵 𝗼𝗽𝗲𝗿𝗮𝘁𝗶𝗼𝗻𝘀 are where the productivity gap becomes impossible to ignore. - -Stop clicking. Start describing. - -GitHub: https://github.com/MinaSaad1/pbi-cli -Details: mina-saad.com/pbi-cli - -#PowerBI #DAX #Productivity #ClaudeCode #VIbeModeling #OpenSource #DataModeling #DataEngineering diff --git a/marketing/linkedin-posts/07-dax-skill.md b/marketing/linkedin-posts/07-dax-skill.md deleted file mode 100644 index 561d63f..0000000 --- a/marketing/linkedin-posts/07-dax-skill.md +++ /dev/null @@ -1,26 +0,0 @@ - - - -What if you could query your Power BI model in plain English? - -With 𝗽𝗯𝗶-𝗰𝗹𝗶, you can. I asked Claude: "What are the top 5 products by revenue?" and got a formatted results table in seconds. - -Here's what happened behind the scenes: - -1. Claude 𝗯𝘂𝗶𝗹𝘁 the DAX query (TOPN, SUMMARIZE, the works) -2. 𝗩𝗮𝗹𝗶𝗱𝗮𝘁𝗲𝗱 the syntax before executing -3. 𝗘𝘅𝗲𝗰𝘂𝘁𝗲𝗱 it against the live semantic model -4. 𝗙𝗼𝗿𝗺𝗮𝘁𝘁𝗲𝗱 the results into a clean table - -No EVALUATE statement to remember. No SUMMARIZECOLUMNS vs SUMMARIZE debate. No syntax errors to debug. Just a question and an answer. 🎯 - -The DAX skill covers query execution, syntax validation, and result formatting. You focus on the business question. Claude handles the rest. - -Follow-up questions work too. "Now filter that by region" or "Show me the trend over the last 12 months." It's a conversation, not a query editor. 💬 - -Try it yourself. Ask any question about your data. - -GitHub: https://github.com/MinaSaad1/pbi-cli -Learn more: mina-saad.com/pbi-cli - -#PowerBI #DAX #ClaudeCode #DataAnalytics #VIbeModeling #OpenSource #AI #DataModeling diff --git a/marketing/linkedin-posts/08-dax-debugging.md b/marketing/linkedin-posts/08-dax-debugging.md deleted file mode 100644 index d206547..0000000 --- a/marketing/linkedin-posts/08-dax-debugging.md +++ /dev/null @@ -1,26 +0,0 @@ - - - -Your YTD Revenue measure is returning blank. What do you do? - -Most people start guessing. Comment out lines. Add variables. Stare at CALCULATE filters. Waste 45 minutes before finding it was a date table issue the whole time. - -With 𝗽𝗯𝗶-𝗰𝗹𝗶, I told Claude: "My YTD Revenue measure returns blank. Can you investigate?" - -Claude traced the problem like a senior developer would 🔍 - -- Checked the measure definition. Syntax was fine. -- Checked the DAX logic. TOTALYTD looked correct. -- Checked the Calendar table. Found it. The table wasn't 𝗺𝗮𝗿𝗸𝗲𝗱 𝗮𝘀 𝗮 𝗱𝗮𝘁𝗲 𝘁𝗮𝗯𝗹𝗲. -- Fixed it with one command. Measure started working immediately. - -Systematic. Methodical. No guessing. - -That's the difference. Claude doesn't just write DAX. It 𝗱𝗲𝗯𝘂𝗴𝘀 it. It reads your model structure, understands context, and traces root causes. - -Stop guessing. Let Claude trace it. 🛠️ - -GitHub: https://github.com/MinaSaad1/pbi-cli -Learn more: mina-saad.com/pbi-cli - -#PowerBI #DAX #Debugging #ClaudeCode #VIbeModeling #OpenSource #DataModeling #AI diff --git a/marketing/linkedin-posts/09-model-health.md b/marketing/linkedin-posts/09-model-health.md deleted file mode 100644 index 7ce0644..0000000 --- a/marketing/linkedin-posts/09-model-health.md +++ /dev/null @@ -1,25 +0,0 @@ - - - -When was the last time you audited your semantic model? - -Be honest. Most teams ship models to production and never look back. Until something breaks. - -I asked Claude to run a 𝗳𝘂𝗹𝗹 𝗵𝗲𝗮𝗹𝘁𝗵 𝗰𝗵𝗲𝗰𝗸 on a production model. One prompt. Here's what came back: - -❌ 𝗘𝗿𝗿𝗼𝗿𝘀: Circular dependency between two calculated tables. Missing relationship between Sales and Store. - -⚠️ 𝗪𝗮𝗿𝗻𝗶𝗻𝗴𝘀: 12 unused measures. Bidirectional filter on a fact table. Calendar table missing continuous date coverage. - -✅ 𝗣𝗮𝘀𝘀𝗲𝘀: Star schema structure. Single-direction relationships on dimensions. Date table properly marked. - -Then Claude offered to fix each issue, one by one. "Want me to remove the unused measures?" Yes. "Set the bidirectional filter to single direction?" Yes. Done. - -Manual review? 30+ minutes if you know what to look for. With 𝗽𝗯𝗶-𝗰𝗹𝗶? Instant. And it catches things you'd miss. - -Catch issues before production. Not after. - -GitHub: https://github.com/MinaSaad1/pbi-cli -Learn more: mina-saad.com/pbi-cli - -#PowerBI #DataModeling #DataQuality #ClaudeCode #VIbeModeling #OpenSource #SemanticModel #AI diff --git a/marketing/linkedin-posts/10-modeling-skill.md b/marketing/linkedin-posts/10-modeling-skill.md deleted file mode 100644 index cecee8b..0000000 --- a/marketing/linkedin-posts/10-modeling-skill.md +++ /dev/null @@ -1,26 +0,0 @@ - - - -Describe your schema in plain English. Claude builds it. - -I told Claude: "Create a star schema with Sales as the fact table, and Products, Calendar, Customers, and Store as dimensions." - -In seconds, Claude created: - -- 📦 𝟱 𝘁𝗮𝗯𝗹𝗲𝘀 with appropriate columns and data types -- 🔗 𝟰 𝗿𝗲𝗹𝗮𝘁𝗶𝗼𝗻𝘀𝗵𝗶𝗽𝘀, all one-to-many, single direction -- 📅 Calendar 𝗱𝗮𝘁𝗲 𝘁𝗮𝗯𝗹𝗲 properly configured -- 📐 Properly structured for performance and usability - -No drag-and-drop. No switching between diagram view and table properties. No manual relationship setup where you pick the wrong cardinality and spend 20 minutes figuring out why your numbers are doubled. - -The modeling skill handles tables, relationships, measures, and date table configuration. All from conversation. - -Need to iterate? "Add a Geography dimension" or "Create a Total Revenue measure on the Sales table." Claude keeps building on what's already there. 🔧 - -From description to working schema in one prompt. - -GitHub: https://github.com/MinaSaad1/pbi-cli -Learn more: mina-saad.com/pbi-cli - -#PowerBI #DataModeling #StarSchema #ClaudeCode #VIbeModeling #OpenSource #SemanticModel #AI diff --git a/marketing/linkedin-posts/11-backup-restore.md b/marketing/linkedin-posts/11-backup-restore.md deleted file mode 100644 index ed8811d..0000000 --- a/marketing/linkedin-posts/11-backup-restore.md +++ /dev/null @@ -1,26 +0,0 @@ - - - -"I messed up the relationships and now half my measures are showing blank." - -We've all been there. You restructure a few things, feel confident, test one report, and everything's broken. Ctrl+Z won't help you. There's no undo for relationship changes in Power BI. - -Unless you have a 𝘀𝗻𝗮𝗽𝘀𝗵𝗼𝘁. - -Here's my workflow with 𝗽𝗯𝗶-𝗰𝗹𝗶: - -1. 𝗦𝗮𝘃𝗲 a snapshot before risky changes (`pbi database export-tmdl`) -2. 𝗠𝗮𝗸𝗲 changes. Restructure relationships, rename columns, update measures. -3. Something breaks? 𝗥𝗲𝘀𝘁𝗼𝗿𝗲 the snapshot (`pbi database import-tmdl`) -4. Everything's back. Like it never happened. 🔄 - -It's the safety net that Power BI Desktop never gave you. Experiment freely. Try bold restructures. Refactor without fear. Pair it with git and you have full version history of your semantic model. - -Because the worst that can happen is a 5-second rollback. - -Never lose work again. ✅ - -GitHub: https://github.com/MinaSaad1/pbi-cli -Learn more: mina-saad.com/pbi-cli - -#PowerBI #TMDL #VersionControl #ClaudeCode #VIbeModeling #OpenSource #DataModeling #DataEngineering diff --git a/marketing/linkedin-posts/12-rls-testing.md b/marketing/linkedin-posts/12-rls-testing.md deleted file mode 100644 index 28c9bf1..0000000 --- a/marketing/linkedin-posts/12-rls-testing.md +++ /dev/null @@ -1,23 +0,0 @@ - - - -Setting up Row-Level Security in Power BI Desktop means clicking through multiple dialogs, switching tabs, testing manually. - -Create a role. Switch to the DAX editor. Write the filter. Go to "View as Roles." Pick the role. Check the visuals. Repeat for every role. - -With 𝗽𝗯𝗶-𝗰𝗹𝗶, I did this in one conversation: - -1. "Create an RLS role called Europe Sales" ✅ -2. "Filter the Region table where Continent = Europe" ✅ -3. "Run a query as that role to verify" ✅ - -Claude created the role, added the filter expression, then executed a DAX query 𝗮𝘀 𝘁𝗵𝗮𝘁 𝗿𝗼𝗹𝗲 to validate it. Result: 12 of 48 regions visible. Exactly right. 🔒 - -Build, test, and validate. All from one place. No tab switching, no dialog hunting, no manual verification. Add more roles the same way. Scale security without scaling complexity. - -Build and validate security from conversation. - -GitHub: https://github.com/MinaSaad1/pbi-cli -Learn more: mina-saad.com/pbi-cli - -#PowerBI #RowLevelSecurity #RLS #ClaudeCode #VIbeModeling #OpenSource #DataSecurity #AI diff --git a/marketing/linkedin-posts/13-deploy-secure.md b/marketing/linkedin-posts/13-deploy-secure.md deleted file mode 100644 index 4bc4a01..0000000 --- a/marketing/linkedin-posts/13-deploy-secure.md +++ /dev/null @@ -1,27 +0,0 @@ - - - -Two things every Power BI model needs: version control and access control. - -Most teams have neither. Models get overwritten with no rollback. Security rules get configured by clicking through menus and hoping nothing breaks. - -pbi-cli handles both from a single conversation. - -On the 𝗱𝗲𝗽𝗹𝗼𝘆𝗺𝗲𝗻𝘁 side, you get full TMDL export and import. Every change becomes a version snapshot you can track in git: - -- v1: Baseline schema -- v2: +Revenue measures -- v3: +RLS roles applied - -Need to roll back? One command. No guesswork. - -On the 𝘀𝗲𝗰𝘂𝗿𝗶𝘁𝘆 side, Claude configures role-based filters directly on your model. Per-user data visibility, row-level security rules, all defined in plain English and applied through the TOM API. - -Both skills work from conversation. Describe what you need, Claude builds it. 🔐 - -Version control your models. Secure them with one prompt. - -GitHub: https://github.com/MinaSaad1/pbi-cli -Learn more: mina-saad.com/pbi-cli - -#PowerBI #DataSecurity #RLS #VersionControl #TMDL #OpenSource #ClaudeCode #VIbeModeling diff --git a/marketing/linkedin-posts/14-docs-diagnostics.md b/marketing/linkedin-posts/14-docs-diagnostics.md deleted file mode 100644 index 54b64d8..0000000 --- a/marketing/linkedin-posts/14-docs-diagnostics.md +++ /dev/null @@ -1,21 +0,0 @@ - - - -How well do you know your own model? - -I've seen models with 200+ measures where nobody can explain what half of them do. Tables with columns that aren't used anywhere. Relationships that create circular dependencies nobody notices until a report breaks. - -pbi-cli gives you two skills to fix this. 📋 - -The 𝗱𝗼𝗰𝘀 skill generates a complete data dictionary with one command: `pbi model document`. Every table, every column, every data type, every measure expression. Documented and organized. No more tribal knowledge trapped in someone's head. - -The 𝗱𝗶𝗮𝗴𝗻𝗼𝘀𝘁𝗶𝗰𝘀 skill runs health checks across your entire model. Relationship validation, circular dependency detection, unused measure identification. It also traces query execution with duration metrics and performance recommendations. 🔍 - -One tells you what your model contains. The other tells you how healthy it is. - -Know your model inside out. - -GitHub: https://github.com/MinaSaad1/pbi-cli -Learn more: mina-saad.com/pbi-cli - -#PowerBI #DataModeling #Documentation #DataQuality #OpenSource #ClaudeCode #VIbeModeling #DAX diff --git a/marketing/linkedin-posts/15-architecture.md b/marketing/linkedin-posts/15-architecture.md deleted file mode 100644 index e77ee31..0000000 --- a/marketing/linkedin-posts/15-architecture.md +++ /dev/null @@ -1,25 +0,0 @@ - - - -No MCP server. No REST API. No external binaries. - -Here's how pbi-cli actually works, end to end. ⚙️ - -Claude Code calls 𝗽𝗯𝗶-𝗰𝗹𝗶, a Python CLI installed via pipx. pbi-cli uses 𝗽𝘆𝘁𝗵𝗼𝗻𝗻𝗲𝘁 to bridge into .NET. From there, the .NET 𝗧𝗮𝗯𝘂𝗹𝗮𝗿 𝗢𝗯𝗷𝗲𝗰𝘁 𝗠𝗼𝗱𝗲𝗹 (TOM) and ADOMD.NET talk directly to Power BI Desktop over the local XMLA endpoint. - -The full chain: - -``` -Claude Code -> pbi-cli -> pythonnet -> .NET TOM/ADOMD -> XMLA -> Power BI -``` - -Everything runs in-process on your machine. No network hops. No middleware. Sub-second execution for most operations. - -Why does the architecture matter? Because direct access means 𝗳𝗮𝘀𝘁𝗲𝗿 execution, 𝗺𝗼𝗿𝗲 𝗿𝗲𝗹𝗶𝗮𝗯𝗹𝗲 results, and 𝟭𝟯𝟬𝘅 𝗰𝗵𝗲𝗮𝗽𝗲𝗿 than MCP tool calls. No JSON-RPC schema bloat. No server process to manage. Just a CLI that does exactly what you ask. 🏗️ - -Open source. MIT License. - -GitHub: https://github.com/MinaSaad1/pbi-cli -Learn more: mina-saad.com/pbi-cli - -#PowerBI #SoftwareArchitecture #Python #DotNET #OpenSource #ClaudeCode #VIbeModeling #DataEngineering diff --git a/marketing/linkedin-posts/16-feature-scope.md b/marketing/linkedin-posts/16-feature-scope.md deleted file mode 100644 index 3b45414..0000000 --- a/marketing/linkedin-posts/16-feature-scope.md +++ /dev/null @@ -1,31 +0,0 @@ - - - -22 command groups. 100+ subcommands. 7 AI skills. Zero memorization. - -Here's what pbi-cli covers: 📦 - -𝗖𝗼𝗺𝗺𝗮𝗻𝗱 𝗴𝗿𝗼𝘂𝗽𝘀: connect, dax, measure, table, column, relationship, model, database, security-role, calc-group, partition, perspective, hierarchy, expression, calendar, trace, transaction, advanced, repl, skills, disconnect, connections, setup. - -That's full TOM coverage. Every object you can touch in a Power BI semantic model, accessible from the terminal. - -But here's what makes it different from a regular CLI. 🧠 - -Claude 𝗮𝘂𝘁𝗼-𝗱𝗶𝘀𝗰𝗼𝘃𝗲𝗿𝘀 7 specialized skills the moment you install pbi-cli: - -- 𝗗𝗔𝗫: queries, measures, calculations -- 𝗠𝗼𝗱𝗲𝗹𝗶𝗻𝗴: tables, columns, relationships -- 𝗗𝗲𝗽𝗹𝗼𝘆𝗺𝗲𝗻𝘁: TMDL export/import, transactions -- 𝗦𝗲𝗰𝘂𝗿𝗶𝘁𝘆: RLS roles, perspectives -- 𝗗𝗼𝗰𝘀: data dictionary, model documentation -- 𝗣𝗮𝗿𝘁𝗶𝘁𝗶𝗼𝗻𝘀: M expressions, data sources -- 𝗗𝗶𝗮𝗴𝗻𝗼𝘀𝘁𝗶𝗰𝘀: tracing, health checks - -You don't memorize commands. You describe what you want. Claude picks the right skill and runs the right commands. - -`pbi `. That's the pattern. Claude handles the rest. - -GitHub: https://github.com/MinaSaad1/pbi-cli -Learn more: mina-saad.com/pbi-cli - -#PowerBI #CLI #DataModeling #DAX #OpenSource #ClaudeCode #VIbeModeling #AI diff --git a/marketing/linkedin-posts/17-cta-start.md b/marketing/linkedin-posts/17-cta-start.md deleted file mode 100644 index 7bb3fbc..0000000 --- a/marketing/linkedin-posts/17-cta-start.md +++ /dev/null @@ -1,22 +0,0 @@ - - - -Two commands to transform your Power BI workflow. 🚀 - -``` -pipx install pbi-cli-tool -pbi connect -``` - -That's it. Claude auto-discovers 7 Power BI skills the moment pbi-cli is installed. You describe what you want in plain English. It builds. - -Open source. MIT License. Python 3.10+. Windows. - -No MCP server. No REST API. No configuration files. Just install, connect, and start modeling. ✨ - -Like it? Star it on GitHub. Share it with your Power BI team. - -GitHub: https://github.com/MinaSaad1/pbi-cli -Learn more: mina-saad.com/pbi-cli - -#PowerBI #OpenSource #VIbeModeling #ClaudeCode #DAX #DataModeling #AI diff --git a/marketing/linkedin-posts/18-promo-video.md b/marketing/linkedin-posts/18-promo-video.md deleted file mode 100644 index 060d60f..0000000 --- a/marketing/linkedin-posts/18-promo-video.md +++ /dev/null @@ -1,19 +0,0 @@ - - - -Ever wonder what 𝗩𝗶𝗯𝗲 𝗠𝗼𝗱𝗲𝗹𝗶𝗻𝗴 actually looks like? - -Here it is. 🎬 - -From the problem with MCP overhead, to install, connect, chat. DAX, modeling, RLS, deployment, diagnostics. All in one short watch. - -If you've followed along this past month, this is the summary reel. - -If this is your first time seeing 𝗽𝗯𝗶-𝗰𝗹𝗶, start here. ✨ - -Free and open source. Windows + Python 3.10+. - -Details: https://mina-saad.com/pbi-cli -GitHub: https://github.com/MinaSaad1/pbi-cli - -#PowerBI #VIbeModeling #ClaudeCode #OpenSource #DataModeling #DAX #AI diff --git a/marketing/linkedin-posts/19-release-vibe-bi-comments.md b/marketing/linkedin-posts/19-release-vibe-bi-comments.md deleted file mode 100644 index b66f847..0000000 --- a/marketing/linkedin-posts/19-release-vibe-bi-comments.md +++ /dev/null @@ -1,107 +0,0 @@ - - - ---- - -### Comment 1 — Report Layer Overview - - -Here's the new 𝗥𝗲𝗽𝗼𝗿𝘁 𝗟𝗮𝘆𝗲𝗿 at a glance. - -32 visual types, data binding, themes, and filters. All from the terminal. - -No connection needed. It reads and writes PBIR JSON directly, auto-syncs with Desktop, and supports bulk operations. - -One command to add a chart. One command to bind data. One command to apply your brand theme. - ---- - -### Comment 2 — 32 Visual Types - - -𝟯𝟮 𝘃𝗶𝘀𝘂𝗮𝗹 𝘁𝘆𝗽𝗲𝘀 you can add from one command. - -Bar, line, column, area, scatter, combo, donut, waterfall, treemap, funnel. Cards, KPIs, gauges. Tables and matrices. Slicers for every use case. Azure Maps. Even decorative elements like shapes, images, and textboxes. - -`pbi visual add --type bar --page overview --name my_chart` - -That's it. Claude picks the right type, you describe what you need. - ---- - -### Comment 3 — Build a Report in 6 Steps - - -Full report from an empty folder in 𝟲 𝘀𝘁𝗲𝗽𝘀: - -1. Scaffold the project -2. Add pages -3. Add visuals -4. Bind data -5. Apply theme -6. Validate - -All steps work offline on PBIR files. Desktop auto-syncs when it's open. You can chain these in a single prompt and Claude handles the sequence. - ---- - -### Comment 4 — Desktop Auto-Sync - - -The part that makes this actually usable: 𝗗𝗲𝘀𝗸𝘁𝗼𝗽 𝗔𝘂𝘁𝗼-𝗦𝘆𝗻𝗰. - -CLI writes PBIR files, takes a snapshot of your modeling work, then reopens Desktop with everything intact. Both layers preserved. - -No more closing Desktop manually. No risk of losing unsaved model changes. It just works. - ---- - -### Comment 5 — Just Ask Claude - - -This is what it actually looks like in practice. - -"Add a bar chart showing revenue by region to the overview page, and apply our corporate brand theme." - -Claude runs the commands: adds the visual, binds the data, applies the theme, syncs Desktop. Then you say "filter it to top 10 regions" and it adds a TopN filter. - -No drag-and-drop. No manual binding. Just describe what you want on the page. - ---- - -### Comment 6 — Two Layers, One CLI - - -The full picture: 𝗠𝗼𝗱𝗲𝗹𝗶𝗻𝗴 + 𝗥𝗲𝗽𝗼𝗿𝘁𝗶𝗻𝗴 side by side. - -Semantic Model Layer uses live .NET interop for measures, tables, relationships, DAX. Report Layer uses PBIR file operations for visuals, pages, themes, filters. - -7 Claude skills for modeling. 5 for reporting. 27 command groups. 125+ subcommands total. - ---- - -### Comment 7 — Architecture - - -How the dual-layer architecture works under the hood. - -Modeling side: TMDL export/import, DAX engine, schema control. All through direct .NET TOM interop. - -Reporting side: Visual builder, data binding, theme engine. All through PBIR JSON file operations. - -One CLI bridges both. Claude picks the right layer automatically based on your request. - ---- - -### Comment 8 — Command Showcase - - -Side-by-side command showcase for both layers. - -𝗠𝗼𝗱𝗲𝗹𝗶𝗻𝗴: model export, dax run, add-measure, table list, relationship list, model import. - -𝗥𝗲𝗽𝗼𝗿𝘁𝗶𝗻𝗴: add-visual, bind-data, add-page, list-visuals, update-theme, export. - -30+ commands across both layers. AI-native from the start. - -GitHub: https://github.com/MinaSaad1/pbi-cli diff --git a/marketing/linkedin-posts/19-release-vibe-bi.md b/marketing/linkedin-posts/19-release-vibe-bi.md deleted file mode 100644 index 43cfc53..0000000 --- a/marketing/linkedin-posts/19-release-vibe-bi.md +++ /dev/null @@ -1,30 +0,0 @@ - - - -It started as vibe modeling. Now it's 𝗩𝗶𝗯𝗲 𝗕𝗜. 🔥 - -𝗽𝗯𝗶-𝗰𝗹𝗶 v3.10.1 is out, and it's no longer just about semantic models. You can now build full Power BI reports from the terminal too. - -𝗪𝗵𝗮𝘁'𝘀 𝗻𝗲𝘄: - -→ 𝗥𝗲𝗽𝗼𝗿𝘁 𝗟𝗮𝘆𝗲𝗿: pages, visuals, themes, filters, bookmarks -→ 𝟯𝟮 𝘃𝗶𝘀𝘂𝗮𝗹 𝘁𝘆𝗽𝗲𝘀 supported out of the box -→ 𝟭𝟮 𝗖𝗹𝗮𝘂𝗱𝗲 𝘀𝗸𝗶𝗹𝗹𝘀: 7 for modeling, 5 for reporting -→ 𝟯𝟬+ 𝗰𝗼𝗺𝗺𝗮𝗻𝗱𝘀 across both layers -→ 𝟰𝟴𝟴 𝘁𝗲𝘀𝘁𝘀 passing - -Same workflow. Install, connect, chat. Tell Claude "add a bar chart for revenue by region" and it writes the PBIR JSON for you. No clicks. No drag and drop. - -Modeling + Reporting. Both layers. One CLI. - -``` -pipx install pbi-cli-tool -pbi connect -``` - -Free, open source, MIT licensed. If you've been following along, this is the update I've been building toward. ✨ - -GitHub: https://github.com/MinaSaad1/pbi-cli -Details: https://mina-saad.com/pbi-cli - -#PowerBI #VibeBi #VIbeModeling #ClaudeCode #OpenSource #DataModeling #DAX #PBIR #AI diff --git a/marketing/linkedin-posts/20-auto-sync.md b/marketing/linkedin-posts/20-auto-sync.md deleted file mode 100644 index 754eb44..0000000 --- a/marketing/linkedin-posts/20-auto-sync.md +++ /dev/null @@ -1,26 +0,0 @@ - - - -The biggest problem with editing Power BI reports from code: Desktop doesn't detect file changes on disk. - -You edit the PBIR JSON, Desktop ignores it. You save in Desktop, it overwrites your changes. The workaround? Close Desktop, edit files, reopen manually. Every single time. About 45 seconds of friction per edit, plus the risk of losing unsaved work. - -So I built 𝗗𝗲𝘀𝗸𝘁𝗼𝗽 𝗔𝘂𝘁𝗼-𝗦𝘆𝗻𝗰 Technique into 𝗽𝗯𝗶-𝗰𝗹𝗶 v3.10.1. - -𝗛𝗼𝘄 𝗶𝘁 𝘄𝗼𝗿𝗸𝘀: - -1️⃣ Claude executes the CLI to write your PBIR files (page.json, visual.json, filters.json) -2️⃣ Claude snapshots the changes from the last 5 seconds -3️⃣ Claude closes Desktop for you: sends a WM_CLOSE message via pywin32 and auto-accepts the save dialog so nothing is lost -4️⃣ Claude re-applies the snapshots and reopens your .pbip file automatically - -~2-5 seconds. Fully automated. You never touch Desktop yourself. - -Your unsaved modeling work (measures, relationships) stays safe because Desktop saves before closing. Your report-layer changes (visuals, filters, themes) survive because they're snapshotted and rewritten after Desktop's save. Then Desktop launches right back with everything in place. - -This is what makes 𝗩𝗶𝗯𝗲 𝗕𝗜 actually usable. Without it, you'd close Desktop, edit files, reopen manually, every single time. With Auto-Sync, Claude handles the entire close-reopen cycle for you. You just ask for the change and keep working. ✨ - -GitHub: https://github.com/MinaSaad1/pbi-cli -Details: https://mina-saad.com/pbi-cli - -#PowerBI #VibeBi #PBIR #ClaudeCode #OpenSource #PowerBIDeveloper #DataModeling #AI diff --git a/marketing/linkedin-posts/README.md b/marketing/linkedin-posts/README.md deleted file mode 100644 index f6901b2..0000000 --- a/marketing/linkedin-posts/README.md +++ /dev/null @@ -1,66 +0,0 @@ -# LinkedIn Post Campaign: pbi-cli Vibe BI - -## Context -- Post 0 (DONE, March 28): Launch announcement, performed well -- Campaign goal: Set the land for "vibe modeling" as a concept, build awareness for pbi-cli + Claude Code + Power BI - -## Posting Strategy - -**Phase 1: Hook & Educate** (Days 1-3 after launch) -Build on the launch momentum. Give people the full picture, then hit them with the "why." - -| # | File | Image/Asset | Angle | -|---|------|-------------|-------| -| 01 | 01-carousel-overview.md | pbi-cli-vibe-modeling.pdf | Full carousel walkthrough | -| 02 | 02-why-pbi-cli.md | before-after.png | Problem/solution framing | -| 03 | 03-token-cost.md | token-cost.png | Technical argument vs MCP | - -**Phase 2: Show the Magic** (Days 4-6) -Remove friction. Show how simple it is and the "aha" moments. - -| # | File | Image/Asset | Angle | -|---|------|-------------|-------| -| 04 | 04-how-it-works.md | how-it-works.png | 3-step onboarding | -| 05 | 05-chat-demo.md | chat-demo.png | The conversational UX | -| 06 | 06-bulk-operations.md | bulk-operations.png | Productivity proof | - -**Phase 3: Skill Deep Dives** (Days 7-12) -One post per major capability. Each stands alone. - -| # | File | Image/Asset | Angle | -|---|------|-------------|-------| -| 07 | 07-dax-skill.md | dax-skill.png | DAX without memorizing syntax | -| 08 | 08-dax-debugging.md | dax-debugging.png | Claude as debug partner | -| 09 | 09-model-health.md | model-health-check.png | Instant model audit | -| 10 | 10-modeling-skill.md | modeling-skill.png | Schema from description | -| 11 | 11-backup-restore.md | backup-restore.png | Safety net for risky changes | -| 12 | 12-rls-testing.md | rls-testing.png | Security without the GUI | - -**Phase 4: Enterprise & Architecture** (Days 13-16) -For the more technical audience. Builds credibility. - -| # | File | Image/Asset | Angle | -|---|------|-------------|-------| -| 13 | 13-deploy-secure.md | deploy-secure.png | Version control + RLS combined | -| 14 | 14-docs-diagnostics.md | docs-diagnostics.png | Documentation + performance | -| 15 | 15-architecture.md | architecture-flow.png | Under the hood | -| 16 | 16-feature-scope.md | feature-grid.png + skills-hub.png | Full scope: 22 groups, 7 skills | - -**Phase 5: CTA & Wrap** (Day 17) -Close the loop. Drive installs. - -| # | File | Image/Asset | Angle | -|---|------|-------------|-------| -| 17 | 17-cta-start.md | cta-start.png | Final CTA | - -**Phase 6: Vibe BI Release** (1 week after Phase 5) -Announce the evolution from Vibe Modeling to Vibe BI with the report layer. - -| # | File | Image/Asset | Angle | -|---|------|-------------|-------| -| 19 | 19-release-vibe-bi.md | release-vibe-bi.png | v3.10.1 release, Modeling + Reporting | -| 20 | 20-auto-sync.md | auto-sync-ai.png | Desktop Auto-Sync technique | - -## Links (include in every post) -- Landing page: mina-saad.com/pbi-cli -- GitHub: https://github.com/MinaSaad1/pbi-cli