> For the complete documentation index, see [llms.txt](https://help.glpi-project.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.glpi-project.org/glpi-12/glpi-command-line-interface-cli/available-commands.md).

# Available commands

GLPI includes a CLI tool to help you manage your GLPI instance. This interface is provided by the `bin/console` script which can be executed from the root of your GLPI directory.

> Example: **`sudo -u`** [**`www-data`**](#user-content-fn-1)[^1] **`php bin/console system:status`**

Each command can have zero or more arguments or options. Arguments are positional pieces of information while options are not and are prefixed by one or two hyphens.

{% hint style="success" %}
To view available commands, you can use the command **`php bin/console list`** or add **`--help`** at the end of a command to view available arguments.
{% endhint %}

***

## <i class="fa-computer">:computer:</i> Assets

### `assets:cleansoftware`

> Remove uninstalled software versions and software without versions.

#### Options:

| Name  | Shortcut | Description                                | Required | Default | Array | Negotiable |
| ----- | -------- | ------------------------------------------ | -------- | ------- | ----- | ---------- |
| --max | -m       | Maximum number of items to process per run | Yes      | 500     | No    | No         |

### `assets:purgesoftware`

> Purge unversioned software that has been deleted.

#### Options:

| Name | Shortcut | Description                                | Required | Default | Array | Negotiable |
| ---- | -------- | ------------------------------------------ | -------- | ------- | ----- | ---------- |
| -max | -m       | Maximum number of items to process per run | Yes      | 500     | No    | No         |

### From the GLPI Web Interface

<figure><img src="https://304570660-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fuys4bnfAs7Oe2yWUUh3p%2Fuploads%2Fgit-blob-d9fda23f9f4b4c618cbf44861541c4b6ceec8f42%2Fimage%20(16).png?alt=media" alt=""><figcaption></figcaption></figure>

***

## <i class="fa-building">:building:</i> Build

### `build:compile_scss`

> Compile an SCSS file.

#### Options:

| Name      | Shortcut | Description                                                         | Required | Default | Array | Negotiable |
| --------- | -------- | ------------------------------------------------------------------- | -------- | ------- | ----- | ---------- |
| --file    | -f       | File to compile (compiles all SCSS files by default)                | No       | \[]     | Yes   | Yes        |
| --dry-run |          | Simulate compilation without actually saving the compiled CSS files | No       |         | No    | No         |

***

## <i class="fa-memory">:memory:</i> Cache

### `cache:clear`

> Clear the GLPI cache.

#### Options:

| Name      | Shortcut | Description                                                                                          | Required | Default | Array | Negotiable |
| --------- | -------- | ---------------------------------------------------------------------------------------------------- | -------- | ------- | ----- | ---------- |
| --context | -c       | Cache context to clear (e.g., 'core' or 'plugin:plugin\_name'). All contexts are cleared by default. | Yes      | \[]     | Yes   | No         |

### `cache:configure`

> Set cache configuration

#### Options:

| Name                     | Shortcut | Description                                                                           | Required | Default | Array | Negotiable |
| ------------------------ | -------- | ------------------------------------------------------------------------------------- | -------- | ------- | ----- | ---------- |
| --context                |          | Cache context (e.g., 'core' or 'plugin:plugin\_name')                                 | Yes      | core    | No    | No         |
| --dsn                    |          | Cache system DSN                                                                      | Yes      | \[]     | Yes   | No         |
| --use-default            |          | Disable cache configuration to use the default filesystem cache for the given context | No       |         | No    | No         |
| --skip-connection-checks |          | Skip connection checks                                                                | No       |         | No    | No         |

{% hint style="info" %}
**Help**

Valid cache systems:

* Memcached
* Redis (TCP)
* Redis (TLS)

Memcached DSN format:

* memcached://\[user:pass@]\[ip|host|socket\[:port]]\[?weight=int]

Redis (TCP) DSN format:

* redis\://\[pass@]\[ip|host|socket\[:port]]\[/db-index]

Redis (TLS) DSN format:

* rediss\://\[pass@]\[ip|host|socket\[:port]]\[/db-index]

The cache namespace can be used to ensure either separation or sharing of data from multiple GLPI instances on the same cache system.
{% endhint %}

### Usage

> * glpi:cache:configure --use-default
> * glpi:cache:configure --dsn=memcached://cache1.glpi-project.org --dsn=memcached://cache2.glpi-project.org
> * glpi:cache:configure --dsn=redis\://redis.glpi-project.org:6379/glpi

### `cache:debug`

> Debug GLPI cache.

#### Options:

| Name      | Shortcut | Description                                                     | Required | Default | Array | Negotiable |
| --------- | -------- | --------------------------------------------------------------- | -------- | ------- | ----- | ---------- |
| --key     | -k       | Cache key to debug.                                             | Yes      | \[]     | Yes   | No         |
| --context | -c       | Cache context to clear (e.g., 'core' or 'plugin:plugin\_name'). | Yes      | core    | No    | No         |

### `cache:set_namespace_prefix`

> Set cache namespace prefix

#### Arguments (in order):

| Name   | Description      | Required | Default |
| ------ | ---------------- | -------- | ------- |
| prefix | Namespace prefix | Yes      |         |

***

## <i class="fa-command">:command:</i> Completion

### `completion`

> Display shell completion script

#### Static Installation

{% stepper %}
{% step %}
Generate the script into a global completion file and restart your shell:

**`bin/console completion nologin | sudo tee /etc/bash_completion.d/console`**

Or save the script to a local file and execute it:

**`bin/console completion nologin > completion.sh`**
{% endstep %}

{% step %}
Source the file on each project usage:

**`source completion.sh`**

Or add this line to the end of your `~/.bashrc` file:

**`source /path/to/completion.sh`**
{% endstep %}
{% endstepper %}

#### Dynamic Installation

* Add this to the end of your shell configuration file (e.g., `~/.bashrc`):

**`eval "$(`**[**`/path/to/glpi`**](#user-content-fn-2)[^2]**`/bin/console completion nologin)"`**

***

## <i class="fa-gear">:gear:</i> Config

### `config:set`

> Set configuration value

#### Arguments (in order):

| Name  | Description                                                      | Required | Default |
| ----- | ---------------------------------------------------------------- | -------- | ------- |
| key   | Configuration key                                                | Yes      |         |
| value | Configuration value (omit argument to enter value interactively) | Yes      |         |

#### Options:

| Name      | Shortcut | Description           | Required | Default | Array | Negotiable |
| --------- | -------- | --------------------- | -------- | ------- | ----- | ---------- |
| --context | -c       | Configuration context | Yes      | core    | No    | No         |

***

## <i class="fa-database">:database:</i> Database

### `db:check_schema_integrity` ou `db:check`

> Check for schema differences between the current database and the installation file.

#### Options

| Name                                 | Shortcut | Description                                                                                   | Required | Default | Table | Negatable |
| ------------------------------------ | -------- | --------------------------------------------------------------------------------------------- | -------- | ------- | ----- | --------- |
| --strict                             |          | Strict comparison of definitions                                                              | No       |         | No    | No        |
| --check-all-migrations               |          | Check tokens related to all database migrations.                                              | No       |         | No    | No        |
| --check-innodb-migration             |          | Check tokens related to the "MyISAM" to "InnoDB" migration.                                   | No       |         | No    | No        |
| --check-timestamps-migration         |          | Check tokens related to the "datetime" to "timestamp" migration.                              | No       |         | No    | No        |
| --check-utf8mb4-migration            |          | Check tokens related to the "utf8" to "utf8mb4" migration.                                    | No       |         | No    | No        |
| --check-dynamic-row-format-migration |          | Check tokens related to the "DYNAMIC" row format migration.                                   | No       |         | No    | No        |
| --check-unsigned-keys-migration      |          | Check tokens related to the migration of signed integers to unsigned in primary/foreign keys. | No       |         | No    | No        |

### `db:configure`

> Set database configuration

#### Options :

| Name                   | Shortcut | Description                                                                      | Required | Default   | Table | Negatable |
| ---------------------- | -------- | -------------------------------------------------------------------------------- | -------- | --------- | ----- | --------- |
| --db-host              | -H       | Database host                                                                    | No       | localhost | No    | Yes       |
| --db-name              | -d       | Database name                                                                    | Yes      |           | No    | No        |
| --db-password          | -p       | Database password (value will be prompted if option is passed without value)     | No       |           | No    | Yes       |
| --db-port              | -P       | Database port                                                                    | No       |           | No    | Yes       |
| --db-user              | -u       | Database user                                                                    | Yes      |           | No    | No        |
| --reconfigure          | -r       | Reconfigure the database, overwrite configuration file if it already exists      | No       |           | No    | No        |
| --strict-configuration |          | Use strict configuration to enforce warnings on deprecated or discouraged usages | No       |           | No    | No        |

### `db:enable_timezones`

> Enable timezone usage.

### `db:install`

> Install database schema

#### Options :

| Name                   | Shortcut | Description                                                                                                                            | Required | Default   | Table | Negatable |
| ---------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------- | --------- | ----- | --------- |
| --db-host              | -H       | Database host                                                                                                                          | No       | localhost | No    | Yes       |
| --db-name              | -d       | Database name                                                                                                                          | Yes      |           | No    | No        |
| --db-password          | -p       | Database password (value will be prompted if option is passed without value)                                                           | No       |           | No    | Yes       |
| --db-port              | -P       | Database port                                                                                                                          | No       |           | No    | Yes       |
| --db-user              | -u       | Database user                                                                                                                          | Yes      |           | No    | No        |
| --reconfigure          | -r       | Reconfigure the database, overwrite configuration file if it already exists                                                            | No       |           | No    | No        |
| --strict-configuration |          | Use strict configuration to enforce warnings on deprecated or discouraged usages                                                       | No       |           | No    | No        |
| --default-language     | -L       | Default GLPI language                                                                                                                  | No       | en\_GB    | No    | Yes       |
| --force                | -f       | Force installation execution, overwriting existing database                                                                            | No       |           | No    | No        |
| --enable-telemetry     |          | Allow sending usage statistics to the telemetry service ([https://telemetry.glpi-project.org](https://telemetry.glpi-project.org/))    | No       |           | No    | No        |
| --no-telemetry         |          | Disallow sending usage statistics to the telemetry service ([https://telemetry.glpi-project.org](https://telemetry.glpi-project.org/)) | No       |           | No    | No        |

### `db:update`

> Update database schema to a new version

#### Options

| Name               | Shortcut | Description                                                                                                                            | Required | Default | Table | Negatable |
| ------------------ | -------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------- | ------- | ----- | --------- |
| --allow-unstable   | -u       | Allow update to an unstable version                                                                                                    | No       |         | No    | No        |
| --force            | -f       | Force update execution from v-1 of GLPI even if the schema has not changed                                                             | No       |         | No    | No        |
| --enable-telemetry |          | Allow sending usage statistics to the telemetry service ([https://telemetry.glpi-project.org](https://telemetry.glpi-project.org/))    | No       |         | No    | No        |
| --no-telemetry     |          | Disallow sending usage statistics to the telemetry service ([https://telemetry.glpi-project.org](https://telemetry.glpi-project.org/)) | No       |         | No    | No        |

***

## <i class="fa-stethoscope">:stethoscope:</i> Diagnostic

### `diagnostic:check_documents_integrity`

> Check file integrity for GLPI documents.

### `diagnostic:check_html_encoding`

> Check for improperly encoded HTML content in the database.

#### Options

| Name              | Shortcut | Description                                                                      | Required | Default | Table | Negatable |
| ----------------- | -------- | -------------------------------------------------------------------------------- | -------- | ------- | ----- | --------- |
| --fix \| --no-fix | -f       | Fix detected issues                                                              | No       |         | No    | No        |
| --dump=DUMP       | -d       | Specifies the path to the file where SQL queries to undo changes will be stored. | No       |         | No    | No        |

### `diagnostic:check_source_code_integrity`

> Check GLPI source code file integrity.

| Name             | Shortcut | Description                                      | Required | Default | Table | Nillable |
| ---------------- | -------- | ------------------------------------------------ | -------- | ------- | ----- | -------- |
| --diff           | -d       | Displays differences between modified files      | No       |         | No    | No       |
| --allow-download |          | Allows downloading the GLPI version if necessary | No       |         | No    | No       |

***

## <i class="fa-life-ring">:life-ring:</i> Help

### `help`

> Displays help for each command

| Name            | Shortcut | Description                                                                                                 | Required | Default | Table | Nillable |
| --------------- | -------- | ----------------------------------------------------------------------------------------------------------- | -------- | ------- | ----- | -------- |
| --format=FORMAT |          | Displays the result according to the selected output format (`txt`, `xml`, `json`, or `md`. Default: `txt`) | No       |         | No    | No       |
| --raw           |          | To display the raw command help                                                                             | No       |         | No    | No       |

***

## <i class="fa-user-gear">:user-gear:</i> LDAP

### `ldap:sync`

> Synchronize users with LDAP server information

#### Options

<table><thead><tr><th>Name</th><th width="106">Shortcut</th><th width="291">Description</th><th>Required</th><th>Default</th><th>Table</th><th>Nillable</th></tr></thead><tbody><tr><td>--only-create-new</td><td>-c</td><td>Create only new users</td><td>No</td><td></td><td>No</td><td>No</td></tr><tr><td>--only-update-existing</td><td>-u</td><td>Update only existing users</td><td>No</td><td></td><td>No</td><td>No</td></tr><tr><td>--ldap-server-id</td><td>-s</td><td>Synchronize only users attached to this LDAP server</td><td>No</td><td>[]</td><td>Yes</td><td>Yes</td></tr><tr><td>--ldap-filter</td><td>-f</td><td>Filter to apply to the LDAP search</td><td>No</td><td></td><td>No</td><td>Yes</td></tr><tr><td>--begin-date</td><td></td><td>Start date to apply in the "modifyTimestamp" filter (see <a href="http://php.net/manual/en/datetime.formats.php">http://php.net/manual/en/datetime.formats.php</a> for supported formats)</td><td>No</td><td></td><td>No</td><td>Yes</td></tr><tr><td>--end-date</td><td></td><td>End date to apply in the "modifyTimestamp" filter (see <a href="http://php.net/manual/en/datetime.formats.php">http://php.net/manual/en/datetime.formats.php</a> for supported formats)</td><td>No</td><td></td><td>No</td><td>Yes</td></tr><tr><td>--deleted-user-strategy</td><td>-d</td><td><p>Force strategy used for deleted users (default configured actions: "0,0,0")<br>Three comma-separated values are expected.</p><p>1) Actions on the user's account:</p><ul><li>0: Do nothing</li><li>1: Disable</li><li>2: Move to trashbin<br></li></ul><p>2) Actions on the user's associated groups:</p><ul><li>0: Do nothing</li><li>1: Delete dynamic groups</li><li>2: Delete all groups<br></li></ul><p>3) Actions on the user's authorizations:</p><ul><li>0: Do nothing</li><li>1: Delete dynamic authorizations</li><li>2: Delete all authorizations</li></ul></td><td>No</td><td></td><td>No</td><td>Yes</td></tr><tr><td>--restored-user-strategy</td><td>-r</td><td><p>Force the strategy used for restored users (current action configured: "0") Possible values are:</p><ul><li>0: Do nothing</li><li>1: Restore (remove from trash)</li><li>3: Enable</li></ul></td><td>No</td><td></td><td>No</td><td>Yes</td></tr></tbody></table>

***

## <i class="fa-list">:list:</i> List

### `list`

> The list command lists all commands

* You can also display commands for a specific namespace:

```bash
bin/console list database
```

* You can also export information in other formats using the --format option:

```bash
bin/console list --format=xml
```

* It is also possible to get the raw list of commands (useful for integrating a command executor):

```bash
bin/console list --raw
```

## <i class="fa-gears">:gears:</i> Maintenance

### `maintenance:disable`

> Disable maintenance mode

### `maintenance:enable`

> Enable maintenance mode

#### Options

| Name   | Shortcut | Description                        | Required | Default | Table | Negation |
| ------ | -------- | ---------------------------------- | -------- | ------- | ----- | -------- |
| --text | -t       | Text to display during maintenance | No       |         | No    | Yes      |

***

## <i class="fa-shop">:shop:</i> Marketplace

### `marketplace:download`

> Download a plugin from the GLPI marketplace

#### Arguments (in order):

| Name    | Description | Required | Default |
| ------- | ----------- | -------- | ------- |
| plugins | Plugin key  | Yes      | \[]     |

#### Options

| Name    | Shortcut | Description                                             | Required | Default | Table | Negation |
| ------- | -------- | ------------------------------------------------------- | -------- | ------- | ----- | -------- |
| --force | -f       | Force download even if the plugin is already downloaded | No       |         | No    | No       |

### `marketplace:info`

> Get information about a plugin

#### Arguments (in order):

| Name   | Description | Required | Default |
| ------ | ----------- | -------- | ------- |
| plugin | Plugin key  | Yes      |         |

### `marketplace:search`

> Search the GLPI marketplace

#### Arguments (in order)

| Name | Description | Required | Default |
| ---- | ----------- | -------- | ------- |
| term | Search term | No       |         |

### `marketplace:upgrade`

> Download all plugins to their latest compatible versions, update all active plugins, and reactivate those that were active.

#### Options

| Name                | Shortcut | Description                                                                                              | Required | Default | Table | Negation |
| ------------------- | -------- | -------------------------------------------------------------------------------------------------------- | -------- | ------- | ----- | -------- |
| --username=USERNAME | -u       | Username used during the installation script (among other things to define plugin administration rights) | No       |         | No    | No       |

***

## <i class="fa-left-right">:left-right:</i> Migration

### `migration:appliances_plugin_to_core`

> Migrate data from the Appliances plugin to GLPI core tables

#### Options

| Name          | Shortcut | Description                          | Required | Default | Table | Negation |
| ------------- | -------- | ------------------------------------ | -------- | ------- | ----- | -------- |
| --skip-errors | -s       | Do not exit in case of import errors | No       |         | No    | Non      |

### `migration:databases_plugin_to_core`

> Migrate data from the Databases plugin to GLPI core tables

#### Options

| Name          | Shortcut | Description                          | Required | Default | Table | Negation |
| ------------- | -------- | ------------------------------------ | -------- | ------- | ----- | -------- |
| --skip-errors | -s       | Do not exit in case of import errors | No       |         | No    | Non      |

### `migration:domains_plugin_to_core`

> Migrate data from the Domains plugin to GLPI core tables

#### Options

| Name          | Shortcut | Description                  | Required | Default | Table | Negation |
| ------------- | -------- | ---------------------------- | -------- | ------- | ----- | -------- |
| --skip-errors | -s       | Do not exit on import errors | No       |         | No    | No       |

### `migration:dynamic_row_format`

> Convert database tables to "Dynamic" row format (required for "utf8mb4" character set support).

### `migration:formcreator_plugin_to_core`

> Migrate data from the Formcreator plugin to GLPI main tables

| Name              | Shortcut | Description                                                                 | Required | Default | Table | Negation |
| ----------------- | -------- | --------------------------------------------------------------------------- | -------- | ------- | ----- | -------- |
| --dry-run         |          | Simulate the migration                                                      | No       |         | No    | No       |
| --form-id=FORM-ID |          | Import only specific forms with the provided IDs (multiple values allowed). |          |         |       |          |

### `genericobject_plugin_to_core`

> Migrate data from the generic object plugin to GLPI main tables

| Name      | Shortcut | Description            | Required | Default | Table | Negation |
| --------- | -------- | ---------------------- | -------- | ------- | ----- | -------- |
| --dry-run |          | Simulate the migration | No       |         | No    | No       |

### `migration:migrate_all`

> Run all recommended optional migrations.

### `migration:myisam_to_innodb`

> Migrate MyISAM tables to InnoDB

### `migration:racks_plugin_to_core`

> Migrate data from the Racks plugin to GLPI core tables

#### Options

| Name                    | Shortcut | Description                                                                                                                 | Required | Default | Table | Negation |
| ----------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------- | -------- | ------- | ----- | -------- |
| --ignore-other-elements | -i       | Ignore "PluginRacksOther" models and elements                                                                               | No       |         | No    | No       |
| --skip-errors           | -s       | Do not exit on import errors                                                                                                | No       |         | No    | No       |
| --truncate              | -t       | Delete existing core data                                                                                                   | No       |         | No    | No       |
| --update-plugin         | -u       | Run the Racks plugin update (you must have the files for version 1.8.0 to perform this operation)                           | No       |         | No    | No       |
| --without-plugin        | -w       | Enable migration without plugin files (we cannot guarantee that plugin data is compatible with the supported version 1.8.0) | No       |         | No    | No       |

### `migration:timestamps`

> Convert "datetime" fields to "timestamp" to use timezones.

### `migration:timestamps`

> Migrate primary/foreign keys to unsigned integers

### `migration:utf8mb4`

> Convert the database character set from "utf8" to "utf8mb4".

***

## <i class="fa-puzzle">:puzzle:</i> Plugins

### `plugin:activate`

> Activate one or more plugin(s)

#### Arguments (in order) :

| Name      | Description      | Required | Default |
| --------- | ---------------- | -------- | ------- |
| directory | Plugin directory | No       | \[]     |

#### Options

| Name  | Shortcut | Description                    | Required | Default | Table | Negation |
| ----- | -------- | ------------------------------ | -------- | ------- | ----- | -------- |
| --all | -a       | Run the command on all plugins | No       |         | No    | No       |

### `plugin:deactivate`

> Deactivate one or more plugin(s)

#### Arguments (in order)

| Name      | Description      | Required | Default |
| --------- | ---------------- | -------- | ------- |
| directory | Plugin directory | No       | \[]     |

#### Options

| Name  | Shortcut | Description                    | Required | Default | Table | Negable |
| ----- | -------- | ------------------------------ | -------- | ------- | ----- | ------- |
| --all | -a       | Run the command on all plugins | No       |         | No    | No      |

### `plugin:install`

> Run the plugin installation script(s)

#### Arguments (in order)

| Name      | Description      | Required | Default |
| --------- | ---------------- | -------- | ------- |
| directory | Plugin directory | No       | \[]     |

#### Options

| Name       | Shortcut | Description                                                                                                                                                                                                    | Required | Default | Table | Negable |
| ---------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ------- | ----- | ------- |
| --all      | -a       | Run the command on all plugins                                                                                                                                                                                 | No       |         | No    | No      |
| --param    | -p       | <p>Additional parameters to pass to the plugin installation hook function<br><br>- "-p foo" will set the value of parameter "foo" to true<br>- "-p foo=bar" will set the value of parameter "foo" to "bar"</p> | No       | \[]     | Yes   | Yes     |
| --username | -u       | Username used during the installation script (among other things, to define plugin administrator rights)                                                                                                       | Yes      |         | No    | No      |
| --force    | -f       | Force installation execution, even if the plugin is already installed                                                                                                                                          | No       |         | No    | No      |

### Usage

> glpi:plugin:install -p foo=bar -p force myplugin

### `plugin:list`

> List installed plugins (from the marketplace or manually installed), enabled, disabled, and those needing updates.

#### Options

| Name            | Shortcut | Description                                     | Required | Default | Table | Negable |
| --------------- | -------- | ----------------------------------------------- | -------- | ------- | ----- | ------- |
| --format=FORMAT | -f       | Output format (table or json), table by default | No       |         | Yes   | No      |
| --path          | -p       | Include the path to the plugins                 |          |         | Yes   |         |

### `plugin:resume_execution`

> Resume execution of all active plugins

### `plugin:suspend_execution`

> Suspend execution of all active plugins

### `plugin:uninstall`

> Run the plugin uninstallation script

#### Arguments (in order)

| Name      | Description      | Required | Default |
| --------- | ---------------- | -------- | ------- |
| directory | Plugin directory | No       | \[]     |

***

## <i class="fa-ruler">:ruler:</i> Rules

### `rules:process_software_category_rules`

> Process software category rules

#### Options

| Name  | Shortcut | Description                                                                        | Required | Default | Table | Negatable |
| ----- | -------- | ---------------------------------------------------------------------------------- | -------- | ------- | ----- | --------- |
| --all | -a       | Process the rule for all software, even those that already have a defined category | No       |         | No    | No        |

### `rules:replay_dictionary_rules`

> Replay dictionary rules on existing items

#### Options

<table><thead><tr><th>Name</th><th>Shortcut</th><th width="296">Description</th><th>Required</th><th>Table</th><th>Negatable</th></tr></thead><tbody><tr><td>--dictionary</td><td>-d</td><td><p>Dictionary to use. Possible values are:</p><ul><li>CableType</li><li>ComputerModel</li><li>ComputerType</li><li>DatabaseInstanceType</li><li>GlpiSocketModel</li><li>ImageFormat</li><li>ImageResolution</li><li>Manufacturer, MonitorModel</li><li>MonitorType</li><li>NetworkEquipmentModel</li><li>NetworkEquipmentType</li><li>OperatingSystem</li><li>OperatingSystemArchitecture</li><li>OperatingSystemEdition</li><li>OperatingSystemKernel</li><li>OperatingSystemKernelVersion</li><li>OperatingSystemServicePack</li><li>OperatingSystemVersion</li><li>PeripheralModel</li><li>PeripheralType</li><li>PhoneModel, PhoneType</li><li>Printer</li><li>PrinterModel</li><li>PrinterType</li><li>Software</li></ul></td><td>Yes</td><td>No</td><td>No</td></tr><tr><td>--manufacturer-id</td><td>-m</td><td>If the option is set, only items with the given manufacturer ID will be processed. Currently only available for the Software dictionary.</td><td>Yes</td><td>No</td><td>No</td></tr></tbody></table>

***

## <i class="fa-shield-keyhole">:shield-keyhole:</i> Security

### `security:change_key`

> Change the password storage key and update values in the database.

### `security:change_oauth_key`

> (Re)generate OAuth keys

<table><thead><tr><th>Name</th><th>Shortcut</th><th width="189">Description</th><th>Required</th><th>Table</th><th>Negatable</th></tr></thead><tbody><tr><td>--force</td><td>-f</td><td>Force regeneration of OAuth keys even if they already exist.</td><td>No</td><td>No</td><td>No</td></tr></tbody></table>

### `security:disable_2fa`

> Disable 2FA for all users

#### Argument

| Name  | Description                       | Required | Default |
| ----- | --------------------------------- | -------- | ------- |
| login | Disable 2FA for one or more users | No       | \[]     |

### `security:session:list`

> List active sessions

#### Options

<table><thead><tr><th width="157">Name</th><th>Shortcut</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td>--login=LOGIN</td><td>-u</td><td>User name</td><td>No</td></tr></tbody></table>

### `security:session:revoke`

> Revoke login sessions

<table><thead><tr><th width="157">Name</th><th>Shortcut</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td>--login=LOGIN</td><td>-u</td><td>User name</td><td>No</td></tr><tr><td>--all</td><td>-a</td><td>Revoke all sessions</td><td>No</td></tr><tr><td>--session-id=SESSION-ID</td><td>-s</td><td>Session ID to revoke</td><td>No</td></tr></tbody></table>

***

## <i class="fa-gears">:gears:</i> System

### `system:check_requirements`

> Check system requirements

### `system:list_services`

> List system services

### `system:status`

> Check system status

#### Options

<table><thead><tr><th>Name</th><th>Shortcut</th><th width="237">Description</th><th width="111">Required</th><th>Default</th><th>Table</th><th>Negatable</th></tr></thead><tbody><tr><td>--private</td><td>-p</td><td>Advertise status information. Private status information may contain potentially sensitive information such as version information.</td><td>No</td><td></td><td>No</td><td>No</td></tr><tr><td>--service</td><td>-s</td><td>The service to check or all</td><td>No</td><td>all</td><td>No</td><td>Yes</td></tr></tbody></table>

***

## <i class="fa-clipboard-clock">:clipboard-clock:</i> Task

### `task:unlock`

> Unlock automatic tasks

#### Options

<table><thead><tr><th>Name</th><th width="106">Shortcut</th><th width="241">Description</th><th>Required</th><th>Table</th><th>Negatable</th></tr></thead><tbody><tr><td>--all</td><td>-a</td><td>Unlock all tasks</td><td>No</td><td>No</td><td>No</td></tr><tr><td>--cycle</td><td>-c</td><td>Execution time (in cycles) from which the task is considered blocked (delay = task frequency * cycle)</td><td>No</td><td>No</td><td>Yes</td></tr><tr><td>--delay</td><td>-d</td><td>Execution time (in seconds) from which the task is considered blocked (default: 1800)</td><td>No</td><td>No</td><td>Yes</td></tr><tr><td>--task</td><td>-t</td><td>Itemtype::name of the task to unlock (e.g., "MailCollector::mailgate")</td><td>No</td><td>Yes</td><td>Yes</td></tr></tbody></table>

***

## <i class="fa-screwdriver-wrench">:screwdriver-wrench:</i> Tools

### `tools:check_database_keys`

> Check database for missing and errounous keys

#### Options :

<table><thead><tr><th>Name</th><th width="216">Description</th><th>Required</th><th>Array</th><th>Negatable</th></tr></thead><tbody><tr><td>--detect-misnamed-keys</td><td>Detect misnamed keys</td><td>No</td><td>No</td><td>No</td></tr><tr><td>--detect-useless-keys</td><td>Detect misnamed keys</td><td>No</td><td>No</td><td>No</td></tr></tbody></table>

### `tools:check_database_schema_consistency`

> Check database schema consistency

### `tools:check_twig_templates_syntax`

> DESCRIPTION A FAIRE

### `tools:sdelete_orphan_logs`

> Delete orphan logs

#### Options

| Name      | Shortcut | Description                                             | Required | Default | Array | Negatable |
| --------- | -------- | ------------------------------------------------------- | -------- | ------- | ----- | --------- |
| --dry-run |          | Simulate the command without actually deleting anything | No       |         | No    | No        |

### `tools:generate_api_snapshot`

> Updates a snapshot used for API version tests

#### Argument

<table><thead><tr><th width="113">Name</th><th width="310">Description</th><th>Required</th><th>Default</th></tr></thead><tbody><tr><td>version</td><td>Version of the API to update the snapshot for</td><td>No</td><td>[]</td></tr></tbody></table>

### `tools:generate_dev_ldap`

> Create a ready to use AuthLDAP object

### `tools:generate_forms_for_each_illustrations`

> Generate one form per available illustration

### `tools:generate_hooks_documentation`

> Generate plugin hooks documentation

### `tools:generate_illustration_translations`

> DESCRIPTION A FAIRE

### `tools:licence_headers_check`

> Check licence header in code source files

#### Options

<table><thead><tr><th width="157">Name</th><th>Shortcut</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td>--plugin=PLUGIN</td><td>-p</td><td>Plugin name</td><td>No</td></tr><tr><td>--directory[=DIRECTORY]</td><td>-d</td><td>Directory to parse (optional)</td><td>No</td></tr><tr><td>--header-file[=HEADER-FILE]</td><td>​</td><td>Header file to use (optional)</td><td>No</td></tr><tr><td>--fix</td><td>-f</td><td>Fix missing and outdated headers</td><td>No</td></tr><tr><td>--discard-extra-tags</td><td>​</td><td>Discard extra tags found in headers</td><td>No</td></tr></tbody></table>

### `tools:locales:compile`

> Compile MO files from PO files

#### Options

<table><thead><tr><th width="157">Name</th><th>Shortcut</th><th>Description</th><th>Required</th><th>Default</th></tr></thead><tbody><tr><td>--plugin=PLUGIN</td><td>-p</td><td>Plugin name</td><td>No</td><td>​</td></tr><tr><td>--directory=DIRECTORY</td><td>-d</td><td>Directory to parse (optional)</td><td>No</td><td>​</td></tr></tbody></table>

### `tools:locales:extract`

> Extract strings from the project to generate POT file

### `tools:plugin:release`

> Build a GLPI plugin release archive

#### Options

<table><thead><tr><th width="157">Name</th><th>Shortcut</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td>--plugin=PLUGIN</td><td>-p</td><td>Plugin name</td><td>No</td></tr></tbody></table>

## <i class="fa-user-gear">:user-gear:</i> User

### `user:create`

> Create a new GLPI user in the internal database

#### Argument

| Name     | Description                          | Required | Default |
| -------- | ------------------------------------ | -------- | ------- |
| username | Specify the username of the new user | yes      | \[]     |

#### Options

<table><thead><tr><th>Name</th><th width="105">Shortcut</th><th width="220">Description</th><th>Required</th><th>Table</th><th>Negatable</th></tr></thead><tbody><tr><td>--password[=PASSWORD]</td><td>-p</td><td>Specify the password</td><td>No</td><td>No</td><td>No</td></tr><tr><td>--env=ENV</td><td></td><td>Environment to use. Possible values are: <code>production</code>, <code>staging</code>, <code>testing</code>, <code>e2e_testing</code>, <code>development</code></td><td>No</td><td>No</td><td>Yes</td></tr><tr><td>--config-dir[=CONFIG-DIR]</td><td></td><td>Configuration directory to use (this option is obsolete)</td><td>No</td><td>No</td><td>Yes</td></tr></tbody></table>

### `user:delete`

> Delete a user

#### Argument

| Name     | Description                                | Required | Default |
| -------- | ------------------------------------------ | -------- | ------- |
| username | Specify the username of the user to delete | Yes      | \[]     |

#### Option

<table><thead><tr><th>Name</th><th width="255">Description</th><th>Required</th><th>Table</th><th>Negatable</th></tr></thead><tbody><tr><td>--env=ENV</td><td>Environment to use. Possible values are: <code>production</code>, <code>staging</code>, <code>testing</code>, <code>e2e_testing</code>, <code>development</code></td><td>No</td><td>No</td><td>Yes</td></tr><tr><td>--config-dir[=CONFIG-DIR]</td><td>Configuration directory to use (this option is obsolete)</td><td>No</td><td>No</td><td>Yes</td></tr></tbody></table>

### `user:disable`

> Disable a user

#### Argument

| Name     | Description                                 | Required | Default |
| -------- | ------------------------------------------- | -------- | ------- |
| username | Specify the username of the user to disable | Yes      | \[]     |

#### Option

<table><thead><tr><th>Name</th><th width="257">Description</th><th>Required</th><th>Array</th><th>Negatable</th></tr></thead><tbody><tr><td>--env=ENV</td><td>Environment to use. Possible values are: <code>production</code>, <code>staging</code>, <code>testing</code>, <code>e2e_testing</code>, <code>development</code></td><td>No</td><td>No</td><td>Yes</td></tr><tr><td>--config-dir[=CONFIG-DIR]</td><td>Configuration directory to use (this option is deprecated)</td><td>No</td><td>No</td><td>Yes</td></tr></tbody></table>

### `user:enable`

> Enable a user

#### Argument

| Name     | Description                                    | Required | Default |
| -------- | ---------------------------------------------- | -------- | ------- |
| username | Indicates the identifier of the user to enable | Yes      | \[]     |

#### Options

<table><thead><tr><th>Name</th><th width="214">Description</th><th>Required</th><th>Array</th><th>Negatable</th></tr></thead><tbody><tr><td>--env=ENV</td><td>Environment to use. Possible values are: <code>production</code>, <code>staging</code>, <code>testing</code>, <code>e2e_testing</code>, <code>development</code></td><td>No</td><td>No</td><td>Yes</td></tr><tr><td>--config-dir[=CONFIG-DIR]</td><td>Configuration directory to use (this option is deprecated)</td><td>No</td><td>No</td><td>Yes</td></tr></tbody></table>

### `user:grant`

> Assign a profile to a user

#### Argument

| Name     | Description                                                           | Required | Default |
| -------- | --------------------------------------------------------------------- | -------- | ------- |
| username | Indicates the identifier of the user whose profile should be modified | Yes      | \[]     |

#### Options

<table><thead><tr><th>Name</th><th width="106">Shortcut</th><th width="202">Description</th><th>Required</th><th>Array</th><th>Negatable</th></tr></thead><tbody><tr><td>--profile= PROFILE</td><td>-p</td><td>Desired profile</td><td>Yes</td><td></td><td></td></tr><tr><td>--entity=ENTITY</td><td>-e</td><td>Entity [default: 0]</td><td>No</td><td></td><td></td></tr><tr><td>--recursive</td><td>-r</td><td>Recursion of the profile on sub-entities</td><td>No</td><td></td><td></td></tr><tr><td>--env=ENV</td><td></td><td>Environment to use. Possible values are: <code>production</code>, <code>staging</code>, <code>testing</code>, <code>e2e_testing</code>, <code>development</code></td><td>No</td><td>No</td><td>Yes</td></tr><tr><td>--config-dir[=CONFIG-DIR]</td><td></td><td>Configuration directory to use (this option is deprecated)</td><td>No</td><td>No</td><td>Yes</td></tr></tbody></table>

### `user:reset_password`

> Reset a user's password in the internal database

#### Argument

| Name     | Description                                                         | Required |
| -------- | ------------------------------------------------------------------- | -------- |
| username | Indicates the identifier of the user whose password should be reset | Yes      |

#### Options

<table><thead><tr><th>Name</th><th>Shortcut</th><th width="228">Description</th><th>Required</th><th>Array</th><th>Negatable</th></tr></thead><tbody><tr><td>--password[=PASSWORD]</td><td>-p</td><td>Specify the password</td><td>No</td><td></td><td></td></tr><tr><td>--env=ENV</td><td></td><td>Environment to use. Possible values are: <code>production</code>, <code>staging</code>, <code>testing</code>, <code>e2e_testing</code>, <code>development</code></td><td>No</td><td>No</td><td>Yes</td></tr><tr><td>--config-dir[=CONFIG-DIR]</td><td></td><td>Configuration directory to use (this option is deprecated)</td><td>No</td><td>No</td><td>Yes</td></tr></tbody></table>

***

[^1]: To be replaced by the user authorized to use the Web services

[^2]: To be modified with the path to your GLPI instance


---

# 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://help.glpi-project.org/glpi-12/glpi-command-line-interface-cli/available-commands.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.
