1Password Plugin
@theholocron/holocron-plugin-1password implements the vault capability by shelling out to the 1Password CLI (op). All secret operations go through op — no bearer token is stored in Holocron’s keyring.
Install
pnpm add -D @theholocron/holocron-plugin-1passwordThe op CLI must be installed separately. Install it from 1password.com/downloads/command-line or via Homebrew:
brew install --cask 1password/tap/1password-cliCapabilities
| Capability | Auth method |
|---|---|
vault |
op CLI session (biometric on laptop; OP_SERVICE_ACCOUNT_TOKEN in CI) |
Config
providers: { vault: ["1password", { // Required: 1Password vault name where items live vault: "acme-app", // Optional: 1P account UUID (--account flag on every op call) account: "ABCDEFGHIJKLMNOPQRSTUVWXYZ", }],}Options
| Option | Required | Description |
|---|---|---|
vault |
Yes | 1Password vault name |
account |
No | 1Password account UUID — useful when multiple accounts are signed in |
Authentication
On laptop: Sign in via the 1Password desktop app or op signin. The plugin uses the active session automatically.
In CI: Set OP_SERVICE_ACCOUNT_TOKEN in the workflow environment:
env: OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }}holocron auth set 1password does not store a token — it prints the AUTH_HINT instead.
Secret reference format
1Password item references follow the format op://Vault/Item/field:
# Read a secretop://acme-app/database/passwordIn the vault capability this format is used with vault.read(reference).
What vault provides
read(reference)— reads a secret byop://Vault/Item/fieldreferencewrite(reference, value)— writes a secret valuelist()— lists available secret references in the configured vaultreadEnvironment?(id)— reads all KEY=VALUE pairs from a 1Password Environment item (supportsholocron secrets sync)ensureProject?(name)— creates the top-level vault container if missingensureEnvironment?(project, name)— creates an environment item inside a project