> ## 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.

# Find the right program name for Automatic Install

> Identify the exact software name to use in your auto-install detection query on Windows and Linux.

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.

## Find the name by package type

<Tabs>
  <Tab title="Windows (.exe, .ps1)">
    Pre-filled query:

    ```sql theme={null}
    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`:

    ```sql theme={null}
    SELECT 1 FROM programs WHERE name LIKE '%CrowdStrike Windows Sensor%'
    ```
  </Tab>

  <Tab title="Linux .deb">
    Applies to Debian / Ubuntu packages (`.deb`).

    Pre-filled query:

    ```sql theme={null}
    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
  </Tab>

  <Tab title="Linux .rpm">
    Pre-filled query:

    ```sql theme={null}
    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)
  </Tab>

  <Tab title="Scripts and archives">
    Applies to Linux installer scripts and 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
  </Tab>
</Tabs>

## 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.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.