MCAPSpotlightImporter is a macOS Spotlight Importer for MCAP files. The importer gives Spotlight the ability to index MCAP files so the names of their topics, schemas, attachments, and metadata are visible and searchable in Finder and anywhere else that Spotlight is used.

This importer is included with the Foxglove Studio desktop app for macOS.

Finder Get Info window

Finder search

Finder search by topics and schemas

Spotlight search


Releasing a new version

  1. Update version numbers in Config.xcconfig.

  2. Create a corresponding version tag, e.g. v1.2.3, and push the tag to GitHub. CI will automatically build and create a draft release with the build products attached as release assets.

  3. Manually edit the release notes and publish the release.

Local testing

You can make a local build using Xcode, or by running make build. When using make build, the output is placed in ./build/Release.

  • To test the .mdimporter locally, copy it to ~/Library/Spotlight.

    • After each rebuild of the importer, once it has been copied to ~/Library/Spotlight, sometimes it is necessary to kill Spotlight-related processes, to ensure a cached version of the importer is not being used: sudo killall mds mdworker mdworker_shared corespotlightd mdbulkimport. /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill may also help.

    • Run mdimport -L to see whether the importer plugin has been loaded. Sometimes the output of this command does not update immediately.

  • Run mdimport -d2 -t path/to/file.mcap to run the importer on a file. The first line of output indicates whether the importer was actually used by saying Imported '...' of type '...' with plugIn '...'. If it instead says with no plugIn, the importer was not correctly loaded. Imported attributes will be displayed as part of the output.

  • To enable debug logging, run sudo log config --subsystem --mode level:debug.

  • To view logs from the importer, run log stream --level debug --predicate 'subsystem = ""'.

See also: Troubleshooting Spotlight Importers


View Github