> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/unigetui/for-it-teams/organization/inventory-and-audit.md).

# Keep track of what's installed

Export the list of installed apps and pending updates, review every install, update and removal, and collect the same information from a script.

Need a list of the software on a computer, or proof of what was updated last week? UniGetUI already knows both. This page shows how to export the installed apps and pending updates, read the history of every operation, and get the same data from a script.

## Pick the right tool

<table><thead><tr><th width="250">YOU WANT…</th><th>USE</th><th>FORMAT</th></tr></thead><tbody><tr><td>A list of installed apps, or of pending updates, to open in a spreadsheet</td><td><em><strong>Export to CSV</strong></em></td><td><code>.csv</code></td></tr><tr><td>What was installed, updated or removed, when, and whether it worked</td><td><em><strong>Operation history</strong></em></td><td>In the app, or exported as text</td></tr><tr><td>A list of apps you can also reinstall from</td><td>A <a href="/unigetui/guides/new-computer/backup.md">backup</a> or a <a href="/unigetui/guides/new-computer/create-a-bundle.md">bundle</a></td><td><code>.ubundle</code></td></tr><tr><td>The same data from a script, on many computers</td><td>The <a href="/unigetui/reference/cli.md">command-line interface</a></td><td>JSON</td></tr></tbody></table>

## Export the installed apps or pending updates

1. Open ***Installed Packages*** (everything that's installed) or ***Software Updates*** (what's out of date).
2. Optional: filter the list, or select the check boxes of the apps you want. With nothing selected, UniGetUI exports the whole list as currently filtered.
3. Click ***Export to CSV*** in the toolbar.
4. Choose a name and a location, then save.

UniGetUI shows the file in your file manager when it's done.

The file has one row per app, with these columns:

<table><thead><tr><th width="250">COLUMN</th><th>WHAT'S IN IT</th></tr></thead><tbody><tr><td><em><strong>Package Name</strong></em></td><td>The name shown in UniGetUI.</td></tr><tr><td><em><strong>Package ID</strong></em></td><td>The identifier the package manager uses for the app.</td></tr><tr><td><em><strong>Version</strong></em></td><td>The installed version.</td></tr><tr><td><em><strong>New version</strong></em></td><td>The available version. Only in an export from <em><strong>Software Updates</strong></em>.</td></tr><tr><td><em><strong>Source</strong></em></td><td>The package manager and source the app comes from.</td></tr></tbody></table>

{% hint style="info" %}
The file is UTF-8 with a byte order mark, so Excel shows accented names correctly. Values that a spreadsheet could read as a formula (starting with `=`, `+`, `-` or `@`) are prefixed with an apostrophe, so opening an export never runs anything.
{% endhint %}

Remember that ***Installed Packages*** only lists what a package manager can see. Apps no package manager knows don't appear. See [What UniGetUI doesn't do](/unigetui/guides/understand/limits.md).

## Review what changed

Every install, update, uninstall and installer download is recorded, with its result and its full output. So are the package sources you add or remove.

1. In the navigation menu, open ***More*** – ***Operation history***.
2. On the ***History*** tab, each row shows the ***Operation***, ***Package***, ***Version*** (before and after), ***Source***, ***Status*** and ***Date***.
3. Narrow the list with ***Filter by status***, ***Filter by type*** and ***Filter by manager***, or type in the search box.

From a row, you can:

* ***View full log***: read the package manager's output, for example to understand a failure.
* ***Run this operation again***: repeat it with the same options. Failed operations also offer ***Retry as administrator***, ***Retry interactively*** and ***Retry skipping integrity checks*** when they apply.
* ***Revert this operation***: undo a successful one. Reverting an install uninstalls the app, reverting an uninstall reinstalls the removed version, and reverting an update downgrades the app to its previous version. UniGetUI asks for confirmation before uninstalling or downgrading.
* ***Remove from history***: delete that entry.

The ***Log*** tab shows the same history as raw text. Use ***Copy to clipboard*** or ***Export to a file*** there to keep a copy or attach it to a ticket.

**How long is it kept?** The history survives restarts and keeps the 1,000 most recent operations; older ones are dropped. ***Clear history*** deletes everything after confirmation, so export the ***Log*** tab first if you need a record.

{% hint style="warning" %}
The history covers operations run by UniGetUI on this computer and for this user only. Apps installed or updated another way, for example by an app's own updater or directly with `winget`, aren't in it.
{% endhint %}

## Use backups and bundles as an inventory

A [backup](/unigetui/guides/new-computer/backup.md) is a bundle of every installed app that UniGetUI saves on its own, on a schedule. For each app, it records the name, ID, version, package manager and source, plus its install options and the updates you chose to ignore.

That makes it a simple inventory you don't have to think about:

* Save local backups to a network share or a synced folder to collect them in one place. Each file is named after the computer by default.
* Turn on ***Keep a separate file for each backup*** to keep dated snapshots and compare a computer's apps over time.
* Unlike a CSV export, you can [reinstall from it](/unigetui/guides/new-computer/restore.md).

## Collect the same data from a script

The `unigetui` command returns JSON, so you can collect inventories from many computers with your own tools. It needs a running UniGetUI session: see the [requirements](/unigetui/reference/cli.md#requirements).

```powershell
# Installed apps, and pending updates
unigetui package installed > installed.json
unigetui package updates > updates.json

# Only one package manager
unigetui package installed --manager winget

# Apps whose updates are ignored
unigetui package ignored list

# Operation history, and the operations of the current session
unigetui log operations > operations.json
unigetui operation list

# Save a local backup of every installed app now
unigetui backup local create
```

All commands and options are in [Command-line interface](/unigetui/reference/cli.md).

## Good to know

* The UniGetUI logs (***More*** – ***UniGetUI Log*** and ***Package Manager logs***) are for troubleshooting, not auditing. See [Send logs to support](/unigetui/help/troubleshooting/send-logs-to-support.md).
* Exports, backups and the operation history can contain computer names, user folders and the full list of your software. Store them accordingly.
* Want the same apps everywhere rather than just a list? See [Standardize workstations with bundles](/unigetui/for-it-teams/organization/standard-workstations.md).

## Next

* [Back up your app list automatically](/unigetui/guides/new-computer/backup.md)
* [Standardize workstations with bundles](/unigetui/for-it-teams/organization/standard-workstations.md)
* [Command-line interface](/unigetui/reference/cli.md)


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.devolutions.net/unigetui/for-it-teams/organization/inventory-and-audit.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
