A Native macOS and Linux Semantic Model Editor
Introduction
I made the switch to Linux a few years ago for my personal computers. I would have loved to have done the same for work, but a few things keep my professional systems on Windows.
I have been working as a data engineer for several years with the Microsoft stack. I first started working on SQL Server Analysis Services (SSAS) 2016. After working on multiple versions of SSAS on-premises, I hopped on the Microsoft Fabric bandwagon about six months after its release. One of the things I loved is that I wasn't starting from scratch going from cubes to semantic models because they use the same underlying technology. This meant I could continue building semantic models in Visual Studio with the Analysis Services Projects extension and publish to Microsoft Fabric.
This is where my professional life has been tied to Windows. Working with Fabric, the main tools I use are Visual Studio and Power BI Desktop. Both of these tools are Windows only. I know this is a frustration point for data engineers out there, especially the ones who run macOS, which is much more common for data engineers than Linux is. If my site traffic is any indication, about 30% of the visits to my Fabric lakehouse and Python posts over the last week came from macOS computers.
After years of frustration and believing there should be more tooling available outside of the Windows operating system, I decided to build my own semantic modeling tool called Semantic Modeler.
Another Tool... yay...
Okay, okay, but hear me out. This is an area where I think data engineers are underserved and I wanted to build something that filled some gaps in my workflow as well as added some nice things to make my job a little easier.
Up to this point I have mainly been using Visual Studio with Analysis Services Projects extension. There are some things I really like about it, but I also have a few complaints about it.
Pros
- Git. Being able to keep multiple models in source control has been a necessity.
- Pop out DAX editor. This is a MUCH better experience than Power BI Desktop.
- Dark Mode (Long before Power BI Desktop)
- You know exactly where a measure is being inserted.
- Preview of data in Measures
Cons
- The colors in dark mode make text hard to read.
- Usually 6 or more months behind in technology support.
- Why is there not TMDL support yet?
- Where is Direct Lake support?
Those are just some of the main things I have run into. I have also used Power BI Desktop a lot in the past but it has its own set of annoyances. To be clear, Power BI Desktop is very much a self-service business intelligence tool and is not primarily geared to semantic model creation like it is in Visual Studio. Power BI Desktop is a great tool for people wanting to take spreadsheets or tables in a database and visualize the data in them to tell a story. As a data engineer, I care more about tracking code changes, governance, and reusability of semantic models. With Power BI Desktop, the semantic model is a second-class citizen that is more a byproduct of the report as opposed to the center of the design.
As for other options out there, there is Tabular Editor 2 and Tabular Editor 3. I never really bothered with Tabular Editor 2 simply because it lacks the ability to import data for preview. That seemed to me like it wasn't very helpful. Tabular Editor 3 seems to be a power-user-level application that was more than I needed. I did try the trial of it and just didn't find it very intuitive to use. That is simply my personal experience. I am sure there are people out there who find it very easy to work with.
Why Couldn't We Do This Before?
Considering all the information from the previous section, there are some things that I felt were completely missing that should just be a no-brainer. These may exist in other tooling or may be in the works, but these are some ideas I brought to Semantic Modeler that I thought were imperative.
Cross-Platform The lack of tooling on macOS and Linux has been baffling to me the last few years. It blows my mind seeing Microsoft presenters at conferences giving demos on MacBooks, but there isn't a version of Power BI Desktop for Mac?
Environments This is the second item in this section because I do believe that other than cross-platform support, this is a great feature. So what are Environments?
Have you been working in a report in Power BI Desktop or building a model in Visual Studio and you have the model all ready to go in dev? It has been tested and approved, so it is time to roll it to UAT or production. In order to do this, you have to go in and change the connection string of your data sources and in VS you have to change the path of the model where it is going to publish to. After you do that, you can then publish the model. Now if you need to change environments again, you have to go back and change the connections and publish path.
In Semantic Modeler you can create objects called Environments that store the connection strings and publish paths for each environment you create. If you have Development, UAT, and Production environments at your company, you can create Environments in Semantic Modeler for each one. When you are ready to publish, simply publish your semantic model and it will prompt you which environment you want to publish to. No more keeping track of connection strings or hunting them down each time you need to publish to a different environment.
Export Data Dictionary Ever had a business analyst or a CIO ask you, "Can you give me a spreadsheet of the calculations for the measures in that cube?" Well, I have. Multiple times. That prompted me to create a Data Dictionary export. In Semantic Modeler you can export a semantic model to a data dictionary in xlsx or ods format. The export includes a sheet with a list of tables from the model, a sheet with a list of all the columns, a sheet with measures and their formulas, and a sheet with the relationships between the tables. The sheets all have relevant data points as well such as description fields, data types, etc. This tedious task is now only a couple of clicks away.
Import Data Dictionary What good is a data dictionary export without being able to import the data? With the Import Data Dictionary feature, you can take the data dictionary the analyst filled in with all the description fields, and import it directly into the model. This makes it easier for data engineers and business analysts to work together.
AI Documentation (Coming Soon) Does a business analyst really want to fill out 100+ descriptions for fields in a semantic model? Not likely. With the AI Documentation feature, you can send the metadata of the semantic model to AI to let it populate the descriptions with what it can extrapolate from the table design and DAX.
Export Diagram Another request I receive occasionally is "Can we see what the model looks like?" I have always found this request kind of odd, but my answer has always been no due to there not really being a way to show this except maybe taking a screenshot in Power BI Desktop or the diagram mode in Visual Studio. The Export Diagram feature allows you to export the semantic model diagram in a variety of formats such as png, svg, and pdf.
Import From Fabric There have been times when I have tried to import existing semantic models that were built in Power BI Service into Visual Studio. If you have ever tried that, you will know it isn't supported. Semantic Modeler does support it.
Import From Power BI Ever had a business analyst give you a pbix file and ask if you can get the semantic model from it? This is exactly what the Import from Power BI feature does. Once you import it into a Semantic Modeler project, you no longer have to worry about publishing a pesky report with the model.
Finally, We Can Have Nice Things
Once I got what should have been the basics out of the way, I moved on to some polish. There are things that mostly are lacking in Visual Studio and some in Power BI Desktop.
Auto Assign Connections When publishing from Visual Studio, if you are publishing and processing a model to Fabric for the first time, it will fail to process. This is because there isn't a data connection setup for the semantic model yet. You need to log into Fabric, find the model, go into the settings and change the connection.
With Semantic Modeler, as long as a connection for the data source your semantic model is using exists in Fabric, when you publish to Fabric for the first time, the connection will be automatically assigned to the semantic model in Fabric.
Text I can read in dark mode I can't promise you that light mode works well, but dark mode is very easy to read. For those of you who like being blinded by your screens, I would love feedback on the color scheme and if there are any changes that would make it easier for you to use Semantic Modeler in light mode.
Default Summarization Control This has been something that has driven me crazy for years. When creating a new semantic model in Power BI Desktop and Visual Studio, it automattically sets the Summarization property to "default". This behavior causes numeric columns to sum by default or whatever action the analytics tool uses. For Power BI it is usually Sum.
In Semantic Modeler you can change the default behavior of numeric fields. This includes setting them to "Do Not Summarize". This is a fantastic feature for those who do not enjoy going through every table and assigning the numeric columns to "Do Not Summarize".
Ability to switch between bim (TMSL) and TMDL Long live the bim. You have been a reliable friend, but there is a new kid in town that is much easier to work with for those Python and YAML lovers. Luckily, Semantic Modeler will allow you to work with both formats in a model so you don't have to choose one or the other.
Ability to open VS Solutions I have worked with Visual Studio for a long time so I thought it would make life much easier being compatible with VS Solutions. VS Solutions open in Semantic Modeler as Projects. There is a project manager in Semantic Modeler where you can flip between projects without ever closing Semantic Modeler.
There are other features that are worth mentioning but I am trying to not write a novel. If you would like to learn more about Semantic Modeler or find guides on how to use it, visit Semantic Modeler Doc.
Conclusion
If you are interested in Semantic Modeler, I encourage you to download it and give it a try. It is currently in Public Beta as of June 1, 2026. Users will be notified in the app during the Public Beta period how to get a discount when it is released as a paid version as a thank you for helping shape the product and find any bugs still lurking out there.
In the future, I plan on posting about how Semantic Modeler was built. I learned a lot while working on this project and want to share some things with you all to hopefully help anyone wanting to work on their own project in the future.
I don't have a comments section yet, so feel free to send me feedback on this blog.
Kevin is a Senior Data Architect at a law firm specializing in Microsoft Fabric by day. Founder of Fact Foundry LLC and creator of data engineering tools in his spare time. He is a father, an occasional gamer, and lover of many different types of music.
The opinions expressed on this site are my own and may not represent my employer's view.
About this blog...
There is finally a Semantic Model editor that runs native on macOS and Linux called Semantic Modeler from Fact Foundry! It's compatible with Tabular Models for Microsoft Fabric, SQL Server Analysis Services and Azure Analysis Services!
Archives
- 2026
- 2025
- 2023
- 2022
- 2021
