Skip to content

Raaz CLI

Raaz (raaz) is a command-line tool for pushing and pulling .env secret files to and from pluggable cloud secret backends, keyed by an app / env / provider context.

Overview

Instead of hand-rolling scripts around each cloud vendor's secret store, Raaz gives you one consistent workflow — raaz push and raaz pull — that works the same way whether your secrets live in AWS Secrets Manager, GCP Secret Manager, Azure Key Vault, OCI Vault, or just on your own filesystem.

Install

Not on PyPI yet — clone and install locally for now. This one command is everything you need.

git clone https://github.com/tisaksen/raaz.git && cd raaz
uv pip install -e .

Need a specific provider's dependencies too? Add it as an extra, e.g. uv pip install -e ".[aws]" — see Supported providers below for the rest.

Quick start

raaz init myapp dev local   # no cloud credentials needed to try it — "local" needs none
raaz push                   # send every .env file in this project to that context
raaz pull                   # ...later, from anywhere with the same app/env/provider
raaz run -- java -jar app.jar   # ...or skip the file entirely, inject secrets straight into a process

See Getting Started for a full walkthrough, including setting up cloud provider credentials.

Commands at a glance

init Establish the app/env/provider context for a project.
push / pull Sync .env-style files with the current context.
status One glance: context, credentials, and drift — the command to reach for daily.
diff Local vs. remote, or remote env vs. remote env (--against).
matrix One file's keys across every environment at once.
share A one-time-read link for any file — no cloud credentials, no raaz install, to view it.
rollback Restore local files from a pre-pull backup.
run Inject secrets as env vars into a subprocess — nothing touches disk.

Full details for every command: CLI Reference.

Supported providers

Provider Backend Extra
aws AWS Secrets Manager raaz[aws]
gcp GCP Secret Manager raaz[gcp]
azure Azure Key Vault raaz[azure]
oci OCI Vault raaz[oci]
vault HashiCorp Vault (KV v2, token auth) raaz[vault]
1password 1Password (Secrets Automation / Service Accounts) raaz[1password]
bitwarden Bitwarden Secrets Manager raaz[bitwarden]
local Your own filesystem, encrypted at rest via your OS keychain included in the base install

More providers can be added without touching this repo — see Providers for the plugin interface.

How secrets are organized

Every secret is scoped to an app / env / provider triple, e.g. myapp / dev / aws. That context is saved to .raaz/context.json in your project directory (raaz ctx show / raaz ctx use to inspect or change it), so you don't have to pass --app/--env/--provider on every command once it's set.

By default, push finds every .env-style file in the project root and pushes each one under a secret name derived from its filename; pull writes them back the same way, overwriting whatever's already there.

Don't want .env files sitting in the project root at all? On first setup, raaz init asks (once) whether to store them under a subfolder of .raaz/ instead - e.g. .raaz/dots/. Declining (the default) keeps them at the project root; opting in moves them there instead, and every push/pull/diff/status transparently reads and writes that folder from then on. Change your mind later with raaz ctx use --dir <name>, or override it for a single command with --dir <name> - see CLI Reference for the full prompt flow.

Documentation

  • Getting Started — cloud provider credentials, running processes without disk writes, switching environments, cleanup, sharing
  • Providers — cloud vendor integrations and writing your own
  • CLI Reference — every available command

License

PolyForm Strict License 1.0.0 — noncommercial use only; no redistribution or modified/derivative copies without a separate agreement with the copyright holder. This is not an open-source license. PRs from invited collaborators are still welcome — see CONTRIBUTING.md. For commercial use, contact thomas.isaksen@gmail.com.