Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.getprimo.com/llms.txt

Use this file to discover all available pages before exploring further.

When you enable Automatic Install on a .exe, .ps1, .deb, .rpm, .sh, or .tar.gz custom package, Primo pre-fills a best-effort osquery using the software name you provided. Fleet’s auto-install semantics require this query to return at least one row when the software is installed — otherwise the agent will keep re-installing the package on every check. Edit the LIKE '%...%' value in the pre-filled query so it matches the exact name the operating system reports for the installed program.

Windows (.exe, .ps1)

Pre-filled query:
SELECT 1 FROM programs WHERE name LIKE '%<software name>%'
How to find the exact name:
  • Fleet host details → installed programs list
  • Apps & features in Windows Settings
  • PowerShell: Get-Package | Where-Object Name -Like '*<name>*'
Example — installer is FalconSensor_Windows.exe, Windows reports the program as CrowdStrike Windows Sensor:
SELECT 1 FROM programs WHERE name LIKE '%CrowdStrike Windows Sensor%'

Linux Debian / Ubuntu (.deb)

Pre-filled query:
SELECT 1 FROM deb_packages WHERE name LIKE '%<software name>%'
How to find the exact name:
  • dpkg -l | grep <name> — the first column shows the package name
  • Match the package name (e.g. google-chrome-stable), not the human-readable display name

Linux RPM (.rpm)

Pre-filled query:
SELECT 1 FROM rpm_packages WHERE name LIKE '%<software name>%'
How to find the exact name:
  • rpm -qa | grep <name>
  • Use the bare package name (without version / arch suffix)

Linux scripts / archives (.sh, .tar.gz)

For installer scripts and archives, the installed artifact is whatever the script drops on disk. Inspect the script (or its README) to determine:
  • Whether it registers a package in deb_packages / rpm_packages — if yes, query that table
  • Otherwise, check whether a known binary or directory is created — use file or osquery_info to query for it

Common mistakes

  • Using the installer filename (Setup.exe) instead of the registered program name (MyApp) — Fleet will never detect it as installed and will re-install on every run
  • Forgetting the wildcards ('%name%') — exact-match queries miss version suffixes
  • Using a name that matches multiple unrelated programs — tighten the LIKE pattern with more characters or use = for exact match

Verify before saving

In the software card, after editing the query, target a small device group first and confirm the install behaves as expected before rolling it out fleet-wide.