---
title: "Verify with T3Vault CLI"
manual: "T3Vault"
version: "main"
permalink: "https://docs.typo3.org/permalink/codemacher/t3vault:verify-cli@main"
source: "Integrity/VerifyCli.rst"
rendered: "2026-10-01T12:10:44+00:00"
---

# Verify with T3Vault CLI {#verify-cli}

T3Vault ships an integrity verifier that re-hashes artefacts and checks the
OpenTimestamps receipt (via ElephStamp).

This is the **recommended** check before restore: it needs no Bitcoin node and
answers whether the backup files still match `integrity.json`. For an
optional independent check of the `.ots` file with the official client, see
[Manual verification with the OpenTimestamps client](https://docs.typo3.org/permalink/codemacher/t3vault:opentimestamps-manual@main).

## Usage {#verify-cli-usage}

From a development checkout:

```bash
php t3vault/cli/t3vault-verify.php [--json] [--quiet] [--lang=de|en] <backup-dir>
```

Or with the offline PHAR (built into the package under Installer resources):

```bash
php t3vault-verify.phar [--json] [--quiet] [--lang=de|en] <backup-dir>
```

Example:

```bash
php t3vault-verify.phar \
  /var/www/html/var/t3vault/backups/backup_20251117_143022_a3f8b2c1
```

Options:

| Option | Description |
| --- | --- |
| `--json` | Print the full result object as JSON |
| `--quiet` | Suppress human-readable output (exit code only) |
| `--lang=` | `de` or `en` for messages |

Exit codes:

| Code | Meaning |
| --- | --- |
| 0 | `ok` |
| 2 | `pending` / `stamp_failed` / `missing` |
| 1 | `tampered` or fatal error |

> [!NOTE]
> The CLI also accepts `--upgrade` (ask calendars to complete a pending
> proof). That is unrelated to detecting file changes and is not needed for
> the usual pre-restore check.
