Milady 1password
Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.
install
source · Clone the upstream repo
git clone https://github.com/milady-ai/milady
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/milady-ai/milady "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/.defaults/1password" ~/.claude/skills/milady-ai-milady-1password && rm -rf "$T"
manifest:
skills/.defaults/1password/SKILL.mdsource content
1Password CLI
Follow the official CLI get-started steps. Don't guess install commands.
References
(install + app integration + sign-in flow)references/get-started.md
(realreferences/cli-examples.md
examples)op
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
commands (no directop
calls outside tmux).op - Sign in / authorize inside tmux:
(expect app prompt).op signin - Verify access inside tmux:
(must succeed before any secret read).op whoami - If multiple accounts: use
or--account
.OP_ACCOUNT
REQUIRED tmux session (T-Max)
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/session name.
Example (see
tmux skill for socket conventions, do not reuse old session names):
SOCKET_DIR="${OTTO_TMUX_SOCKET_DIR:-${TMPDIR:-/tmp}/otto-tmux-sockets}" mkdir -p "$SOCKET_DIR" SOCKET="$SOCKET_DIR/otto-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
over writing secrets to disk.op inject - If sign-in without app integration is needed, use
.op account add - If a command returns "account is not signed in", re-run
inside tmux and authorize in the app.op signin - Do not run
outside tmux; stop and ask if tmux is unavailable.op