
1password
- 3.9k installs
- 385k repo stars
- Updated August 3, 2026
- steipete/clawdis
1password is an agent skill that configures 1Password CLI auth and uses op read, op run, and op inject so commands access vault secrets without exposing credentials in logs or files.
About
1password is a security integration skill for the 1Password op CLI bundled in steipete/clawdis. It walks agents through verifying op --version, detecting auth mode among service account tokens, desktop app integration, or standalone signin, and confirming access with op whoami before any secret read. Service accounts use OP_SERVICE_ACCOUNT_TOKEN for headless direct exec, while desktop integration runs op directly without tmux so IPC to the 1Password app remains reachable on macOS, Linux, and Windows. Standalone signin uses a persistent tmux session with eval-wrapped op signin only when neither service account nor desktop integration is available. Common operations include op read for vault secrets, op run to execute commands with injected environment variables from op:// references, and op inject to render templates into config files. Guardrails forbid pasting secrets into logs or chat and prefer op run and op inject over writing credentials to disk. Developers reach for 1password when scripts or agents need database passwords, API tokens, or SSH keys without exposing them in shell history or plaintext env files.
- Detects service account, desktop app integration, or standalone signin auth modes before secret access.
- op read retrieves vault secrets; op run injects env vars; op inject renders template files.
- Desktop integration requires direct exec without tmux to preserve 1Password IPC channels.
- Standalone signin uses eval-wrapped op signin inside a persistent tmux session on POSIX hosts.
- Guardrails block logging secrets and prefer op run or op inject over writing credentials to disk.
1password by the numbers
- 3,896 all-time installs (skills.sh)
- +166 installs in the week ending Aug 2, 2026 (Skillselion tracking)
- Ranked #102 of 2,719 Automation & Workflows skills by installs in the Skillselion catalog
- Security screen: HIGH risk (skills.sh audit)
- Data as of Aug 3, 2026 (Skillselion catalog sync)
1password capabilities & compatibility
- Capabilities
- auth mode detection for op cli · secret read via op read references · command execution with op run injection · template rendering with op inject
- Use cases
- api development · orchestration
What 1password says it does
Never paste secrets into logs, chat, or code.
npx skills add https://github.com/steipete/clawdis --skill 1passwordAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 3.9k |
|---|---|
| repo stars | ★ 385k |
| Security audit | 3 / 3 scanners passed |
| Last updated | August 3, 2026 |
| Repository | steipete/clawdis ↗ |
How do I wire database passwords or API tokens into scripts and agent commands without writing secrets to .env files or shell history?
Securely read secrets, inject credentials, and run commands without exposing passwords in logs or environment files.
Who is it for?
Developers integrating 1Password CLI for vault-backed secrets in local scripts, agents, or headless service account setups.
Skip if: Skip when secrets are managed entirely outside 1Password or when op CLI cannot be installed on the target host.
When should I use this skill?
User needs op signin, op read, op run, or op inject for 1Password vault secrets in development workflows.
What you get
Authenticated op commands that read, inject, or run with vault-backed secrets while keeping credentials out of chat and disk.
- injected config files
- vault-backed env vars
- masked command output
Files
1Password CLI
Follow the official CLI get-started steps. Don't guess install commands.
References
references/get-started.md(install + app integration + sign-in flow)references/cli-examples.md(realopexamples)
Workflow
1. Check OS + shell. 2. Verify CLI present: op --version. 3. Detect the auth mode the user has set up:
- Service account:
OP_SERVICE_ACCOUNT_TOKENis set (typical for headless setups, CI, gateways). - Desktop app integration: the 1Password desktop app is running with CLI integration enabled (typical on macOS / Windows / Linux desktops).
- Standalone signin: neither of the above —
op signinwill prompt for an account password every session.
4. Run op according to the auth mode (see below). 5. Verify access: op whoami should succeed before any secret read. 6. If multiple accounts: use --account or OP_ACCOUNT.
Running op per auth mode
Service account (preferred for headless / gateway use)
Direct exec. No tmux, no signin step.
export OP_SERVICE_ACCOUNT_TOKEN="ops_..."
op vault list
op read op://app-prod/db/passwordDesktop app integration
Direct exec. Do not wrap in tmux — the desktop app integration uses a per-user IPC channel that is established for the gateway's exec environment but is not always reliably reachable from tmux subshells, which run with a different environment context. The transport differs per platform (XPC via the 1Password Browser Helper on macOS, a Unix domain socket on Linux, a named pipe on Windows); the practical rule for an agent is the same on all three: run op directly. On macOS, a useful symptom indicator is the 1Password integration group container at ~/Library/Group Containers/2BUA8C4S2C.com.1password/t/.
op vault list # may trigger Touch ID / Windows Hello / system auth on first call
op whoamiIf a call returns 1Password CLI couldn't connect to the 1Password desktop app, do not switch to tmux. Confirm the desktop app is running and unlocked, then retry direct exec.
Standalone signin (no app, interactive password)
This is the only mode where tmux helps. op signin prints an eval-style export setting an OP_SESSION_* token for POSIX shells; later commands in the same shell are authenticated by that env var. The gateway's per-command shells lose that state between calls, so a persistent tmux pane keeps the session token alive — but only if the export is actually applied with eval in a POSIX shell. Sending op signin as a plain command leaves stdout printed to the pane and op whoami will fail.
The tmux flow is only actionable on macOS/Linux hosts where the tmux skill is available. The example intentionally opens /bin/sh so the POSIX eval "$(op signin ...)" output is valid even when the user's normal shell is fish. On Windows, prefer desktop app integration or service account auth. If the user only has standalone interactive signin on Windows, stop and ask them to provide a persistent PowerShell session mechanism or switch to desktop integration/service account auth; do not translate the tmux commands directly.
SOCKET_DIR="${OPENCLAW_TMUX_SOCKET_DIR:-${TMPDIR:-/tmp}/openclaw-tmux-sockets}"
mkdir -p "$SOCKET_DIR"
chmod 700 "$SOCKET_DIR"
SOCKET="$SOCKET_DIR/openclaw-op.sock"
SESSION="op-auth-$(date +%Y%m%d-%H%M%S)"
tmux -S "$SOCKET" new -d -s "$SESSION" -n shell /bin/sh
tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -- 'eval "$(op signin --account my.1password.com)"' Enter
tmux -S "$SOCKET" capture-pane -t "$SESSION":0.0 -p -S - | tail -40Do not queue follow-up commands while signin is prompting. Poll the pane with capture-pane until signin has either completed and the shell prompt has returned, or it is clearly waiting for human input. If the prompt requires a password, MFA, or account choice, pause and ask the user to complete signin in their own terminal; give them the socket and session values so they can attach locally. The agent should not run tmux attach from exec because attach consumes the current TTY and prevents scripted send-keys / capture-pane control.
After the shell prompt returns, verify by sending the checks into the same pane:
tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -- 'op whoami' Enter
tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -- 'op vault list' Enter
tmux -S "$SOCKET" capture-pane -t "$SESSION":0.0 -p -S - | tail -80Keep the tmux session running so later op read / op run commands reuse the same authenticated shell.
Use the same SOCKET and SESSION values for every follow-up command in this standalone signin flow. The -S "$SOCKET" flag selects the tmux server socket; keep it in a user-owned 0700 directory, do not share it between users, and choose a new session name for each new signin attempt.
Guardrails
- Never paste secrets into logs, chat, or code.
- Prefer
op run/op injectover writing secrets to disk. - If sign-in without app integration is needed, use
op account addfirst. - If a command returns "account is not signed in":
- service account: re-export
OP_SERVICE_ACCOUNT_TOKEN - desktop app: confirm the app is running and integration is enabled
- standalone: re-run
op signininside the same tmux session and authorize
op CLI examples (from op help)
Sign in
op signinop signin --account <shorthand|signin-address|account-id|user-id>
Read
op read op://app-prod/db/passwordop read "op://app-prod/db/one-time password?attribute=otp"op read "op://app-prod/ssh key/private key?ssh-format=openssh"op read --out-file ./key.pem op://app-prod/server/ssh/key.pem
Run
export DB_PASSWORD="op://app-prod/db/password"op run --no-masking -- printenv DB_PASSWORDop run --env-file="./.env" -- printenv DB_PASSWORD
Inject
echo "db_password: {{ op://app-prod/db/password }}" | op injectop inject -i config.yml.tpl -o config.yml
Whoami / accounts
op whoamiop account list
1Password CLI get-started (summary)
- Works on macOS, Windows, and Linux.
- macOS/Linux shells: bash, zsh, sh, fish.
- Windows shell: PowerShell.
- Requires a 1Password subscription and the desktop app to use app integration.
- macOS requirement: Big Sur 11.0.0 or later.
- Linux app integration requires PolKit + an auth agent.
- Install the CLI per the official doc for your OS.
- Enable desktop app integration in the 1Password app:
- Open and unlock the app, then select your account/collection.
- macOS: Settings > Developer > Integrate with 1Password CLI (Touch ID optional).
- Windows: turn on Windows Hello, then Settings > Developer > Integrate.
- Linux: Settings > Security > Unlock using system authentication, then Settings > Developer > Integrate.
- After integration, run any command to sign in (example in docs:
op vault list). - If multiple accounts: use
op signinto pick one, or--account/OP_ACCOUNT. - For non-integration auth, use
op account add. - Desktop app integration uses a per-user IPC channel the CLI must reach. The transport differs per platform (XPC via the 1Password Browser Helper on macOS, a Unix domain socket on Linux, a named pipe on Windows). Run
opdirectly from the gateway's exec environment; wrapping in tmux can move the call into a different environment context where the IPC channel is unreachable, producing1Password CLI couldn't connect to the 1Password desktop apperrors. - macOS: the integration group container lives at
~/Library/Group Containers/2BUA8C4S2C.com.1password/t/— useful for recognizing the failure mode, not as a reachability test. - Service account auth (
OP_SERVICE_ACCOUNT_TOKEN) does not use the desktop IPC channel and works the same in or out of tmux. - Standalone interactive signin may use tmux only to preserve the
OP_SESSION_*export in one persistent shell. The tmux example must start a POSIX shell such as/bin/shbefore sendingeval "$(op signin ...)"; do not send that POSIXevalform into fish or PowerShell.
Related skills
How it compares
Pick 1password when secrets already live in 1Password vaults and you need op CLI patterns for agents; use generic .env skills when no vault is involved.
FAQ
When should op run in tmux?
Only for standalone interactive signin without desktop app integration or a service account token; desktop mode must run op directly.
How do headless setups authenticate?
Export OP_SERVICE_ACCOUNT_TOKEN and run op commands directly without a signin step.
What verifies access before reading secrets?
Run op whoami successfully after choosing the correct auth mode for the environment.
Is 1password safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.