Flow Launcher plugin.json: Manifest Checks

Plugins and comparisons · Published October 30, 2026 · Publisher: flowlauncher.app

At a glance

The plugin.json manifest describes a Flow Launcher plugin so the application can identify and load it. Use the schema and examples for your target version, keep the plugin identity unique, and verify that the configured entry point exists inside the distributed package.

Steps to follow

  1. Open the manifest documentation and a maintained example that uses the same implementation language as your plugin.
  2. Check identifying fields, version, action keyword, language, and executable or entry-point fields against that example.
  3. Validate the JSON syntax and inspect case-sensitive filenames in the release archive. Include every referenced file.
  4. Install the packaged plugin into a clean test profile and invoke its action keyword. Inspect the load error if it does not appear.

Check the result

The plugin is discovered, its metadata is shown correctly, and its entry point starts. A valid JSON file alone is not proof of a valid plugin package.

Limits and common pitfalls

Do not reuse another plugin’s unique identifier or assume a manifest for one language can be copied unchanged to another.

Make the check repeatable

Treat the manifest as a contract between your package and the launcher. Check that the archive layout matches every declared path, and version the manifest together with the code. Public examples can evolve, so compare against the documentation for the Flow version you actually support.

Questions and answers

Can a manifest be syntactically valid but still fail to load?

Yes. A missing entry file, unsupported language value, duplicate identity, or incompatible runtime can still prevent loading.

Sources and scope

Documentation-based guidance, with source review on October 30, 2026. What was and was not tested.

Related guides

Plugins and comparisons

Disable or Remove a Flow Launcher Plugin

Disable a plugin first when you want to test whether it causes a problem. Remove it through the supported plugin-management interface once you no longer.