Obscuro

Configuration

Password resolution, environment variables, and global flags

Global Flags

These flags work with any command:

FlagWhat it does
-p, --passwordPass the master password inline
--password-fileRead password from a file (use - for stdin)

Password Resolution Order

Obscuro checks these sources in order and uses the first one it finds:

  1. --password flag
  2. --password-file flag
  3. Configured backend (from .obscuro/config.json password_backend field):
    • "keychain" → OS keychain
    • "file"~/.config/obscuro/vaults/<hash>.pw
    • "" or "none" → skipped (pre-migration vaults)
  4. OBSCURO_PASSWORD environment variable
  5. Interactive TTY prompt

Config File Fields

The .obscuro/config.json file holds vault metadata (never secret values themselves). It is safe to commit.

FieldTypeDefaultDescription
saltstringBase64-encoded Argon2 salt (set by obscuro init)
verification_tokenstringEncrypted token to verify password correctness
schema_versionint0Config schema version (0=v1, 2=v2+). Written by obscuro auth store.
password_backendstring""Which backend getPassword reads from: keychain, file, none, or "" (skipped)

Environment Variables

VariableWhat it does
OBSCURO_PASSWORDMaster password (skips the interactive prompt)
OBSCURO_NO_UPDATE_CHECKSet to 1 to stop update checks
EDITOREditor for obscuro edit (defaults to vi)

CI/CD Usage

In automated environments there's no TTY to prompt for a password, so pass it via env var or flag:

export OBSCURO_PASSWORD="$VAULT_SECRET"
obscuro inject < manifests.yaml > decrypted.yaml

Or with a flag:

obscuro --password-file /run/secrets/obscuro-pw inject < manifests.yaml

On this page