Tableau Tabcmd – underrated or useless?
As an application admin, I always find myself in a position to automate administrative and recurrent tasks as much as possible. Tableau is no different. Lots of admin tasks needed to be automated.

First encounter…
I’ve first heard about Tabcmd few years ago, I think it was 2012 and I was using Tableau 7 at that time. My manager asked me to find a way to export the Tableau reports to images and send the images by email to different users. As there was no out-of-the-box solution for achieving this at that time, I’ve turned to Google and found the Tableau Community where other fellow Tableau admins or users had similar questions and all the answers led to using Tabcmd to export Tableau reports to images or PDF files and then leverage some 3rd party tools to email them out.
Then and now…

Since 2012, I’ve been using Tabcmd constantly for automating Tableau tasks, either for other admin fellows or for common users.
You can imagine what an Admin can do with Tabcmd, if not I would suggest you to install Tabcmd and run few commands:
1 |
tabcmd commands |
The most important custom developments I’ve built with Tabcmd for users were:
- Trigger an extract refresh from outside Tableau Server or via 3rd party job schedulers (separate article)
- Auto-recovery for failed extracts (separate article)
- Stitch 2 or more extracts to ingest data faster by not refreshing the stale data (separate article)
- Backup / Restore / Migrate objects with Tabcmd and REST API (separate article)
Jumping forward few years, nowadays I still enjoy using Tabcmd and I hope this CLI tool will never be decommissioned and will continue to evolve.
Tabcmd vs. REST API
We all know that things evolve at a very fast pace nowadays and the trend is to use REST APIs for most app integrations. With Tableau there is no difference. Even since the REST API for Tableau was introduced back in 2015 along with Tableau Server 9.1, it picked up speed and more and more endpoints were made available for the Tableau users to make use of.
Even though I enjoy using the Tableau REST API very much, I still like using Tableau’s Tabcmd whenever possible. It saved me a lot of time and sweat to accomplish different integrations and custom developments compared to what I would have needed to go through by using the REST API solely.
For example: try to refresh an extract by using the REST API asynchronously (means: wait until the extract is refreshed so you get the success or failure result for the run). Tried this with the REST API, and it was a nightmare to implement and in the end didn’t work as expected.
It was a bummer for me to see the nested projects being implemented into Tableau Server starting with version 10.5 and not bringing the same nested projects support to Tabcmd’s commands.
This brings me to my latest conquer: having my idea implemented into the Tabcmd: Ability to use sub-projects / nested projects with Tabcmd
Are you a Tableau admin fellow or have you used Tabcmd in your custom developments? Do you enjoy it as much as I do? Leave a comment below!