| name | 1password |
| name_zh | 1password |
| description | Set up and use 1Password CLI (op). Use when installing the CLI, enabling |
| description_zh | Set up and use 1Password CLI (op). Use when installing the CLI, enabling |
| category | dev-tools |
| tags | ["ai","cli","frontend","llm","python"] |
| source | null |
| language | en |
| needs_review | false |
| slug | 1password |
| version | 1.0.0 |
| created | 2026-06-12 |
| updated | 2026-06-12 |
| inputs | [{"name":"request","type":"string","required":true,"description":"User request or task description"}] |
| output | {"format":"markdown","description":"Generated content based on the user request"} |
| author | AI-SKILL |
| license | MIT |
When to use
Use this skill when you need to work with 1password.
Inputs
User request or task description.
Output
Generated content based on the user request.
Prompt
Follow the guidelines in this skill when working on related tasks. Ensure you understand the requirements and constraints before proceeding.
1Password CLI
Follow the official CLI get-started steps. Don't guess install commands.
Prerequisites
- tmux is required for reliable
op commands (the shell tool uses fresh TTYs per command, causing re-auth issues without tmux)
- macOS:
brew install tmux
- Linux (Debian/Ubuntu):
sudo apt install tmux
- Linux (RHEL/Fedora):
sudo dnf install tmux
References
references/get-started.md (install + app integration + sign-in flow)
references/cli-examples.md (real op examples)
Workflow
- Check OS + shell.
- Verify CLI present:
op --version.
- Confirm desktop app integration is enabled (per get-started) and the app is unlocked.
- REQUIRED: create a fresh tmux session for all
op commands (no direct op calls outside tmux).
- Sign in / authorize inside tmux:
op signin (expect app prompt).
- Verify access inside tmux:
op whoami (must succeed before any secret read).
- If multiple accounts: use
--account or OP_ACCOUNT.
REQUIRED tmux session
The shell tool uses a fresh TTY per command. To avoid re-prompts and failures, always run op inside a dedicated tmux session with a fresh socket and session name.
Socket conventions:
- Put sockets under
${LETTA_TMUX_SOCKET_DIR:-${TMPDIR:-/tmp}/letta-tmux-sockets} so they're isolated and easy to clean up.
- Use a timestamped session name (e.g.
op-auth-$(date +%Y%m%d-%H%M%S)) so you never reuse an old session — previous auth state may be stale or broken.
- Kill the session when you're done (
tmux -S "$SOCKET" kill-session -t "$SESSION") to avoid leaking long-running tmux processes.
Full example:
SOCKET_DIR="${LETTA_TMUX_SOCKET_DIR:-${TMPDIR:-/tmp}/letta-tmux-sockets}"
mkdir -p "$SOCKET_DIR"
SOCKET="$SOCKET_DIR/letta-op.sock"
SESSION="op-auth-$(date +%Y%m%d-%H%M%S)"
tmux -S "$SOCKET" new -d -s "$SESSION" -n shell
tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -- "op signin --account my.1password.com" Enter
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 -p -J -t "$SESSION":0.0 -S -200
tmux -S "$SOCKET" kill-session -t "$SESSION"
Guardrails
- Never paste secrets into logs, chat, or code.
- Prefer
op run / op inject over writing secrets to disk.
- If sign-in without app integration is needed, use
op account add.
- If a command returns "account is not signed in", re-run
op signin inside tmux and authorize in the app.
- Do not run
op outside tmux; stop and ask if tmux is unavailable.
When NOT to use
Do not use this skill for tasks outside its scope or when simpler alternatives are available.
Example
skill = load_skill("1password")
result = skill.execute()
print(result)