When you enable Automatic Install on aDocumentation Index
Fetch the complete documentation index at: https://docs.getprimo.com/llms.txt
Use this file to discover all available pages before exploring further.
.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:
- Fleet host details → installed programs list
- Apps & features in Windows Settings
- PowerShell:
Get-Package | Where-Object Name -Like '*<name>*'
FalconSensor_Windows.exe, Windows reports the program as CrowdStrike Windows Sensor:
Linux Debian / Ubuntu (.deb)
Pre-filled query:
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:
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
fileorosquery_infoto 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
LIKEpattern with more characters or use=for exact match