{"id":15198441,"url":"https://github.com/mimshins/figma-backup","last_synced_at":"2025-10-02T13:31:15.037Z","repository":{"id":57235316,"uuid":"426181316","full_name":"mimshins/figma-backup","owner":"mimshins","description":"FigmaBackup is a Node.js CLI to backup Figma files and store them as local .fig files.","archived":true,"fork":false,"pushed_at":"2024-06-18T21:50:43.000Z","size":123,"stargazers_count":85,"open_issues_count":0,"forks_count":22,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-17T06:27:26.953Z","etag":null,"topics":["bot","cli","figma","nodejs","puppeteer","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mimshins.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-09T10:16:23.000Z","updated_at":"2025-08-20T01:17:54.000Z","dependencies_parsed_at":"2024-06-19T03:47:04.933Z","dependency_job_id":"735dc21d-75e9-4535-87f8-1b261abd6301","html_url":"https://github.com/mimshins/figma-backup","commit_stats":{"total_commits":69,"total_committers":3,"mean_commits":23.0,"dds":"0.23188405797101452","last_synced_commit":"c1bb5f0fdda4a2a0af6165449a6612757ca48338"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/mimshins/figma-backup","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mimshins%2Ffigma-backup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mimshins%2Ffigma-backup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mimshins%2Ffigma-backup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mimshins%2Ffigma-backup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mimshins","download_url":"https://codeload.github.com/mimshins/figma-backup/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mimshins%2Ffigma-backup/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275951175,"owners_count":25558396,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-19T02:00:09.700Z","response_time":108,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bot","cli","figma","nodejs","puppeteer","typescript"],"created_at":"2024-09-28T01:08:36.453Z","updated_at":"2025-10-02T13:31:14.670Z","avatar_url":"https://github.com/mimshins.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003eFigma Backup Bot\u003c/h1\u003e\n  \u003cp\u003eA Node.js CLI to backup Figma files and store them as local \u003ccode\u003e.fig\u003c/code\u003e files.\u003c/p\u003e\n  \u003cimg src=\"https://img.shields.io/npm/dt/figma-backup?color=d900ff\u0026labelColor=000000\u0026style=for-the-badge\" /\u003e\n  \u003cimg src=\"https://img.shields.io/github/license/mimshins/figma-backup?color=d900ff\u0026labelColor=000000\u0026style=for-the-badge\" /\u003e\n  \u003cimg src=\"https://img.shields.io/npm/v/figma-backup?color=d900ff\u0026labelColor=000000\u0026style=for-the-badge\" /\u003e\n  \u003ca title=\"twitter\" href=\"https://twitter.com/mimshins\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/twitter/follow/mimshins?color=d900ff\u0026labelColor=000000\u0026logo=twitter\u0026style=for-the-badge\" /\u003e\u003c/a\u003e\n\u003c/div\u003e\n\n\u003chr /\u003e\n\n**NOTE**: _This repository is no longer supported or updated by me due to constant changes in Figma and lack of time, resource, and contribution to the project.\nIf you wish to continue to develop this code yourself, we recommend you fork it. And if you are looking for another solution I recommend [Magicul](https://magicul.io/figma-design-backup)!_\n\n\u003chr /\u003e\n\n## Installation\n\n1- Make sure you have [Node.js](https://nodejs.org) installed on your machine.\\\n(We follow the latest [maintenance LTS](https://github.com/nodejs/Release#release-schedule) version of Node.)\n\n2- Run the following command on your terminal:\n```bash\nnpm install -g figma-backup\n```\n\nor install it via [Yarn](https://yarnpkg.com/):\n\n```bash\nyarn global add figma-backup\n```\n\nIt is going to download and install the node package and a recent compatible version of Chromium in your global `node_modules` directory (You can find it via `npm list -g | head -1`).\n\n**Note:** If the installation stopped with the 403 Error (Forbidden), you'll have to use a VPN or Proxy to another region/country in order to access the Chromium source.\n\n---\n\n**Note (Linux Machines):** Make sure all the necessary dependencies are installed. You can go to the `\u003cpath_to_node_modules\u003e/node_modules/puppeteer/.local-chromium/linux-******/chrome-linux` and run `ldd chrome | grep not` on a Linux machine to check which dependencies are missing. The common ones are provided below.\n\n\u003cdetails\u003e\n\u003csummary\u003eDebian (e.g. Ubuntu) Dependencies\u003c/summary\u003e\n\n```\nca-certificates\nfonts-liberation\nlibappindicator3-1\nlibasound2\nlibatk-bridge2.0-0\nlibatk1.0-0\nlibc6\nlibcairo2\nlibcups2\nlibdbus-1-3\nlibexpat1\nlibfontconfig1\nlibgbm1\nlibgcc1\nlibglib2.0-0\nlibgtk-3-0\nlibnspr4\nlibnss3\nlibpango-1.0-0\nlibpangocairo-1.0-0\nlibstdc++6\nlibx11-6\nlibx11-xcb1\nlibxcb1\nlibxcomposite1\nlibxcursor1\nlibxdamage1\nlibxext6\nlibxfixes3\nlibxi6\nlibxrandr2\nlibxrender1\nlibxss1\nlibxtst6\nlsb-release\nwget\nxdg-utils\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eCentOS Dependencies\u003c/summary\u003e\n\n```\nalsa-lib.x86_64\natk.x86_64\ncups-libs.x86_64\ngtk3.x86_64\nipa-gothic-fonts\nlibXcomposite.x86_64\nlibXcursor.x86_64\nlibXdamage.x86_64\nlibXext.x86_64\nlibXi.x86_64\nlibXrandr.x86_64\nlibXScrnSaver.x86_64\nlibXtst.x86_64\npango.x86_64\nxorg-x11-fonts-100dpi\nxorg-x11-fonts-75dpi\nxorg-x11-fonts-cyrillic\nxorg-x11-fonts-misc\nxorg-x11-fonts-Type1\nxorg-x11-utils\n```\n\nAfter installing dependencies you need to update nss library using this command\n\n```bash\nyum update nss -y\n```\n\u003c/details\u003e\n\n### Docker Container\nYou can also use docker container and run the `figma-backup` command in it. \n\u003cdetails\u003e\n\u003csummary\u003eUsage\n\u003c/summary\u003e\nBuilding image:\n\n```bash\ndocker build -t \u003cimage_name\u003e -f Dockerfile .\n```\nRunning the container:\n```bash\ndocker run --name \u003ccontainer_name\u003e -it \u003cimage_name\u003e bash\n```\n**Note:**\n\nIf you face the following error:\n```bash\nError: Failed to launch the browser process!\n[19:19:0914/132053.471715:ERROR:browser_main_loop.cc(1409)] Unable to open X display.\n\n\nTROUBLESHOOTING: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md\n\n    at onClose (/usr/local/lib/node_modules/figma-backup/node_modules/puppeteer/lib/cjs/puppeteer/node/BrowserRunner.js:203:20)\n    at ChildProcess.\u003canonymous\u003e (/usr/local/lib/node_modules/figma-backup/node_modules/puppeteer/lib/cjs/puppeteer/node/BrowserRunner.js:194:79)\n    at ChildProcess.emit (node:events:525:35)\n    at ChildProcess._handle.onexit (node:internal/child_process:291:12)\n```\nYou can follow [this](https://stackoverflow.com/questions/60304251/unable-to-open-x-display-when-trying-to-run-google-chrome-on-centos-rhel-7-5/61043049#61043049) and set the screen to something like:\n```bash\nXvfb -ac :99 -screen 0 1280x1024x16 \u0026\nexport DISPLAY=:99\n```\n\u003c/details\u003e\n\n---\n\n## Usage\n\nTo use the interactive command-line interface, run:\n\n```bash\nfigma-backup-interactive\n```\n\nTo use the noninteractive version, run:\n\n```bash\nfigma-backup -e \"\u003cYOUR_EMAIL\u003e\" -p \"\u003cYOUR_PASSWORD\u003e\" -t \"\u003cYOUR_ACCESS_TOKEN\u003e\" --projects-ids \"ID1\" \"ID2\" ... \"IDx\"\n```\n\nFor more information about the noninteractive cli options run:\n\n```bash\nfigma-backup --help\n```\n---\n\n\u003e **To get `project_id` from project page's URL:**\\\n`https://www.figma.com/files/project/{project_id}/{project_name}`\n\n\u003e **To get `access_token`:**\n\u003e 1. Login to your Figma account.\n\u003e 2. Head to the account settings from the top-left menu inside Figma.\n\u003e 3. Find the personal access tokens section.\n\u003e 4. Click Create new token.\n\u003e 5. A token will be generated. This will be your only chance to copy the token, so make sure you keep a copy of this in a secure place.\n\n---\n\n## Output\n\nThe backup files will be found in `figma-backup-root` directory relative to the working directory which you ran the `figma-backup` command.\n\n### Structure of `figma-backup-root`:\n```\nfigma-backup-root/\n├── cookies.json\n└── backups/\n    └── [ISOStringifiedDate]/\n        //i.e \"2022-09-16T18:14:10.708Z\"\n        ├── Project1/\n        │   ├── File1.fig\n        │   └── File2.fig\n        └── Project2/\n            ├── File1.fig\n            └── File2.fig    \n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmimshins%2Ffigma-backup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmimshins%2Ffigma-backup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmimshins%2Ffigma-backup/lists"}