# Introducing the NEW Tabular Editor CLI (with Peer Grønnerup)

## Метаданные

- **Канал:** Havens Consulting
- **YouTube:** https://www.youtube.com/watch?v=P5SHfm2Mmhs
- **Дата:** 30.05.2026
- **Длительность:** 1:38:22
- **Просмотры:** 441

## Описание

Command line tools have a reputation problem. People hear "CLI" and either tune out or assume they need to be a DevOps engineer to get any value out of it. For most semantic model developers, that's been the story for years.

The new standalone Tabular Editor CLI changes that. You don't need to live in the terminal to automate validation, deployment, and testing across your tabular models. You just need a starting point.

In this livestream Peer will be walking through the new CLI from scratch: what it is, why it matters for Power BI and Fabric work, and how it fits into the rest of your workflow (AI agents included, if that's your flavor).

We'll cover:
 - What the Tabular Editor CLI actually does
 - Local setup with zero prior CLI experience
 - Using AI agents to generate and run commands for you
 - Automating model validation, testing, and deployment
 - Wiring it into CI/CD without breaking everything

No prior command line experience required. If you've been CLI-curious but didn't know where to start, this one's for you.

GUEST BIO (Peer Grønnerup) 👤
Peer is a Data & AI professional with 15+ years of experience in BI, semantic modeling, and data platform automation. As Head of Engineering at Tabular Editor, he focuses on building tools and features that help teams create better data models faster, with a strong emphasis on automation, developer experience, and CI/CD, including leading the development of the new Tabular Editor CLI.

RELATED CONTENT 🔗
Peer's Blog -- https://peerinsights.emono.dk
Peer's GitHub -- https://github.com/gronnerup/
TE CLI Release -- (coming soon)

LET'S CONNECT! 🧑🏽‍🤝‍🧑🏽 🌟
-- https://www.linkedin.com/in/reidhavens
-- https://www.youtube.com/c/HavensConsulting

HAVENS CONSULTING PAGES 📄
Home Page -- http://www.havensconsulting.net/?utm_source=youtube-hc&utm_medium=video&utm_campaign=6W25fR70lAk
Blog -- http://www.havensconsulting.net/blog-and-media?utm_source=youtube-hc&utm_medium=video&utm_campaign=6W25fR70lAk
Blog Files -- http://www.havensconsulting.net/blog-files?utm_source=youtube-hc&utm_medium=video&utm_campaign=6W25fR70lAk
Files & Templates -- http://www.havensconsulting.net/files-and-templates?utm_source=youtube-hc&utm_medium=video&utm_campaign=6W25fR70lAk
Consulting Services -- http://www.havensconsulting.net/consulting-services?utm_source=youtube-hc&utm_medium=video&utm_campaign=6W25fR70lAk
Online Course -- https://www.havensconsulting.net/online-courses?utm_source=youtube-hc&utm_medium=video&utm_campaign=6W25fR70lAk
Contact & Support -- http://www.havensconsulting.net/contact-and-support?utm_source=youtube-hc&utm_medium=video&utm_campaign=6W25fR70lAk

EMAIL US AT 📧
info@havensconsulting.net
#PowerBI #MicrosoftFabric #TabularEditor #DataModeling #PowerBIDev #CLI

## Содержание

### [0:00](https://www.youtube.com/watch?v=P5SHfm2Mmhs) Segment 1 (00:00 - 05:00)

Heat. Heat. Hey, Heat. Heat. N. — Heat. Hey. Hey. Heat. N. —

### [5:00](https://www.youtube.com/watch?v=P5SHfm2Mmhs&t=300s) Segment 2 (05:00 - 10:00)

— Chef here, happy Friday and uh thank you so much for joining today. — Likewise. Thank you for having me. — Absolutely. Yeah, I'm excited to get you on for the first time. I think this is the fifth or sixth time we've had someone um tabular editor or tabular editor adjacent um on talking about various things. Uh this one particularly I think is going to be really fun. Um — uh I'm so eager really anticipating it. So — yeah, and actually I was uh I was looking through some of your old uh kind of like live streams and um and stumbled upon a few with Danielle. Um, and this is kind of like the same thing because I think first time Danielle was on that was uh that was actually a sneak peek into Chable Editor 3 back in December 2000 or something like that. Um, and today is pretty much going to be the same thing because Okay, we're not in a sneak peek, but this is literally uh fresh from the uh from the oven. Yeah, I think you were mentioning like three hours or something to go. So, very uh the bread's still warm. — It is. Yeah. I think we pushed the release button um yeah, three four hours ago or something like that. So, it couldn't be more fresh. — Yeah. I'm I'm excited for this. I you know, I'm sure there's a lot of people, you know, who have been using Tabular Editor for advanced development and, you know, more recently with all the LLMs and everything else. And uh honestly, you know, sometimes even, you know, just leveraging the older Teablar editor 2 CLI interface with some of these. So, I'm really excited to see uh kind of the new advancements with this and how this is going to integrate with uh a lot of the uh automation and agentic kind of uh work in development. Um, I like to do uh though as well on these streams before we get started with the technical and the fun is give you a chance to introduce yourself to the channel a little bit, say hi um and uh share any information you want about yourself. So, let's start from that. — Perfect. I will keep it uh really short. My name is Pier. I uh work as head of engineering for tablet editor. So, I'm kind of like managing the uh the core developer teams. We're actually quite a small team. We are growing, but we're still a small team. Uh I'm based in Denmark, the same thing as uh as Danielle, the founder of the tablet editor. So uh we are sitting together in a small office here in Denmark. And I actually know Danielle from uh from my time as a consultant. I work as worked as a consultant for pretty much 11 years or something like that in the same company that that Danielle also worked in. So we work side by side um helping customers get the most out of their data. And so when there was an opportunity to kind of like uh change uh change field uh that was when I said yes to join uh join tablets and I also do um do a lot of kind of like community um work. So speaking at various conferences um and so on so forth. So some of you might have seen me before. I also run some of the uh the tablet editor um webinars that we do u mainly in regards to the release webinar but I also have something coming up uh pretty soon which I will I'll highlight later on. Uh other than that I think uh I think that's it. — Yeah. No. And well just out of curiosity um any comments on any of the little fun drinks have I see a couple of Lego pieces. Um what's the really big ship in the upper right corner? It looks like a large like submarine. — Yeah, it was because uh um when I started writing blogs, I was part of the uh project Triton back then. Um — during the private preview of fabric. Uh so I was pretty early on stage in regards to fabrics and when fabric went into public preview and later into GA, I started kind of like sharing some of the uh things that I've been stumbling upon trying to help people uh mainly in the area of automation uh and CI/CD. Um, and then I thought it would be fun uh to just kind of like add some illustrations sometimes instead of it all just being text uh sometimes from Denmark. And since I'm a bald-headed guy, uh it was pretty easy to uh to ask Chat DBT to uh to assist me with some uh some Lego um Lego character and some scenarios with me uh frustrated over uh um identities

### [10:00](https://www.youtube.com/watch?v=P5SHfm2Mmhs&t=600s) Segment 3 (10:00 - 15:00)

in uh in fabric or something in the in in CI/CD that wasn't kind of like mature enough. Uh but also just sharing. Uh so uh that is why uh Lego is plastered all over my slide decks when I do uh do sessions uh various places pretty much that's it. Yeah. — Yeah. Well it's a fun little bit of branding and you know it also speaks a bit to home right from I think probably one of the most famous companies outside of — I forget the other one is the what's the pharmaceutical that makes OMIC? — Oh Lovo Novo Nordisk. — Yeah. I feel like it's that and that and Lego I feel like these days the two most popular companies. — Yeah. Yeah. Exactly. Uh and Novo is by far the biggest Danish company. Um Lego — from a profit perspective, I wouldn't be surprised. Yeah. — Yeah. — But yeah, we're for circling back to the topic of the day today as well. Where would you like to get started on the conversation around that before we dig into some uh demos and other stuff? — Actually, I do have a few slides prepared. So, uh Reed, if you could like um — put me on stage in regards to sharing the screen. Um and — as I said, this is fresh from the oven. So, um why not put a little bit of confetti on also uh blog posts. We released the documentation uh and so on so forth. But I'll show you all of that when we get to it. Um, so the agenda today and I'll we can kind of like uh skip parts and jump ahead if we require it. Um, but I want to start at a kind of like central place of where we are. I know Danielle also showed you this slide. Um, because we're not the only one that uh pretty much thinks that um or claims that the uh the semantic model is kind of like the heart of everything. So the most important part of an analytic platform that is the one that puts semantics to your uh to your data and makes it uh valuable and gives it meaning to the ones that are going to consume it. So that is kind of like our main focus. Uh and I guess most of you already know since you're joining today uh know about tablet editor and the product. So I won't go into either tablet editor 2 or tablet editor 3. Um I don't think we'll even show tabular editor uh the desktop application at all. We'll kind of stay in the console so to speak um or terminal. But this is just — what a world we live in where it's like it's you editor demo without table editor being open. — Yeah. I think that um yeah I think this would be first time ever actually. — Yeah probably we've done — that. Yeah. So uh that's also fun. Let's see how it goes. Um — yes — also due to the fact that it is so fresh so you never know what pops up in live demos but uh hey that's uh that's a risk and that's the fun of it. Um yeah so we are focused on semantic modeling um and just to kind like take you through the evolution and also explain why we kept on building uh upon tablet editor beyond that. Um, so back in 2016, that was actually when I was a colleague with Danielle. He was so frustrated with uh with Visual Studio and the uh and uh extension to uh to that one. So he decided to build his own little alternative that pretty much just blew up and became so big that in uh in 21 they decided to kind of like commercialize it. Um so with IntelliSense and a more prodeveloper experience. Uh there have been a lot of kind of like uh milestones along the way. uh DAX debugger which is uh as far as I know the first uh and maybe still the uh the only DAX debugger in the world. Um but then there's also uh day one support for UDFs uh calendar there are so many nice things uh in tab editor workspace mode with all which also came in uh in tab edator 3 and then the AI system that came um back in I think it was the March release or something like that. uh the AI system was uh was officially launched in public preview and now today um we uh we are launching uh we're launching the CLI. So this is kind of like an the next step in in the journey uh of keeping keep on building uh tools that help uh developers um with their semantic model uh development. Yeah, — I think this one will be really big for sure. I mean any good tooling that I think going forward needs to have some type of — IP CLI or other type of uh integration to allow for headless control. For sure. — Exactly. And that is what the uh the new we call it T uh you can call it tablet editor CLI. We the name

### [15:00](https://www.youtube.com/watch?v=P5SHfm2Mmhs&t=900s) Segment 4 (15:00 - 20:00)

tablet 3 CLI was also uh up in the air but uh T just sounds better. uh tablets as the eyes also sounds better. Uh anyway, so that is what we're releasing today. So it's a crossplatform built for everybody. It also means that you can run it on a Mac OS, Linux, uh you can run it on your ARM 64, your 64bits, and of course you can also run it on uh on your Windows machines. And whereas the tablet editor um desktop application is kind of like built for humans that that's developers that needs to interact with an interface. Uh this one can kind of like uh u support different uh personas or different audiences how you put it. Uh so humans uh agents and CSD pipelines and that that's also what we're going to show today. Um then it uh also inspired by kind of like the modern way of building CLIs. Um for those of you who know the fabric CLI uh have you been working you've been working with that read, right? The fabric CLI. — Yeah. The not nearly as extensively as I know Curt's had fun with the sandbox and that but I I' I've leveraged it quite a bit just to see like what can be built um from a set of instructions or — a good list of requirements. It's quite extensive. It has a couple of gaps left, but it is — 90% there. — Yeah, but kind of like the pace that the fabric CLI is kind of like running at is pretty awesome. I was also a huge fan of uh what Jacob Knightly did on the uh on the fabric CI/CD Python library that is now baked into the fabric CLI. But back to the to our CLI, we were kind of like also inspired by the modern way which also is in the fabric CLI. So this uh interactive um way of working with your commands. So you are kind of like nudged into a certain direction. So you don't have to remember all commands uh by default. You get pickers when you want to connect to something. You can kind of like work in a state. Uh and if there's something you don't like, you can revert. Um so every command is not kind of like infinitive. It's not a oneshot. It's something you can revert uh as well. that is more for the human side of things. That's me working in a terminal doing stuff. Um and then the non interactive mode that is where we don't want to get prompted. have uh confirm boxes or not boxes but confirm messages or anything like that. That is for agents that is for um for CI/CD uh pipelines uh running in headless mode. And we talked about the the tab editor 2 CLI. This is uh to be honest a evolution of that one. So one of the main um kind of like um goals that we have or main criterias for a new CLI was that it had to have feature parity with the old CLI. We we're not there yet. Uh one thing is missing and that's a schema check. It will come. Um but uh — but that was kind of like the overall thing we had. we need to we needed to have at least feature parity with the old one. Um, but — I I've used the old one a little bit, but again, like 90% of the stuff that I've done with that is just Claude just figuring out like what it wants to use if it's ever going to do, you know, uh, CS C scripts. The schema check is that like a validation check test to make sure — it's more than the valid it's more than a validation. It uh, it validates um the metadata in your semantic model. So schema in semantic model against the schema in the data source. So if you have a SQL server it validates that nothing has changed in regards to so whenever you do deployment for example do a schema check — ah okay — ensure that uh in the source system nobody has changed the column that you are dependent on that's kind of like the — yeah gotcha — and the use case for the CLI tab 2 has it is running in so many um CI/CD pipelines around the world I know for a fact because we get that feedback all the time Um it's a huge help in regards to doing uh best practice uh validation uh so running your BPA um whenever you want to commit something into uh into your main branch uh or something like that. — And a quick clarification just for number three just cuz uh um so the so you're going to have par with the template CLI meaning any historical scripts can run on the new one that uh ran on the old one. Um but the the 50 plus commands it's not clear is that for was that the tabulator to 2 CLI had 50 or the new one's going to have — that's the new one that's the new — okay gotcha — a lot of uh new cool stuff I'll show you today. — So in general it's all about kind of like catering for the whole life cycle

### [20:00](https://www.youtube.com/watch?v=P5SHfm2Mmhs&t=1200s) Segment 5 (20:00 - 25:00)

of a semantic model development. So not only uh not only what the tablet like could do but also running queries running tests and so on. So uh that is what I'll show you. do refreshes as well. Um yeah, again back to the fact that we kind of like cater for these three um different personas. So um you don't have to live in a terminal as it says. So if you are a model, if you're a developer, if you want kind of like hands-on um interaction with the CLI, you can do that. Uh you can run your commands. uh and it I think the most important message in in this slide is actually that regardless of you are you being a human or an agent or a CI/CD pipeline the commands that are being run are exact the same exactly the same they are completely identical um so you could actually take uh the commands that are generated from what you ever you did with a with an AI agent take those commands and run them uh by yourself uh attended. Uh you can also use them in your CI/CD pipelines. So it's kind of like everything one size fits all so to speak. So uh one interface but multiple audience um you could say that. Yeah. Well, I can imagine too, and I've um I've not dug in haven't dug into it too much yet until probably post release now that I'll have a chance to get my hands dirty with it, but I can imagine scenarios to your point of where this can be headless or headed, meaning that you could execute them. I could imagine if you in a project for something like cloud code if you gave it instructions on doing a self-review. So as it continues to run scripts if it notices a pattern of repeated ones that maybe the user might want to later it could probably save them potentially as like a reusable C directly that it's typically what you put in kind of like your your cloud MD file. Um yeah and then I'll also later on touch a bit about the skills. We have not released skills yet for the CLI. um we have them kind of like on an experimental level but the skills will uh will come uh very soon and get published as well um together with that and then the agents uh know exactly uh which commands to run so it kind of like have a vocabulary of things to do so it doesn't have to guess and try to run help commands to figure out things uh also saving tokens um which is important these days so yeah AI agents that was the one um on on the right hand side but and in the middle we have the platform and data ops. So that is your pipelines uh running. Um again same commands. So if you do a deploy command it will be the same whether you do it or an agent or a pipeline does it. It's the same. Um and it can run anywhere. That that's also a clear message. You don't have to have an LLM at your disposal or an agent at your disposal. You can run it offline. uh in a pipeline where there's no agent and so on so forth. So um there's all I know there's tools for pretty much everything um and they all work um kind of like coherent and complement each other. Um but that is the strength of a CLI that is the fact that it can run without an agent and then of course you can always kind like have an agent running it uh either directly or through an MCP. Um — so command families before we kick into go into kind of like the installation part a lot of uh as you can see a lot of families uh or commands uh we have these nine categories uh with different commands in them uh I won't go into details I just want to kind of like highlight that there's a lot of stuff and you you'll also see that there's a test something we've heard u on conferences uh by the feedback that we get um that it would really cool to have a CLI that could that we could use to also run tests uh as well as run Vertipac analysis or deployment and so on so forth. Um so we we have something coming up on that one. So in order for you to get started and that was what was released today. Um this is a limited public preview as we call it. uh meaning it will uh have an end of life uh currently set to the uh to end of September uh where it will stop uh to work. Uh we might extend that. We might kind of like release going to GA before. Uh it depends on um where we are the feedback that we get because um I want to shout out uh to everybody now but also later on. Please give us feedback. Uh criticize us, ask for features, come up with ideas. that we can only be better and we can only build better tools for you guys if uh if you kind of like give us that feedback. Uh that's an important — rising waters raise all ships is the term I like. So yes, community feedback and support because

### [25:00](https://www.youtube.com/watch?v=P5SHfm2Mmhs&t=1500s) Segment 6 (25:00 - 30:00)

you one team cannot find all case scenarios, edge cases and bugs. — No. And that we'll just end up you know building things that we think is cool and — Yeah. You build stuff for what you find useful. Yeah. Exactly. — Exactly. So, um but it there is kind of like a gate in order to download it. Um that's how we build it. So, you'll need to have a tablet editor account. Um you don't require any license or anything like that. So, if you're already working with tablet editor 3 today, you do have an account. Uh so, what you do is sign into tablet editor and I'll show you and then you download uh whatever archive or binary that you need. And then we'll skip over to the docs and I'll show you where to find commands for um unzipping or extracting that archive uh file that you download and then uh that script also sets uh permissions if needed. Uh I will say um both the uh the Windows uh as well as the Mac OS uh binaries have been signed and the Mac OS binary has also been notorized meaning that we've shipped the uh the binary to uh to um sorry that's Apple to Apple which has done the notary and pushed it back to us uh with a with a true value meaning that it's good to go. it has no vulnerabilities in regards to that or no viruses or malware uh infected. So um so they are safe to run uh anyway — and um then you can just verify with a few single commands. So um if it's okay let's uh jump to uh to our website. I'm currently on our website. Uh what you'll see is you will see the download ti up in the right hand corner when you sign in. Um you just click on that and then you get to the sign uh download page. The only thing you need to do is um give it a name. It should actually be rep uh be actually be populated uh in advanced but uh maybe not in my case. continue and then you get to the download page. This download page gives you check sums so you can identify that this is has not been tampered with during the uh the transport. Um and what I'll do is uh I'll show many of my demos on uh on Mac. So uh what I'll do is I will uh download the Mac RM64 assembly. [clears throat] We also have it for this is for Apple silicon. So that's for all the M versions of uh of Apple um Mac OS and the 64-bit version that's the Intel. — And you got the Linux ones too, which is I was saying you got Linux and everything. So yeah. — Yeah. And I'll show you that one running uh in a CI/CD pipeline. That's that's pretty cool because for those of you who work with CI/CD pipelines uh probably know that Windows agents are not the fastest one to uh to first of all kick off but they are also not that fast in running um simple jobs. If you do the exact same on a on an Ubuntu latest version so a Linux uh distribution it runs way faster. So, uh, cool stuff. Documentation. There's an installation and setup guide. Um, so you just need to if you're not familiar with extracting those archives. I know mine was downloaded into my download folder. Anyway, so um I just go to uh to the one uh corresponding to the one I downloaded. Copy that one. And then what we just need to do is jump back. I pre-baked. So, I'm in inside my downloads folder. Just to show you right now, if I type T, there's nothing. So, but this is where the uh the fun part kicks in. If uh so I'll just copy paste or paste now um the code that I uh the snippet that I got from uh from the site. And uh let me u clear the console. So, we're good to go. And let me try to write t version. This is one of the commands that you can just use to verify, hey, there's uh there's access to TE. The very first initial run that you do might will probably take a little bit longer. Uh but that's due to the fact that this is a standalone uh fully bundled uh or single uh binary. Um so you get uh you get the net framework uh that is needed um and additional uh inside that uh that bundled um bundle executable. Uh so there's there are things it needs to unpack. We will release um uh kind of like um binaries of a small file size which require you to have the. NET framework

### [30:00](https://www.youtube.com/watch?v=P5SHfm2Mmhs&t=1800s) Segment 7 (30:00 - 35:00)

installed in advance. So but this is how we released it now and as you can see we are on a 0. 5 uh two version. So you can also do help and by the way you can do help — on any commands any subcomands. It will just print out all the commands you have access to. Uh and this is also really helpful for uh for agents because agents know that they can just run a help command. — All CLI have that. Um — so by running this help command they can actually gather info uh on the commands and how the commands are used. As you can see that there's an uh connect command. For example, if I need if I want to know more about that connect command, let me clear again. I can just say t connect and then help. I'm not connecting or anything like uh like that right now. But this is centralized only in regards to how do I connect uh and connect might seem a bit weird because you can also see that there are local things here. uh there's a uh a local model on disk. So that is how we kind of like open um or or start up with something. Um so you can connect to um your Azure analysis services, your uh um PowerBI fabric workspaces um from any of the oss. Uh if you want to connect to a PowerBI desktop, you of course would have to do that from um from your Windows machine as well. If you're connecting to a local instance of uh analysis services because they use a different protocol, they use TCP which is Windows only. Um so but other than that lay endpoint um knows it all. So as as long as we can connect to that uh we are we're good to go. So that was kind of like just the uh the installation on that uh on that matter. So um let me just quickly jump back. So now we're up and running and you saw it didn't work. I installed it, copy pasted the script and now we're good to go. And now we can — random quick question on the like — did my is my camera green to you? If you're looking at it is okay. I got weird video driver thing as I'm still here so that's fine. I just I wasn't sure if that was my computer or not. Okay. Well, — it looks like night vision — a little bit. We'll just take it as is. You know what? This is tabular editor green. I'm in theme. Yes. — Oh, that's Oh, you got infected already. Yeah. — Yep. All right. Let's roll with that. Okay. — Cool. So uh now we kind now I want to kind of like talk to you about um the whole journey of um building and interacting and you know inspecting your model ending up deploying it. Uh you need to do refreshes and so on so forth. Um so in regards to editing there are several commands that you can utilize. Uh these are just some of them. Uh I will not show all of them today. Um, but let's just start by um by jumping back and uh jump uh stay on the same window. Anyway, let's do that. Um what we could do is we could type uh t and then there's an init command. This init command initializes a completely new model. I will call that um sales. Makes it easy. Um now the cool thing if is if I don't do anything it will initialize as the latest version. So it will uh create a empty um semantic model in compatibility mode PowerBI uh and run 1702 in compatibility level and since we are in a C um a CLI we can kind of like combine multiple uh commands into just one single line. So let's say after I initialize initiate it, I want to connect to that specific model. It will identify that this model is uh sales because it's on disk. Um what I could also do after connect, I could add a table. So let's say te add, which was one of the commands you saw on the slide deck. Um and uh let's create a sales table in that sales database or sales model. uh we need to give it a type because otherwise it don't know uh exactly what we uh what we want to create and now we are running in headless mode we don't have a session so to speak because every time I press enter that command is fired and forgotten so it's fired and forgotten um so I need to use a save command okay now that table has been saved into that initialized model we can do a ts For those of you who are familiar with uh with kind of like the Linu Unix um

### [35:00](https://www.youtube.com/watch?v=P5SHfm2Mmhs&t=2100s) Segment 8 (35:00 - 40:00)

commands, uh ls is a list command. You can also use that on your Mac uh because they run uh the same shell. So ls uh mv for move um and so on so forth uh all those different ones. So if I run this just a single liner, I will create a model. I will connect to it. I'll add a table and I'll list those tables. Hopefully I didn't screw up. There you go. So you can see it created the sales table. Get also get the format. It's in temple format. Right now there are zero tables. Then it you can see it activates or connects to that model. It adds a sales um table afterwards and then we list those tables. So that is kind of like a way to to also do it. Um this can be maybe quite cumbersome and not so user friendly. Uh also not from kind like the entry level from a user who have never worked with uh with um CLI. So that is why we have something called interactive mode. Uh before I run it, let me just quickly clear the console. Uh so t interactive and there you go. So now we are in interactive mode. It stores kind of like a small session uh file when we connect to something. So you can see that it has already connected to sales. So we are inside a terminal now — where we can just you know fire different commands on the run. So the ls will show you just what we had before. If I do another add um and this time I add uh let's say uh sales and uh let me create a measure uh amount. So sales amount this is a measure. That measure needs to have a um an expression of course. Uh we'll just give it a one. So, uh, it created a new measure and as you can see, there's a small asterisk. I hope you can see it. There's a small asterisk down here, uh, at the bottom that indicates that there are, uh, changes to this model that have not yet been saved. This is kind of like one of the values of going into interactive mode. Now, we are working in kind of like a session where we stage things. Um and then we need to do a save in order to write. If we don't want to uh save those uh changes and go back to the last saved uh um edition uh or version, we just do a revert. Um so in order to save, I do a save, it is saved, and the asterisk disappeared. The same thing you have in the desktop app. Um — yep. — So that is I think is is uh is pretty cool. Um I will show you more of those uh when we get uh get to kind of like a live model because I don't want to build up that model from scratch. Then we won't get uh done today. So um another thing is is validation. So we also have built-in uh capabilities of validating. So that will kind of like check that Tom has no errors. So you don't have a uh a measure reference to a referencing to a column that is not there uh and so on so forth. So that is pure validation of the time in a schema and but not in regards to what schematic does. Um that's important to say. Then you can run your BPA analysis and not only that you can also run your fixes right away. So if you run your BPA and it says, "Hey, there are 12 errors in this uh specific model um you forgot to put a format string or uh whatever um you can just use a um a fix switch and then if there's a fix script in your uh in the BBA rules, it will automatically fix those errors um for you in one go. Uh, and you can put in filters and all sorts of things on that. And you can also run your Vertipac analysis directly in the console. And I'll show you test run. I'll show when we get to um to the um to kind of like the CI/CD side of things. Also, in regards to inspecting, uh I've already showed you the ls command. Uh there's also find command so you can uh search for specific uh words within your DAX, within your model. Um if you want to search in expressions, uh in tables or in descriptions or whatever um that

### [40:00](https://www.youtube.com/watch?v=P5SHfm2Mmhs&t=2400s) Segment 9 (40:00 - 45:00)

you can use the the find um uh command for get command just kind of like reads any property um and then you can as it states it you can actually emit that uh as timble or timil. Uh so that's also pretty cool. Dep's also a pretty cool one because it gives you the upstream and downstream dependencies of a uh a specific u object. So if you have a measure and you do a depths on that specific measure or depths on a table, it will show you the dependencies both upstream and downstream. Um, and if we get to the point, I can actually show you because we do you know if uh in tabular editor if you change a uh a the name of a measure and that measure that you're changing uh is being used by another measure. So you have a uh sales and you want to change that to sales amount. But yeah uh so you probably know where I'm going. We have this uh beautiful thing in tabular editor uh that is the formula fix up. So uh if you change a measure name we will cascade that and change um that measure reference all other places otherw otherwise your model will not uh validate. Um — it's the equivalent of like what like desktop kind of does when if you update something there's a it spins disk for a second because it it's updating dependencies and restructuring um essentially those. So yeah you I think you can turn it off if you want to. I believe that feature. Yeah. But like it's it is something you generally want on, right? Because you things are interconnected and they need to point to the right spots. — Definitely. Otherwise, you would probably end up with a lot of red dots in your in the tom explorer. Uh definitely. — Um so let's just jump to um to another window. Um now I'm jumping into windows because then we also get to see all the different uh aspects of the CLI. I have space parts open. This is the tabular editor demo data set. Um I like it a lot. It's pretty valid um in regards to working with uh now let's jump to a console. So going into interactive again. There we go. So I just want to do a connect. And this is also something [snorts] you only get inside the inter uh interactive uh mode. If I just do a connect, I actually get a picker. Um, I get a picker on different things that are kind of like enabled on the specific OS that I'm working on. PowerBI desktop will of course not be enabled on either Linux or um or Mac OS. This is something that is Windows only. Uh, of course, the same as we have an open command for opening a model in tabulated desktop app. We cannot do that on a Linux on or on a Mac. You also see that I have something above the horizontal line. This is because we can create profiles. Profiles are simply just uh bookmarks so to speak for um for different connections. So you can have a profile for your dev, your test, your pro uh profiles for different models uh different domains and instead of you know typing what is the server, what is the or what is the uh the workspace name, what is the model name um then you can just store those in um in profiles create profiles for that and then you uh you can use the profiles also in non-interactive mode. But what I want to show you is I want to connect to um to that specific PowerBI desktop file that I have open because that is a semantic model. It is running the same Vertipac and um Vertipac engine uh underneath. Um and since I only have one file open, it just jumps straight into that one. And you can see it's the space part um file that I have opened. So in here I can do ls and you can see that there's a lot of tables. — Yeah. — Now if I do Yeah. — Sorry. Yeah. Sorry. I just do not of agreement. Yes. — Yes. Cool. Cool. So, um what you can also do is um you can write a query. So, let's try to write a query. If I don't type in anything, you will actually get a prompt. So, it will ask me to enter that specific query. Let's just take uh the branch table. And as you can see, it evaluates the brand table and immediately kind of spits out the value. That's that that's okay. That's cool. It's uh very nice. Uh but imagine you want kind of like the output in a different way. So let's say um query and you can also reference query from a file. Uh you can do it in line or you can have files with queries and then you just reference those files with those uh individual DAX queries. Um, so query Q and then we do

### [45:00](https://www.youtube.com/watch?v=P5SHfm2Mmhs&t=2700s) Segment 10 (45:00 - 50:00)

an evaluate if I spell evaluate and then we do the exact same thing the branch table and then there's something called output format. That output format has different possibilities. You could output that in text which is the default when you look at a table. You can also output it in uh JSON in um in CSV. So imagine you had some automated job running that had to take a snapshot of specific uh values in your model where you were relying on time intelligence. So there it was not something you could snapshot in a in a database so easily. Um you could of course with the semantic link um uh run those queries in a notebook. This is far more cheap. Uh I would say without going into that discussion but uh let me say JSON. And now we got the exact same output but this time in JSON um want to clear this one again. Um and then before jumping ahead um let's do the Vertipac just to show you that uh we can run a Vertipac analysis directly from uh within the console. uh we can just run it without any um any kind of like switches. Uh but as I said with the help command, you can do a vertac help. It will give you all of those different commands. And as you can see, it will it can also give you stat for just a single table. Uh it can give you all stats that you need. Uh you can export that one to a Bpack file and you can take it to DAX Studio um as well. And let's just do a version G all. So this is much more comprehensive um in regards to the analysis that it does uh and you can see you don't only get you also get all the hidden stuff uh and all that. So um that is also the vertip analyzer inside a a terminal. Cool. I like that. — Nice. Good. Now, in regards to deployment, um I'll actually save that if it's okay. So, I I'll save it for um the CI/CD uh stuff, but we can easily do a deployment like you was also possible from the Tabulator 2 CLI. Um and that's also [sighs and gasps] at least before fabric CI/CD uh Python library came and but it's still used a lot. Um there are multiple pipelines out there running deploying um that semantic models through the tabulator editor through CLI just running a tabulator editor. X and then with the uh deploy switch um maybe running a small um C# script uh so using the script switch or switch in order to change connection string depending on whether or not you want to move to u to test or to production or whatever. uh also running your BPA analysis. Um refresh is not something that was possible in uh in the old version and you can also define and manage your uh your incremental refresh policies. That's also pretty uh pretty cool um stuff. — That'll be nice. The um essentially defining like any type of advanced part advanced uh partition refreshes uh and other things for like large or complex models. — Yeah. And with that we actually get to the um the middle part of things. So that is uh how the CLI can then fit into um fit into how we deploy how we validate and do stuff. um at least also back in my old days at this as a consultant um running those BPA rules um having a set of kind of like uh well ststructured rules that we all need to needed to uh to fulfill and if not then we were violating them and we kind of couldn't get our code into main. Um that is something I've been working with uh ever since uh Tableator 2 was uh was ever released. Um Tabulator 2 made it uh so much easier with the uh with the best practice um analyzer. So doing those validations before you even get dirty code into your to your stable branch. Really important. Um also

### [50:00](https://www.youtube.com/watch?v=P5SHfm2Mmhs&t=3000s) Segment 11 (50:00 - 55:00)

validating just validating that hey is this model even valid? Do we have references to something that doesn't exist? Uh so that's kind of like the first thing and I'll show you in a small CI/CD pipeline. Um and then of course you need to deploy to staging. Uh once it's deployed to staging, you would probably want to run some tests and that has been the tricky part. Um so far you could kick off a notebook. you you can always in a pipeline create your own logic uh own small uh um kind of like compute things uh that does that testing for you. Um [clears throat] and also do uh do regression tests. Um so you would test if uh are there any uh record sorry rows in this specific table? uh do my sales value um is that zero or do I have sales? Um you could also you might also want to put in some tolerances in regards to okay I do tolerate a certain amount of uh differences but um but if we kind of like exceed that I want to fail I want to stop I don't want to promote into production. Um — now for the regression of test just to make sure uh people who are like clear on that. Now is this doing an analysis in terms of um found patterns mapped or not mapped keys and other stuff or is it able to run say full DAX queries that can return a data frame off of the data via like say tom connection? — Yes. So you can run a query uh and that is what it does. it um it evaluates a query. That query could be, you know, return a table, a full table. — And then we have um then we have tests in regards to say, okay, is there rows in this table? Um is there a certain set of rows? Is it between? Is it greater than? Is it lower? Is it equal to? Um you could also just output um a single value. So it's just a scalar value. So it could be an integer or whatever and then test against that one. And that that's sometimes where the tolerance also come kicks in. Uh we do have um we actually do have a test suite. Uh and since you're asking we uh let me just quickly jump. So — my only mention of that I would just say is the tabular editor is running all these things like all of the scripts the tabular editor runs to return the data that's being ran locally uh like any other you know um like an MCP function would but it is still passed into the cloud. So my only advice on to people is you know just make sure that if you are talking to any cloud LLM executing some of these things rather than doing it manually just make sure that you know if you're retrieving data from a model it is you know data that is safe to say pass through some type of a cloud environment um or you vetted that one. Yeah, really good point Reed, really good point. And by the way, we do of course have telemetry that is mainly in regards to you know knowing when things fail um in regards to the commands. So which commands are utilized which are not that kind of thing. We do not pass any data whatsoever um in regards to those semantic models to that telemetry. We don't ever touch it. It's the same with tabular editor. We are sock two certified. So we that we cannot do that. Um that is we kind like stay away from uh from the data and then we maintain the metadata instead. Um but the init command just to show you the init command is actually pretty cool. Um — it has uh different possibilities. Uh and one of them that was not the init command sorry the test command. In order to run those tests, you can initiate a test suite. Um, so it's a YAML file that uh holds all of those uh different um uh rules that you set up all those tests that you have set up and they can be there can be many. Um so if we just run a uh test in it and do another help you can see that there's a command test init example. It will create an example with all assertion types in it. Keep typing in. There you go. So, it created the schema. So, that is the kind of like the schema on top of that YAML file. And then it created the YAML file. Uh just a test schema. You can rename it afterwards.

### [55:00](https://www.youtube.com/watch?v=P5SHfm2Mmhs&t=3300s) Segment 12 (55:00 - 60:00)

afterwards. — Yeah. So, what we could do if we uh if we jump to that one. Now, I'm just quickly outputting the content of that file. So, as you can see, it actually has a lot of different uh possibilities in regards to running queries. This one is uh column presence. So whether or not a specific column is there uh empty or not it has row count checks um asset multiple values from a single row query so a lot of different stuff that you can do and I would say that's probably also where we would like uh input because for me also running tests in regards to this specific query um does it suddenly exceed a specific uh timing So running tests on server timing is also something you most likely would like to do um as well. So yeah, but uh that is the test and we'll get back to that uh when we um when we jump into uh into the CI/CD pipeline. So — will there be similar to some of the um because you already do have a bit of a C# library, right, for a [clears throat] lot of like some community contributions, a lot of the native stuff. I'm assuming there will be some expanded library that will be C# but other just like m maybe skills patterns where like these three she uh C# scripts with this set of instructions would be a great scheduled pattern to do every two weeks to be able to like ensure you're not drifting away from something. Definitely. Yeah. Yeah. There are multiple great solutions out there um that would probably do a better job um kind of like looking at the whole picture. Uh we just saw kind of like a a need to also put this into uh into the CLI. That's what we've been kind of like hearing uh from our users um that they really would like to have an easy way to access tests. um in their pipeline since they are already run running u the BPA uh analysis uh maybe deploying through the CLI and so on so forth. If they could get a test um capability that would be really nice. Um and then of course we have uh the kind like promoting things again a deploy um and then we can also do refreshes because typically when you I think I said it when you deploy to test you want to do a refresh your regression tests and if it if those tests all passes let's move on to production. So you have these gates in order to keep your production environment stable. So if we jump to [snorts] my browser again, um I created [clears throat] a small um project inside um a DevOps uh really simple one. Uh in this repo there isn't much um I have a workspace in uh in a test. Um I have uh a couple of um of notebooks. I have a lakehouse. I have a report. I have a semantic model and you can also see I have a bad semantic model um as well. Um and then the test suite is located up here. So this is what I'm going to test for. for some uh some row counts uh exact row counts on customers exactly six uh regional systems in in uh in in regions and at least one product type. You can see it utilizes different um ways to test both on rows greater than equal to empty and so on so forth. Some maybe some of the more simple stuff uh to test for. — Also there are two pipelines. There is a — build validation pipeline and there's a release pipeline. So let's just imagine that this uh this new guy, let's call him uh Daniel, he created a finance model for uh for our team. So he's currently working in a feature and now he's ahead of us. He wants to have this uh semantic model um that he created. He wants to have that passed into the stable branch. So into our maiden branch, merge merged it into there and then promoted on to production. So he goes in and creates a pull request, [snorts] gives it whatever, presses create. Now due to the fact that we of course, and that's also important, have policies on our main and stable branch, we need to run some validation. Um, and

### [1:00:00](https://www.youtube.com/watch?v=P5SHfm2Mmhs&t=3600s) Segment 13 (60:00 - 65:00)

this could be uh not only a validate, but it could also be and will most likely also be a best practice uh analysis and a validation of those rules inside that uh best practice uh analyzer. — Is that a little Lego guy? That is a Okay, so you're little dude. Okay, — there he is. — I think it's a little guy waving. Okay. — Yeah. Yeah, he's happy. And also he has a watch so he's he was probably timing this one because when I did this I was amazed by the speed and I'm not it's probably hasn't anything to do with the CLI. Um, and I would wouldn't put it on that one, but now we finally have the possibility to run those BPA analysis on. Um so let me just quickly go into uh into files uh because that validation pipeline is running on an Ubuntu and as I said the Linux uh distributions uh and agents that are available um in Azure DevOps are way faster. Of course, there's sometimes it um or multiple times it gives meaning to use Windows uh or Mac OS for that matter. If you want to uh sign anything, you need to sign an Mac OS uh binary on a Mac OS uh machine uh or agent. So, so this is definitely one of the reasons why — this specific test went so fast. So let's jump back um and look at uh at the pull request that he just did. There is something wrong — because what h what happens every time how I set it up was that every time you I create a bull request I have a build validation before anything can be moved u merged into main. So this — specific check needs to succeed in order for us to move forward. And as you can see, it also prints out errors and warnings in the same way as tablet educ because we have these um flags in order to output either to your GitHub action or to your acidos pipeline output warnings and arrows and infos and so on so forth so that they are locked uh the right way and so they also make the pipeline fail and you get a good overview of the fact that hey we have a policy you need to set is available and ndx to false on hidden columns otherwise we won't approve. So this guy Danielle needs to go back and fix all his 101 um errors warnings fine um no issue. So that was um that was the way and you can also uh this is kind of like this is the pipeline view. So he needs to go back his pull request cannot be merged in uh and approved before he fixes that. That was the validation part. So, um, and what I won't be doing, I won't kick off the the pipeline for, uh, for releasing. That will take too much, uh, time and will be inefficient. But I want to show you that I ran it two hours ago. Um, what this does is it uh, deploys our solution. It deploys from main. So, that is a stable branch that is always uh, ready to be deployed. It deploys to main. If that if that works, it deploys a product. — The one of the things that I was uh was going to mention too is the I think as people are starting to ex uh explore stuff like this or even get started with like oh I've never done a PR review or auto validation before. um with a lot of those. My favorite suggestion to figuring out what you should do because it the BPA is meant for every uh it's meant for a person that doesn't exist because it's the average of all people. It has rules for every scenario uh but that doesn't apply to everyone. If you ask something like co-pilot or claude like here's the BPA list. Can you split this between ones that you suggest I should have on like bar none you should always do this any ones that are in it depends. can you write me a questionnaire back to me asking me a question for you to determine if you think I should have this on or not as a rule and then define that as the initial set of rules um because otherwise you'll end up fixing so many things that are potentially irrelevant to you because the VPA list can be quite large on fixes — they can and the good thing is you can check the severity so fail on error and so on and so forth — but uh there's — without going into that discussion there are also rules that sometimes are set as kind of like uh error. So, severity 3 um where they would make sense to actually just allow in certain scenarios um one of them uh which I know of because I've talked to Marco on

### [1:05:00](https://www.youtube.com/watch?v=P5SHfm2Mmhs&t=3900s) Segment 14 (65:00 - 70:00)

that one that is the divide function. So having a rule that will block you if you if you use the don't use the divide function that is actually um might not be a good idea because uh the divide function is performance-wise heavier than you using the division and sometimes in maybe [clears throat] larger data sets — there is a reason why you use a division uh character. So should that block me from getting that moved in and how do I then you know bypass that? Uh so I would say the BPA rules kind like only put the the really necessary rules to severity 3. Um — yes exactly like warnings versus blockers but also even to a degree is like if a warning just gets ignored forever just consider removing it. you've seen the same warning for six months and you've never taken action on it, just go ahead and get rid of it. — Yeah. And by the way, um Taberator 3 released these built-in uh BPA rules. Um so they are kind like baked into the uh to the application. Uh the CLI has the exact same thing. So we provide built-in BPA rules that can of course be bypassed with a switch. Um and I'll actually once we're done with this one before we move on to the genensic side of things I'll show you a couple of things uh on that matter as well. Um — be great. — So what it does is uh it checks out that's a main typical thing. Um and what I've done inside my repo I've just put my um my executable. This is the Linux uh distribution, our Linux uh version of our uh tablet CLI uh running in uh 64bit. So if we jump back to the um back to the pipeline, it uses that one and then it deploys. And as you can see, it also prints a warning that this uh is a preview build uh that will expire. Um it prints out where should I where should I can like deploy this one to uh what is the workspace so the target destination and the target um semantic model it will authenticate. It is authenticating using service principle. We support uh interactive so that's you read uh me it supports um search principle both with a secret but also with a cert certificate and then it also supports uh managed identity. So it deploys and once it has deployed it will calculate uh I changed it with this one to a recalculate because it took way too long time to uh to do a calculate on on this one. So um it does a calculate um runs the test read and as you can see it passes. So everything that is in our stable right now is okay. It uh passed those specific um four rules or tests that we have in our had in our test suite. And once that is done, it publishes it and it continues to test uh sorry to deploy into production because the proceeding step and fail. Um you could always add a person that needed to approve before moving into that specific stage. Um but this is a way to kind of like gate it and make it a lot easier for uh for deployment um managers and so on to uh to also uh send things through. If all lights are green then we should be good. Um, yes. What I just wanted to show you if I jump into uh into my interactive mode again and let me just clear this so I get to the top. Um, talked about the BPA rules and and other stuff. I showed that there was this warning every time I enter uh a specific um command. I'm warned that hey this has a has an end of life. Um we saw that in uh the deos pipeline. We didn't see it here because I actually disabled it. So what we could do is config show because there are configurations to be set if you want to. You don't have to but you can kind of like disable things. Um one of the things that you can disable is a spinner. Uh the spinner will it will show when you do uh road pack analysis when you do refreshes. Uh it's just a visual indicator. Um — yep, — you can also hide this preview notice. I

### [1:10:00](https://www.youtube.com/watch?v=P5SHfm2Mmhs&t=4200s) Segment 15 (70:00 - 75:00)

did that uh on my specific um installation. So this was in my config file which I did not delete when I uh when I remove my um installation of Tab to show you the install uh process. — And built-in rules, you can bypass those. Um, and the cool thing about all of these settings, they can also be stored inside a profile file. So you can have different settings for different profiles. So when you run your um different tasks, hey, for this specific profile, I want it to run the BPA analysis on every mutation. This can be — if you do a lot of mutations, and by mutations, I mean changes. Um, then maybe I don't want to have it run the BPA analysis each time. Should I run it on deploy? Yes, that probably be a good idea. Run it on save. Maybe not. — Yes. So, this was just — Yeah. See, personas basically for the LLM or the agent to be able to run with different behaviors for a lot of this stuff and with the defined rule sets too, which will be really nice. — Yeah. And also one of the last thing we got in was uh was actually the u use SQLBI DAX formatter that is um if you know in inside the preferences of tab editor 3 you have the possibility to choose whether or not you want to use our built-in uh DAX format. So because there's also a format function so we can just put a format or um and ask it to format all DAX expressions uh within our semantic model or specific mesh or specific calculated table. We have a built-in inside table editor that is also baked into the CLI. It since it's baked in it runs a lot faster. — But there can be many reasons why you want to use the SQLBI version of the DAX formatter. But that has the implication that it needs to send uh that DAX query to the SQLBI endpoint and get a result back. So there of course is a latency. Um but if you prefer uh the SQLBI uh format uh formatting uh kind of like u logic u over ebuin then go ahead uh switch it on. It's just a true or false flag. Um and you set that via uh config set and then which configuration and then you give it a value. Okay, that was enough on uh on the CIC. Let's move to the uh Gent development uh because I know a lot of you guys uh are interested in that one. So just to draw the picture um for tablet editor side of things we have we had the uh the the built-in uh AI assistant that was the one who was which was released back in yeah January or March I can't really remember for sure. Um so what also fits into that are the kind like just the agents working directly on the model metadata. uh that of course can be difficult due to the fact that it does not have the knowledge of uh of timber for example. So it there it can easily make mistakes. Then you have MCP service. You have the um you have maximums um MCP engine really cool stuff. You have uh the uh the Microsoft modeling MCP. Cool stuff. Uh I've been using the modeling uh MCP uh numerous times, a number of times. So also really cool. And then you have the CLI. So they are kind of like just you know um different tools uh catering for different personas, different purposes. Um but that is kind of like also where we fit in with the new CLI um into that. So what can we use these agents for? Well, we can just chat there. So, interactively ask it to hey add a table to my model and if it's running on the CLI. So that skill set that the CLI knows um it will of course just create a TE script um or a TE command um that then calls a script if — if that is uh that what you do — dependencies uh do validation whatever uh whole different uh all different type of things that it can do uh but we can also take it a little bit further and as I said with the skills um and I'm going show you a uh a small demo. Again, uh I don't do uh recorded demos, so there's always a risk. Uh — do it live. — But yeah, — I do live. I do it live. Uh but while it runs because of course um the agent need

### [1:15:00](https://www.youtube.com/watch?v=P5SHfm2Mmhs&t=4500s) Segment 16 (75:00 - 80:00)

to uh since it's clawed, it needs to fibergate or do uh lot of funny uh terms. It needs to do stuff that might take a few minutes. While we do that, we'll try to kind of jump into a different screen and just interact with the with a semantic model, ask it to create a new one and so on so forth. So, cloud code plus the tablet new tablet CLI and with those uh skills that as I said is kind of like a dictionary or playbook. um so that Claude and the AI agent does not have to or whatever agent you use don't have to kind of like um learn from the help uh and so on so forth. So, um let's jump back um and then let me kick off a small demo where I will just spin up Claude now just for to kind of set the scene. Um imagine you were uh at a client uh you came home with a design brief for a new semantic model. um wouldn't it be cool if we could just you know go back an hour later and say hey it's your semantic model uh this is a starting point let's use that uh for a discussion um that is what you can do with AI uh you can do it with the modeling MCP with our TLI so the there is um in the specific folder I'm in so in the ti demo AI there is a folder with a design brief These are just a markdown file explaining hey we want to have uh these dimensions these tables. So imagine you went to the customer and collected the business matrix uh old Kimble way. So what I could just say based on the ah let me do it like this uh create a semantic model based on the like that. Now the skills are also located inside this specific um folder. So it will pick up those skills. Those skills could also be uh be um be baked in or installed anyway. Uh so not just be in a local repo but be more globally available. It this is a north wind. So many of you probably know that one as a very old uh demo set from Microsoft. So we will create a north wind and it has already started and that is also what I want to mention with this demo. It immediately writes the exact same commands that I as a human would do. — The same commands as an agent would do. So that init command in it solution model. This is simple because we are placing that specific model inside a solution folder in a model folder and we're creating a northwind semantic folder. it's a PBI format blah blah. It actually identifies since the skill I have has not been completely updated. It actually identifies that hey, we don't need to set the PBI format. all these all this all that stuff. We can just run a single init command with the name and then it will automatically default to uh to the latest uh compatibility level. While that runs, let's go to TA model. So claw again the same skills are also in the folder the TC live demo that I'm currently um located in. So what I could do was just say and there's no design brief so it knows nothing about anything. So let's say um create a new Friday It picks up the skills and it says, "Hey, I'll create uh it will just verify the CLI is available. Yes, it'll run the command TE version. " That was kind of like our intro command. And there you go. Um 18 seconds, it created a new semantic model. You get the output. you get the full trans uh transparency of commands that it did. It actually also asks me, hey, uh would I like a different civilization? Should we add measures? Add a sales table with a few. So that that's kind of like a way that you can interact um with your semantic model, building that semantic model. And we could even, you know, ask it to do BPA analysis, uh, do deployment. Of course, if we ask it to do deployment

### [1:20:00](https://www.youtube.com/watch?v=P5SHfm2Mmhs&t=4800s) Segment 17 (80:00 - 85:00)

it will probably, uh, get back to us and ask, hey, how do we want to authenticate? Um what we do in in the C in the CLI is we rely also on the uh in regards to the um source principle authentication we rely on the same environment variables that you can set um which also works for the um for the uh Azure CLI and so on so forth. So you set a client ID, — you set a uh a tenant ID and you set a client secret. Um so 30 seconds it created it. So, um, we can jump out. We can do an ls. There's a folder called Friday. Jump into that folder. Just quickly clear that one. Um, and then say uh T. Yeah, let's just uh we can just uh go out again because Oh, sorry. We really don't need it. T interactive. Once we're there, let's do a connect Friday. There you go. And do an LS. And there you [clears throat] go. So, and I could continue. Um, let's jump to um to the design brief is still running. uh just for you to know because that's also uh something that is part of the um uh the skill set is that it will once it creates things it will also um should also do a BPA analysis. So if there are violations after that BPA analysis it will um it will also uh run that BPA analysis for us. Um it is working on the product table, the order table, date table and so on so forth. Um adding different columns. Of course, this one is taking longer time than it did during my demo uh earlier today, but um that's how it is. — Got to pray to the cloud gods. Yeah. — Yeah. Exactly. So jumping back if it's okay, I think we could wrap up with a few uh kind of like um closing marks and then jump into questions. Uh because one question is obvious. Why should I choose the tablet editor the new tablet editor CLI? Why should I choose T and uh and not the tablet CLI? Well, platform is one thing. Um, you saw the BPA analysis uh ran in in 12 or 10 seconds or something like that on an Ubuntu. Uh, if you have a Mac OS, you can use it now. It's a single contained binary. So, you don't need to have multiple um uh you know a runtime installed and all that stuff. Uh, and then the scoping. So, this is kind of like full life cycle. you can do your validation, processing, you can do your deployment, u all that stuff, testing as well. Um the output also important um because the output in the old CLI which was not built as a CLI. It was the desktop application that if you ran it or if you run it with arguments, it turns into a CLI. So that was never the purpose of it being a CLI. This one is built with pure intention of building a standalone uh CLI for semantic model development. Um so text CSV JSON if you use the get command to get a um a definition sorry of a uh if of a table of a measure or something or for the whole model you can output that in tindle or timil. So you will either have the BIM file or the tinsel representation of your model or the tim both of them have uh these native pipeline locks. Um so the ones that is used during the CSV pipelines authentication um managed identity uh is all over the place. So um and we support environment variables and so on so forth. Um, — excellent. — And a small thing, if you come from the tablet 2 uh CLI, there is a migrate. Um, — oh command, it doesn't do anything. It kind of like just maps to you what the what would kind like if you have if you had this specific command line in the TE2, how would then look like in um in the new CLI? Um, but there's also an environmental variable that you can put or a switch that you could put as well. So all of your commands uh Oh, so sorry. So that it will um accept old commands. So the new CLI will accept [clears throat] — the exact same uh command structure that

### [1:25:00](https://www.youtube.com/watch?v=P5SHfm2Mmhs&t=5100s) Segment 18 (85:00 - 90:00)

you had and if you rename TE if you rename that to TE2 it will behave as it if it was tabular editor too CLI so you don't have to rewrite it was a way to for us to kind of like make sure that you didn't have to rewrite all of your CI/CD pipelines and stuff. Um, — yeah, you don't need to reinvent the wheel, right? — No, exactly. Uh, yeah. So, go ahead, try it out. Um, the best thing is to just go into uh go into tablet website. If you don't have an account, just create one. Um, you don't need a license to have one. So, create one. Uh, jump up into the right hand side corner, download it uh in whatever binary you need, and just get started. Um on that page you'll also find um the links for the release block. Um the release block will also point to uh to where you can find and download the CLI. Um the features so sorry the documentation. So everything in regards to CI/CD uh all the commands and how they can be utilized examples of those that you can copy um are also um in the documentation. And then the way that we kind of like again I want to shout out uh — we need you uh [clears throat] so we need kind of like we need feedback uh so we need feedback to um to build products that that gives value uh to you guys. So, so give us all the feedback whether it's good, it's bad. Um, so we have created a GitHub uh repo for that tablet CLI. There's discussion uh there's issues um as well. So um and we'll also try to see how we can uh for example I talked about the skills uh for Claude so cover more of the agentic side of things. Um we will uh we'll figure out the best way. Uh I'm sure uh people above my pay grade knows best where to put those kind of things to reach out. Um so skills and tips and tricks and uh we will for sure be writing a lot of blogs on this one as well. — And I dropped the link for the GitHub uh Tableau editor CLI uh in the chats. And I also had a question and let me bring up um yeah uh I'm going to say hair hit I guess. Um I had a question on you might have missed it but are you going to be providing a skill to teach the AI or just any LLM um uh tool that you use on how to use it? — Yes, we are going to provide skills. Um that is uh that's kind of like also tapping a bit into the slide at least in the last um in the last box. Uh but if we take it from today so we released it today uh it is it says free but it is uh it's without a license so to speak. Um, we will eventually by the end of the uh end of life figure out a uh licensing model for the CLI um and how it should be licensed and how possibly um certain uh features commands are to be gated because we have a huge backlog of ideas and things we want to do uh with the CLI. Um, so of course we need to figure out how do we license that the best way. Um, so please be aware that it is in in limited preview. Um, and runs through September 30 30th. — Yeah. And I think it even says very clearly on the website like do like don't put this into enterprise production like just yet. It is this is something where we are getting community feedback to finalize it for enterprise. It is not enterprise ready yet. That's — this is version zero, not version one. Yeah. — Yeah. Exactly. As soon as we go GA, then it'll be version one. But uh so don't use it in uh in production CI/CD. Um if you have a huge model where you don't have uh hopefully you do have it uh under source control, but don't you know try to uh it's in preview. There might be stuff. Um but that's what we will hope you guys will kind of like give us a feedback. Uh whatever um you hit of errors or things you find cumbersome or something like that provide us feedback. Okay. So, and then um if you want to learn more, yeah, go ahead, use it. Read the blogs, read the doc. Um and help us help you uh and again uh I've mentioned in the beginning, we have a webinar uh running uh on the 10th of June. Uh that'll actually be Kurt and

### [1:30:00](https://www.youtube.com/watch?v=P5SHfm2Mmhs&t=5400s) Segment 19 (90:00 - 95:00)

me. Um — so really excited to also do a webinar with Kurt. Um, there's no doubt that Kurt will probably cover the uh the agenda side of things a bit more than I will and I'll probably cover the CI/CD part. Uh, but it'll be really fun. Uh, it's half an hour 45 minutes as well. Um, on on that one. Um, and again, so — anything Kurt is great. So, yeah. — Yeah. Exactly. Amazing guy. So uh and license model I said that we're also looking into how can we make that installation um more seamless more easy uh I know it might be a you know um might be a blogger or the entry uh the entry level is is maybe a little bit too high if uh if you have never worked with CLI before. If you have no clue of a terminal um then looking at scripts might seem a bit frightening. So, how can we make that easier for you guys? Um, how can we also cater for auto updates? How do we you always make sure that your CLI is up to date? Maybe through a command or something like that. Um, that is on an idea basis right now. Uh, of course, expanded AI uh integrations, you already mentioned it, Reed, uh, the skills. So, skills for multiple um, agents, not just Claude. Um and then of course bug fixes hardening and getting through that. — Well you don't have to use terminal as well too just for some of those like the uh like say cloud desktop using cloud code like it is uh — a at least a prettier version of a few others. So there are some entryways. So like that would be my suggestion for if people haven't ever really used cloud code before and you don't want to like — open up any type of a PowerShell terminal or command line interface at all um to a tooling like um copilot in VS Code uh builtin for GitHub copilot or something like code inside of cloud desktop when configured properly could still leverage this. So that's like an intermediate step. You don't want to go full terminal. — Yeah. things like uh I'm a VS Code guy, so uh I use VS Code all the time. Uh cursor a little bit. So yeah, you know, it doesn't have to be inside a cursor, so to speak. — Exactly. Plenty of front end uh UIs to how you know to chat with your data with this stuff. — Yeah. Exactly. So with that, that was actually um it for me. Um, so maybe we could do uh — I think some questions. — Yeah, I had the one there and I posted it in the chat. So, we had Harris's question. If there's any others from uh the people tuning in still right now, feel free to drop those in. I will say there was a comment from Donald uh just to say thanks. A lot to think about. Um, seems like there's quite a few people who will uh definitely be exploring a few things and signing up for that private preview. And then Daniel, yeah, thank you. It's your pure 90 minutes of pure awesomeness like the potential for this I think is uh — very high and I think you guys are just scratching the surface as you see how people are going to integrate this. Um, but uh I think it will have an interesting story and I'll be curious to see how the story evolves with integrations of this or some of the MCPS and other tooling like Maxim was uh was just on the other week talking about some of the other tools that he has in those. And I think all of these uh will have some way to like play nicely together with integrations of this stuff. For sure. — I fully agree. Exciting times ahead. — Yeah, exactly. And just hopefully time saved as well. — We should make it easier. — Exactly. Yes. Um any final thoughts, comments, words of wisdom or anything to kind of uh wrap up? — No, it's it was just a huge pleasure being on. Um and as I said, there are multiple kind of like um uh edges and corners that we could have had have touched upon. I think we pretty much um came across not most of it but at least a decent amount of it. Um but then again we might have seen you know um uh use cases um that you haven't seen and vice versa. So you might have a use case that where would make sense to use the CLI where there's something you're missing or something like that. You know just post it post the ideas. um create the box if there is something like that. Uh discuss things with us on the GitHub page. Um I'm I'm truly excited about this one. We uh Daniela and I have been high-fiving each other on the on the office a few times just because

### [1:35:00](https://www.youtube.com/watch?v=P5SHfm2Mmhs&t=5700s) Segment 20 (95:00 - 98:00)

we thought, okay, how can a terminal suddenly be so sexy? Uh but it uh it has been fun. um a fun ride and uh — I'm glad that we uh — that we shipped it today and I'm happy that it was uh that we got the opportunity to um to show it to the people finally. — Yeah. No. And as always, I appreciate opportunities um where yourself, Daniel, or others uh get a chance to come on and uh give myself and the community that watches these streams a bit of those early our initial um — Thanks. — previews and reviews of some of this stuff. So, it's been great to continuously get you guys back on to talk about some of these things. — We would be happy anytime, I'm sure. — Oh, yeah. looking forward to the next one and uh the next big push and we'll probably I think honestly like you know have opportunity for something like after initial release in September because I'm sure there'll be some additional functions patches and a better uh overall narrative story around like three to five common scenarios and where you might want to like integrate this from a user story perspective for sure. — Yeah. Was that a question? — No. Yeah. just saying it would Yeah. Like I see Apple opportunity to get you guys back on again to talk about this once it comes out of preview. Yeah. — Yeah. And also kind like we we needed to be of course due to the fact that okay what would be in what would be initial release when we go into GA that's I think if you had all the time in the world everything could be put in. Um but it's also at a certain point you kind of like need to cut it and then say okay this would be the initial one and then we go moving forward. Uh but we have so many ideas. uh many ideas uh on the plate. Um — some might you know uh work in real life. We don't know but um but that is what we'll be uh be starting on uh Monday morning uh and then uh then continuing um the work on the CLI. Definitely — looking forward to seeing how it evolves. Um but thank you for taking so much time out of your Friday evening for this and coming on. Um, this great and yeah, I uh we'll probably be running into either at like Fabcon or data mines, one of the two — for sure. I'll be at uh I'll actually be at both uh data mines connect and uh and we will also be there uh with tabulator and of course also fatcon in Barcelona. Uh I have a session but down there um on CICD in fabric and um yeah so for sure. — Excellent. Looking forward to seeing you then. And yeah, have a great rest of your weekend everyone. Thanks for tuning in on this. This has been fantastic and um see you all in the next stream. Cheers. — Thank you so much for watching. Please consider hitting that like and subscribe button. And if you want to help support this channel, take a look at our channel memberships or our merchandise store for cool swag. And last but not least, please consider sharing this video on your social media platform of choice to help our channel grow. So until next time.

---
*Источник: https://ekstraktznaniy.ru/video/52942*