# docker pass set

**Description:** Set a secret

**Usage:** `docker pass set id[=value] [flags]`





> [!NOTE]
> **Experimental**
>
> This command is experimental. Experimental features are intended for testing and feedback as their functionality or design may change between releases without warning or can be removed entirely in a future release.





## Description

Stores a secret in the local OS keychain. The secret value can be
provided inline (NAME=VALUE) or piped via STDIN.


## Options

| Option | Default | Description |
|--------|---------|-------------|
| `--metadata` |  |  Non-sensitive key=value metadata (repeatable) |



## Examples

### Set a secret:
docker pass set POSTGRES_PASSWORD=my-secret-password

### Or pass the secret via STDIN:
echo my-secret-password > pwd.txt
cat pwd.txt | docker pass set POSTGRES_PASSWORD

### Set a secret with metadata:
docker pass set POSTGRES_PASSWORD=my-secret-password --metadata owner=alice --metadata expiry=2027-03-01

### Or pass a JSON payload with secret and metadata via STDIN:
echo '{"secret":"my-secret-password","metadata":{"owner":"alice"}}' | docker pass set POSTGRES_PASSWORD



