paint-brush
Automate: Export Sketch Artboards without Sketchby@andreehuk

Automate: Export Sketch Artboards without Sketch

by Andree HukJune 27th, 2017
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

Spend more time on creative design work.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail

Coin Mentioned

Mention Thumbnail
featured image - Automate: Export Sketch Artboards without Sketch
Andree Huk HackerNoon profile picture

Spend more time on creative design work.

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).

(Pssst: blended.io will launch two workshops: Version-Controlled Sketch for Skillful Designers & Design Teams and Git for Marvellous Designers)

the problem

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 executing commands that windows-based apps execute in the background.
  • 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

  1. 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: MBP:/ andree$ or MBP:~ andree$. MBP refers to the name of your Mac and andree is the username of your Mac account (the one you log-in with)
  2. To install the CLI, type sudo sh /Applications/Sketch.app/Contents/Resources/sketchtool/install.sh and hit RETURN (keep in mind that in later version that file path above (/Applications/…) may have changed)
  3. 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):

Screenshot 1: After installing Sketchtool.

Once that is done, type in sketchtool in terminal and hit RETURN. You should see exactly what is shown below.

Screenshot 2: Sketchtool is successfully installed and shows what commands can be executed.

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
  • .sketch file with more than 4-5 artboards within that project folder (Finder may not show the file extension .sketch)

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:

  • Type cd and 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

Screenshot 3: Click and drag that folder item over into terminal.

Screenshot 4: I have dragged over the folder into terminal, the folder path appears after _cd_.

Screenshot 5: After hitting RETURN, I am now located in “test-project” as shown at ‘MBP:test-project andree$’.

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.

By executing 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%

Replace %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 2 or 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 --scales, --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).

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 tip: 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.

Thanks for reading. We at blended.io are incredibly excited and passionated about the potential innovative leaps for software design and engineering in fintech, investtech and industry 4.0. Get in touch!

Stay on the edge

Get hands-on articles about innovation, experience design or engineering! No spam and worthwhile content only.

(Pssst: blended.io will launch two workshops: Version-Controlled Sketch for Skillful Designers & Design Teams and Git for Marvellous Designers)

Originally published at blog.blended.io on February 20, 2017.