1Password Session for Claude Code

SkillMonitoring & ops

Initialize 1Password CLI session for Claude Code. Use when: starting a session that needs 1Password secrets, op CLI keeps prompting biometric auth, setting up OP_SESSION token. Solves: Claude Code's no-TTY subprocess model triggers 1Password biometric auth on every op call. Supports both token-based and App Integration auth modes — auto-detects which mode to use.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the 1Password Session for Claude Code skill

What this skill tells your AI

The instructions your AI receives, as published by sd0xdev/sd0x-harness in skills/op-session/SKILL.md and read by ahel’s review.

Problem

Claude Code executes each Bash tool call in a new subprocess without TTY. 1Password CLI's app integration binds auth to the terminal session, so every op call triggers a biometric prompt.

Solution

Auto-detect the auth mode and configure accordingly:

ModeConditionBehavior
Tokenop signin --raw returns a tokenCache token in ~/.op-claude-session; wrapper passes --session flag
App Integrationop signin --raw returns empty + op whoami succeedsRecord mode in session file; wrapper calls op directly (IPC with desktop app)

Workflow

/op-session [--account <name>]
     │
     ▼
 op signin --raw
     │
     ├─ token non-empty ──► Token mode
     │                       Verify → write session file → done
     │
     └─ token empty ──► op whoami succeeds?
                          ├─ YES → App Integration mode
                          │        Write session file (no token) → done
                          └─ NO  → ERROR: signin failed

Usage

Initialize Session

bash skills/op-session/scripts/op-session-init.sh
# or with specific account
bash skills/op-session/scripts/op-session-init.sh --account my-team

List Available Accounts

bash skills/op-session/scripts/op-session-init.sh --list

Check Session Status

bash skills/op-session/scripts/op-session-init.sh --check

Clear Session

bash skills/op-session/scripts/op-session-init.sh --clear

Subsequent op Calls (Recommended)

Use the secure helper script — it handles mode detection, token loading, validation, and expiry:

bash skills/op-session/scripts/op-with-session.sh read "op://vault/item/field"
bash skills/op-session/scripts/op-with-session.sh item list --vault Production
bash skills/op-session/scripts/op-with-session.sh whoami

The helper:

  • Auto-detects auth mode from session file (OP_AUTH_MODE)
  • Token mode: passes --session and --account flags
  • App mode: passes only --account flag (auth via desktop app IPC)
  • Validates session before each call
  • Returns clear error if session is missing, expired, or app is locked

Session Lifecycle

EventToken ModeApp Integration Mode
Idle timeout30 min → expires10 min → expires (auto-refresh on use)
Each op callResets idle timerResets idle timer
Hard limit12hr12hr
1Password app locksDoes NOT revoke tokenNext op call fails until unlocked
/op-session --clearRemoves session fileRemoves session file

Session File Format

# Token mode
export OP_AUTH_MODE='token'
export OP_SESSION='<session-token>'
export OP_ACCOUNT='<account-id>'

# App Integration mode
export OP_AUTH_MODE='app'
export OP_SESSION=''
export OP_ACCOUNT='<account-id>'

Legacy session files (without OP_AUTH_MODE) are auto-detected as token mode if OP_SESSION is non-empty.

Security

AspectToken ModeApp Integration Mode
Token at rest~/.op-claude-session (owner-only via umask 077)No token stored
Process args--session $TOKEN visible to same-user processesNo --session flag
Auth controlToken possession = accessDesktop app biometric
ScopeAll vaults you can accessAll vaults you can access
Risk levelModerate (token on disk)Lower (no token on disk)
MitigationShort-lived token, --clear when doneApp auto-manages session

Known Limitations

LimitationCauseWorkaround
ls on home-dir paths blocked in ! context checksClaude Code sandbox may restrict ls/find to working directory in command template expansionUse test -f via bash -c wrapper; see skills/op-session/SKILL.md
allowed-tools cannot be narrowed to specific script paths${CLAUDE_PLUGIN_ROOT} unavailable in command markdown (#9354)Keep Bash(bash:*) until upstream fix
Context check is best-effort UISandbox policy may tightenAuthoritative status via bash skills/op-session/scripts/op-session-init.sh --check
App mode fails when desktop app is lockedCLI cannot IPC with locked appUnlock 1Password app, or run /op-session to reinitialize

Prerequisites

  • 1Password CLI (op) installed and configured
  • 1Password desktop app running (for initial biometric auth)
  • Account signed in to 1Password app

Signals

GitHub stars
188
Forks
24
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
op-session
Source
github.com/sd0xdev/sd0x-harness