> For the complete documentation index, see [llms.txt](https://documentation.ocsinventory-ng.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://documentation.ocsinventory-ng.org/user-docs/asset-management/inventory-and-templates/software-inventory.md).

# Software inventory

OCS collects installed software from inventoried assets. This will also partially work with **legacy** inventories.

To compare software across OSes, OCS uses **software mappings** and **templates**. Mappings normalize OS-specific fields from their respective templates into common attributes.

Normalized software attributes:

* **Name**
* **Publisher**
* **Version**
* **Major / minor / patch**&#x20;

{% hint style="warning" %}
Major, minor and patch version fields are currently not retrievable from legacy assets. Expect missing data for these fields in the [All software list](#all-software-list).
{% endhint %}

Once mapped, you can:

* browse a global list of software
* search assets by installed software from the multi-criteria search engine

### Software dictionary generation mode

This setting controls when OCS rebuilds the global software list. It also controls when software entries are removed.

{% stepper %}
{% step %}
Navigate to **Configurations → General → General configuration**.
{% endstep %}

{% step %}
Open the **Server** tab.
{% endstep %}

{% step %}
Set **Software dictionary generation** to one of these modes:

* **Inventory**
  * Refresh happens during each asset inventory.
  * Deletion happens during the next inventory or on asset deletion.
  * Expect extra load on every inventory.
* **Automated action**
  * Refresh happens on a schedule.
  * The schedule comes from the software inventory [automated action recurrence](/administrator-docs/server-setup/configuration/advanced/automations.md#recurrence).
  * Deletion happens during the run or on asset deletion.
  * Expect a higher load during the scheduled time window.
    {% endstep %}
    {% endstepper %}

### Software mappings

Use software mappings to decide which template fields should populate the normalized attributes.

{% stepper %}
{% step %}
Navigate to **Configurations → Inventory → Software mappings**.
{% endstep %}

{% step %}
Create or update mappings for the relevant OS/templates.

Use **Add software mapping** to create a new mapping. Use the pencil icon in the Actions column to edit an existing one.

Map the template fields for software **name**, **publisher**, and **version**. Map **major**, **minor**, and **patch** if you have split fields.
{% endstep %}

{% step %}
Save your changes.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
Mappings apply when OCS generates the software dictionary. After changes, trigger a new inventory or wait for the scheduled run.
{% endhint %}

### All software list

This view shows all normalized software entries collected across your assets.

{% stepper %}
{% step %}
Navigate to **Inventory → General → Softwares**.
{% endstep %}

{% step %}
To list affected assets, click the value in **Installation number**.
{% endstep %}
{% endstepper %}

### Multi-criteria search with software

Use the [Multi-criteria search](/user-docs/console-tools/multi-criteria-search.md) to find assets matching software conditions.

{% stepper %}
{% step %}
Navigate to **Inventory → Tools → Multi-criteria search**.
{% endstep %}

{% step %}
Build a search on **Softwares** (example: **Name contains** `ocsinventory` and **Major version** **is** `3`).

<figure><img src="https://461838061-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtjrEC8kt8LJiJYFBs5CS%2Fuploads%2FIurQcL1K8couta5GmfB7%2Fimage.png?alt=media&amp;token=e6abc0dc-5e63-4370-8a17-fc1b9c8bb945" alt="Multi-criteria search with software information"><figcaption><p>Multi-criteria search with software information</p></figcaption></figure>
{% endstep %}

{% step %}
Choose if you want to G**roup results** or not.
{% endstep %}

{% step %}
Click **Search** to list matching assets.

<figure><img src="https://461838061-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtjrEC8kt8LJiJYFBs5CS%2Fuploads%2FSKvNiIkiwMVvJ0NezFTq%2Fimage.png?alt=media&amp;token=c7d916c0-2ac7-428a-9257-a3f6e3ef1d3d" alt="Multi-criteria search with software information"><figcaption><p>Multi-criteria search with software information</p></figcaption></figure>
{% endstep %}
{% endstepper %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://documentation.ocsinventory-ng.org/user-docs/asset-management/inventory-and-templates/software-inventory.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
