Operations

/1password

Use when managing secrets, credentials, API keys, or vault operations. Supports Environments (Beta) for .env mounting. Covers 1password, secrets, op, vault, migrate, credentials. NOT for: non-secret config (use regular config files).

$ golems-cli skills install 1password
Experimental
90% best pass rate
10 assertions
3 evals
6 workflows

Updated 2 weeks ago

Secret management skill using 1Password CLI (op). Routes to workflows for specific operations.

Prerequisites Check

Run first:

op account list

If "not signed in" or error: See workflows/troubleshoot.md


🌟 PREFERRED: 1Password Environments (Beta)

For .env file management, use 1Password Environments instead of manual CLI migration.

Official Docs → | Full Workflow →

Key Insight: UI Creation, CLI Access

Environments are created in the 1Password desktop app UI - not via CLI. However, once created, CLI tools can still interact with secrets via op run and op inject.

ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
│                    ENVIRONMENTS WORKFLOW                     │
ā”œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¤
│                                                              │
│  CREATION (UI Only)           ACCESS (Multiple Options)     │
│  ─────────────────            ─────────────────────────     │
│  1Password Desktop App   ──►  • Mounted .env (named pipe)   │
│  • Developer > Environments   • op run (env vars)           │
│  • NOT automatable            • op inject (config files)    │
│                                                              │
ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜

Why Environments?

  • Secrets never on disk - Named pipe mount, not plaintext file
  • Real-time sync - Changes in 1Password instantly available
  • Team sharing - Grant access with granular permissions
  • Multi-device - Same environment works across all your machines

Setup Flow (One-Time in Desktop App)

  1. Enable Developer features → Settings > Developer > Enable Developer Experience
  2. Create Environment → Developer > Environments > New Environment
  3. Import your .env → Click Import or manually add variables
  4. Set Mount Destination → Destinations tab > Local .env file > Choose path
  5. Authorize → Confirm when prompted

Environments vs CLI: When to Use Each

ScenarioUse EnvironmentsUse CLI (op run/op inject)
Local developmentāœ… Best choiceWorks but more setup
CI/CD pipelinesāŒ Can't automate creationāœ… Service accounts
Team secretsāœ… Built-in sharingManual sync needed
One-time scriptsOverkillāœ… Quick and easy
Template configsN/Aāœ… op inject with .tpl

Mounted .env vs op inject

Mounted .env (Environments):

# App reads .env.local directly (named pipe, no real file)
npm run dev
# Variables available automatically via dotenv

op inject (CLI):

# Template file with secret references (.env.template)
DATABASE_URL=op://prod/db/url
API_KEY=op://prod/api/key
 
# Inject at runtime
op inject -i .env.template -o .env && npm run build
# Remember to delete .env after!

op run (CLI):

# Pass secrets as environment variables
op run --env-file .env.template -- npm run build
# No temp file created, secrets in process env only

Working Example: songscript

The songscript project uses Environments with 9 variables mounted to .env.local:

  • Environment contains: CONVEX_DEPLOY_KEY, ANTHROPIC_API_KEY, etc.
  • Destination: .env.local (named pipe, not actual file)
  • Works seamlessly with bun dev, npm run dev, etc.

Problem: Each MCP with op:// refs triggers separate auth prompts.

Solution: Centralize all secrets in one file, launch with op run.

~/.config/mcp-secrets/
ā”œā”€ā”€ secrets.env          # All op:// refs (one auth loads all)
└── secrets.env.example  # Template (safe to share)

Wrapper scripts:

cursor-secure   # op run --env-file secrets.env -- cursor
claude-secure   # op run --env-file secrets.env -- claude
with-secrets    # op run --env-file secrets.env -- <any command>

MCP configs use empty env:

{ "env": {} }  // Inherits from parent process

Example: Golems Configuration

The golems ecosystem uses Environments for sensitive settings:

  1. Create Environment in 1Password: golems
  2. Add variables: NTFY_TOPIC, ANTHROPIC_API_KEY, LINEAR_API_KEY
  3. Mount to: ~/.config/golems/.env
  4. Usage: Scripts source the mounted file or use op run
# Option 1: Source mounted .env
source ~/.config/golems/.env
 
# Option 2: Use op run with template
op run --env-file ~/.config/golems/.env.template -- bun run start

Important Limitations (Beta)

LimitationDetails
UI-only creationCannot create/edit environments via CLI
Platform supportMac and Linux only (no Windows)
Max mounts10 enabled .env files per device
Concurrent readsMay have conflicts with multiple processes
Edits in UI onlyChanges to mounted file are lost - edit in 1Password UI
Beta statusFeature may change

When to Use CLI Instead

Use op run or op inject (workflows/migrate-env.md) when:

  • CI/CD pipelines - Need Service Accounts for automated access
  • Scripted operations - Creating items programmatically
  • Template configs - .yml.tpl or .json.tpl files with secret refs
  • Windows - Environments not available on Windows

Quick Actions

What you want to doWorkflow
Use 1Password Environmentsworkflows/use-environment.md
List secrets in vaultworkflows/list-secrets.md
Add a new secretworkflows/add-secret.md
Migrate .env to 1Passwordworkflows/migrate-env.md
Migrate MCP config secretsworkflows/migrate-mcp.md
Fix auth/biometric issuesworkflows/troubleshoot.md

Workflows

/1password:list-secrets/1password:migrate-env/1password:troubleshoot/1password:use-environment/1password:migrate-mcp/1password:add-secret