Figma Asset Downloader
Small utility to help you download Figma assets directly to your computer
It may be very useful to keep the assets of your app/web up to date. Let's say your Design Team puts all the
assets in a specific page of a Figma document. This utility would automatically fetch all the images from there and keep your assets folder up to date with the latest resources. Nice, isn't it?
You can compile it yourself:
cargo install figma-asset-downloader
Or you can download an OS specific executable from GitHub releases and add it to your path.
Currently, you can get artifacts for
Remember that if you need to use it in another
OS you can compile it yourself.
You'll need to get a Figma Personal Access Token.
The usage is fairly simple:
fad -t <personal-access-token> -f <file-id> -d <document-id>
To get the
file-id and the
document-id, you have to take a look at the
url of the Figma page that you want to download the images from.
You should be seeing something similar to this:
Just get that pieces of information and use them from the command line. Beware that the
document-id may be url-encoded. Don't use it like that. Substitute
...node-id=323%3A471 # should be 321:471
IMPORTANT: Be sure to use the
node-id of the page. Don't select any object in your Figma document or this
node-id will not correspond to the page but to some of the elements inside it.
By default, all the images will be downloaded at
scale 1 and
png format inside a folder called
If you want to change this, you can use any of the other options that this
cli provides. Specifically,
-s will accept a collection of scales (1,2,3,4...) and
-e will allow you to define a collection of exporting format (
fad [-t personal-access-token] [-f file-id] [-d document-id] [-p download-folder-name] [-s 1 2 3 4] [-e png svg jpeg pdf] [-c configuration-file]
image format, you can decide from your Figma file which format any of the assets will be created in. For instance, if you want some asset to be downloaded only in
jpeg format regardless of what you choose with the
-e CLI parameter, you must add a suffix to your asset in figma containing the extension:
If you happen to be following this convention while creating your Figma documents but you still want to download the images in a specific format then you must use the
If you need more help just execute
If you don't want to manually provide the arguments all the time you can also use a configuration file.
By default, if you don't pass any parameter and just call
fad, it will look for a configuration file called
fad.toml in the folder where you're using the tool.
This is an example of a
personal_access_token = "30277-2c47420f-8d6b-4c6c-b170-2727b8999653" file_id = "h92QKQ8iOkFlq0q6mA4UhX" document_id = "323:471" path = "downloads" file_extensions = ["png"] file_scales = [1,2,3,4]
You can use another name but then you'll have to specify it every time you call
fad like this:
fad -c new-fad-config-file-name.toml
-t: Figma Personal Access Token
-f: File id (www.figma.com/file/FILE_ID/title?node-id=DOCUMENT_ID)
-d: Document id (www.figma.com/file/FILE_ID/title?node-id=DOCUMENT_ID)
-p: Path where assets will be downloaded
-e: Extensions to export to in case there's no extension in the name of the asset: "png", "svg", "jpeg", default: png
-r: If true, file extensions will prevail over naming convention (asset_name.jpg)
-s: Scales to export to: 1, 2, 3, 4
-c: Name of the figma-asset-downloader configuration
NOTE: If you provide any arguments to the
cli, they will take precedence.
-t, -f, -d are always mandatory if at least any one of them is manually provided.