Docs
Quickstart
From nothing to your app running with its secrets from 1Password, then a reviewed sync to a deployed environment. No value is ever printed along the way.
1. Install
npm works on every platform and picks the prebuilt binary. Without Node.js, on Linux or macOS, use the install script.
$ npm install -g @matthew-cochran/opv$ curl -fsSL https://raw.githubusercontent.com/matt-cochran/1password-vault/main/install.sh | shYou also need the 1Password CLI, op. On macOS and Windows, turn on Settings > Developer > Integrate with 1Password CLI in the 1Password app. Other ways to install
2. Sign in and init
In your project, sign in to the account the project uses, then create the dev environment. The vault defaults to <project>-dev and is created if missing; the configuration is saved in 1Password.
$ opv login --account you@example.com $ opv init dev
3. Declare keys
Declare each key with its kind. opv check adds the empty field; then open it in 1Password, click Edit and type the value there, the only place a value is typed.
$ opv add API_KEY --kind secret --env dev $ opv check dev $ opv open API_KEY
4. Run locally
Start your app with the environment's keys as environment variables, through op run, with no .env file on disk.
$ opv run dev -- npm run dev
In a checkout of a project whose configuration already lives in 1Password, no file is needed: opv finds it by the repository's git remote. opv login dev then opv run dev -- npm run dev.
Already have a .env?
Declare every key and import the values, verified, in one step. Without --apply it only shows the plan.
$ opv init dev --from .env --apply5. Deploy
Give an environment a target (Fly.io, GitHub Actions, Azure or Kubernetes) in the configuration. Then check it, review the plan, and apply exactly that plan.
$ opv status prod # one row per key, problems first $ opv plan prod # what a sync would write, hold and prune $ opv sync prod --deploy --expect-plan 412a5b23
If anything changed since the plan, the sync refuses before any write and prints the new id. Prefer a terminal UI? Run opv ui.
With an AI assistant
Install the agent skill so every Claude Code, Codex or Cursor session starts from opv ready --json and never handles a secret value. With the script: … | sh -s -- --skill.
$ opv skill install --userFull reference
- Installing →Install script, binaries, npm, source, verifying downloads, prerequisites.
- Configuration →Where the configuration lives, the schema, every target, shared keys, init and add, rules.
- Local development →opv run, opv check, several products, WSL.
- Guided setup →opv login and opv setup for people.
- Usage →Every command and flag, the JSON contract, exit codes, GitHub Actions, security model.
- How opv handles failures →Retries, time limits, exit 9, Next:, interruptions.
- Agent setup →Step-by-step setup for AI assistants, with safety rules.