I will show you today how to automate mundane tasks like frequent artboard export with a little tool that comes with Sketch (which you can use to do even more advanced things).
Once you have build up your layouts and visual designs in Sketch, you probably have more than 1 dozen artboards. All steps involved, ie. minimising the layer tree, selecting artboards, exporting 1x, 2x and 3x separately takes too much time, especially if you keep redoing this procedure frequently.
A possible solution
Luckily, the guys @bohemiancoding, the creators of popular design tool Sketch, started with "the end in mind”. In fact, Sketch has a CLI (short for command line interface in the dev world) called Sketchtool.
If you have Sketch installed already, skip to the next paragraph. Otherwise download Sketch first and then continue with the very next step.
How to install the Sketch command line tool, Sketchtool
The CLI cannot be installed as you would normally install a program. But hey, we want to learn something here, right? So, let’s tip our toes into the dev world. It will be pretty cool.
A couple of things for context and understanding
- The terminal app (installed on every Mac) is a simple text-based way of having the Mac do what you normally do with other programs
- Once you open the terminal window, you are basically moved automatically into the very root folder of your Mac, which is usually your Mac ‘username’ folder (same way as if you would go into the same folder through the Finder)
Making the install
- On your Mac, in order to open the native terminal app, press CMD+Space and then enter “terminal”, hit RETURN or locate the app in the “Applications” folder. A blank window should open in which you will see something like this at the top left:
MBPrefers to the name of your Mac and
andreeis the username of your Mac account (the one you log-in with)
To install the CLI, type
sudo sh /Applications/Sketch.app/Contents/Resources/sketchtool/install.shand hit RETURN (keep in mind that in later version that file path above (
/Applications/…) may have changed)
- UPDATE May 2019: The
sketchtoolapp now comes already installed. You may find the executable file in
/Applications/Sketch.app/Contents/Resources/sketchtool/bin/. Make sure to add the leader
/because then it looks into the root folder of your Mac, not the Home folder (which is your Mac username, this thingy here
~/implies Home folder)
- If asked for your Mac account password, enter it (the same as you log-in to your Mac). Note: You will not see each character written out visually
You should now see a text output like this (as of version 3.8.1):
Once that is done, type in
sketchtool in terminal and hit RETURN. You should see exactly what is shown below.
The Sketchtool is now installed and you can use it from any folder on your machine. Let’s start with the cool stuff!
Save time with Sketchtool on a day-to-day basis
You will need
- The terminal app
- A Finder window of a current project
.sketchfile with more than 4-5 artboards within that project folder (Finder may not show the file extension
Note: Hit me up on if you have a question via Twitter @andreehuk
Having a terminal window open, a blinking cursor indicates that you are basically “sitting” in some folder on your Mac. You can use the command
cd %folderName% to switch to other folders.
%folderName% stands for the name of the folder that is shown in Finder. Now, in order to keep this very simple and straight forward, the Mac offers a trick for non-developers to easily switch between folders in terminal:
cdand add a space
- Go to the Finder and locate the folder of a current project so that you see the folder name in Finder, do not yet open that folder
- Drag the folder over into the terminal app, the folder path will then auto-complete
- Hit RETURN to open that folder in the terminal window
Note: Whenever you see
$, that basically implies that whatever follows is a command to be typed in terminal.
Pro Tip: In terminal, hitting cursor-up will show the previous command
sketchtool, the terminal will reply by showing help about
Sketchtool, for example:
- Export artboards - Export layers - Export pages - Export slices
The command to export (default: directory where the
.sketch file is located) all artboards is as follows:
$ sketchtool export artboards %fileName%
%fileName% with the name of your Sketch file, in my case:
$ sketchtool export artboards layouts.sketch
The previous command will export all artboards in 1x (default) and will list each name in terminal.
Pro Tip: If you want to type in a file or folders, type the first character and hit TAB. Terminal will auto-complete the filename. If you have >1 files that start with the same first letter, terminal does not do anything because it does not know what file you meant. Just keep on typing the next character and hit TAB again. Voilà.
What about exporting 2x or 3x? Yes, that is also possible. Type:
$ sketchtool export artboards layouts.sketch --scales=2x
$ sketchtool export artboards layouts.sketch --scales=3x
You can change the
3 for any number, Sketchtool automatically adds the scale to the end of the filename. Awesome. I have myself not tried anything above
10 as that already took ages to export.
If you do not want the artboard to be exported within the artboard dimensions but only objects that sit on those artboards, you can run the command below. It will trim all artboards down to the smallest rectangle possible, sort of like double-clicking a layer in Photoshop (which then sets the marquee around objects in the document).
$ sketchtool export artboards layouts.sketch --trimmed=YES
If you would like artboards to have a background color, simply run:
$ sketchtool export artboards layouts.sketch --background=white
You can substitute
white for other colors, like
black or else. In fact, Sketchtool exports artboards with any background color you want, but it has to be described in HEX code, see this.
Pro tip: You can combine commands for
--background or else.
Exporting all artboards at once
In order to save even more time, I have written a super lightweight script ‘e.sh' that exports all artboards in 1x, 2x and 3x with a transparent background (default). Download the script here and copy it into your Sketch project folder (either through terminal or Finder).
#!/bin/bash $ sketchtool export artboards $1 —scales=1x $ sketchtool export artboards $1 —scales=2x $ sketchtool export artboards $1 —scales=3x
Once the script is in your project folder, simply run
$ sh e.sh %fileName%
I have kept the script name short for the purpose of less typing.
Pro: Exporting all artboards at once on steroids
If you do not even want to add the filename to the command every time, open the script in any editor like TextEdit or through terminal (command below) and exchange
$1 with your
.sketch filename. Granted that you are in the project folder in terminal, you can simply run the following command to export the artboards in 1-3x for the current project. If you have >1
.sketch file, simply open the script and copy+paste the Sketchtool commands and change the filename accordingly.