Extending Sketch

We’ve worked very hard to make Sketch the dream “designer toolbox”, but everyone has slightly different needs, and there is a good chance that there’s a feature that you would like, which we’ve not implemented.

If you are interested in extending Sketch, you are in the right place. Here we present an outline of the Sketch extensibility documentation and how to quickly build your first Sketch plugin.

If you just want to use existing plugin, see the Plugin Directory.

What can you do with plugins?

Plugins in Sketch can do anything a user can do (and even more!). For example:

  • Select layers inside a document, based on complex rules
  • Manipulate layer properties
  • Create new layers
  • Export assets in all supported formats
  • Interact with the user (ask for input, display output)
  • Get data from external files and web services
  • Interact with the clipboard
  • Manipulate Sketch’s environment (editing guides, zoom, etc…)
  • Automate existing features by calling menu options from plugins
  • design specs
  • content generation
  • perspective transformations

The easiest way to see Sketch plugins in action is via the Plugin Directory. You can browse for useful plugins, install them to try them out and get an idea how you might extend Sketch for your own design scenarios.

Writing an Extension

We created a small tool-chain which makes it very easy to create a new plugin. It is great for starting out and you can also find existing plugin examples.

Extensions can be written in JavaScript. Sketch offers a small REPL-like console in which you can experiment with its API before diving into building your plugin.

Extension ideas

Lots of great community ideas for Sketch features are better implemented as plugins rather than as part of the core product. This way users can easily pick and choose the functionality they want, by installing the right set of plugins. The Sketch team tracks possible plugin as GitHub issues on the plugin-request repository. If you’re looking for a great plugin to build, have a look at the issues.

Next steps

Help us improve

If you find any error or omission on the documentation, or you’d like us to cover or clarify something, just file an issue and we’ll try to fix it. Of course, since all the content on this site is open source, you can help us improve by suggesting an edit on GitHub (there’s also an “Improve this page” link at the bottom of every page, in case you find something wrong while browsing the site).

See something wrong or incomplete? Improve this page.