--- id: plugin-distribution title: Plugin Distribution --- import FbPluginReleases from './fb/desktop-plugin-releases.mdx' ## Publishing to npm Flipper plugins are essentially standard npm packages, which means you can publish them by executing `yarn publish` or `npm publish` in the plugin directory. The only requirements are: 1. `package.json` and code must follow the [Flipper plugin specification](desktop-plugin-structure.mdx#plugin-definition) 2. Code must be bundled using "flipper-pkg" before packing or publishing. This can be done by executing `flipper-pkg bundle` on `prepack` step: ```json { ... "devDependencies": { ... "flipper-pkg": "latest" }, "scripts": { ... "prepack": "flipper-pkg bundle" } } ``` ## Publishing plugins ## Packaging to File To package a plugin as a tarball, you can use the same command as for packaging any other npm package (using `yarn pack` or `npm pack`). `flipper-pkg` also provides a convenient command `pack` that does the following: 1. Installs the plugin dependencies. 2. Bundles the plugin. 3. Creates the tarball and saves it at the specified location. Example To package a plugin located at `~/flipper-plugins/my-plugin` to `~/Desktop`, execute the following command: ```sh flipper-pkg pack ~/flipper-plugins/my-plugin -o ~/Desktop ``` ## Installation from File It's possible to install plugins into Flipper from tarballs. This is useful in cases when you need to try a plugin version that is not published to npm, or if you want to distribute plugin privately. Take the following steps: 1. Launch Flipper. 2. Click the 'Manage Plugins' button in the bottom-left corner. 3. Select the 'Install Plugins' tab in the opened sheet. 4. Specify the path to the plugin package (or just drag and drop it) and click 'Install'.