CommunityProgramación y desarrollogithub.com

1password

Configurar y usar 1Password CLI para iniciar sesión, integrar con el escritorio y leer o inyectar secretos.

¿Qué es 1password?

Esta habilidad permite a un agente de IA (como Claude Code, Cursor o Codex) interactuar con la herramienta de línea de comandos (CLI) de 1Password para gestionar secretos de forma segura. Es útil para automatizar tareas que requieren acceso a contraseñas, claves API u otros datos sensibles almacenados en 1Password, ya sea en entornos headless (CI, servidores) o en estaciones de trabajo de escritorio. La habilidad detecta automáticamente el modo de autenticación que el usuario ha configurado: cuenta de servicio (ideal para automatización), integración con la aplicación de escritorio (para macOS/Windows/Linux) o inicio de sesión independiente. Dependiendo del modo, ejecuta comandos `op` directamente o dentro de una sesión persistente de `tmux` para mantener la autenticación. También maneja la integración con el navegador para llenar formularios web sin exponer secretos al agente.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/clawdbot/clawdbot/tree/main/skills/1password

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

CLI de 1Password

Sigue los pasos oficiales de inicio rápido de la CLI. No adivines comandos de instalación.

Referencias

  • references/get-started.md (instalación + integración con la aplicación + flujo de inicio de sesión)
  • references/cli-examples.md (ejemplos reales de op)

Flujo de trabajo

  1. Verifica el sistema operativo y el shell.
  2. Comprueba que la CLI esté presente: op --version.
  3. Detecta el modo de autenticación que el usuario ha configurado:
    • Cuenta de servicio: la variable OP_SERVICE_ACCOUNT_TOKEN está definida (típico en entornos headless, CI, gateways).
    • Integración con la aplicación de escritorio: la aplicación de escritorio de 1Password está ejecutándose con la integración de CLI habilitada (típico en macOS / Windows / Linux).
    • Inicio de sesión independiente: ninguno de los anteriores — op signin solicitará una contraseña de cuenta en cada sesión.
  4. Ejecuta op según el modo de autenticación (ver más abajo).
  5. Verifica el acceso: op whoami debe tener éxito antes de leer cualquier secreto.
  6. Si hay varias cuentas: usa --account o OP_ACCOUNT.

Ejecutar op según el modo de autenticación

Cuenta de servicio (preferida para uso headless / gateway)

Ejecución directa. Sin tmux, sin paso de inicio de sesión.

export OP_SERVICE_ACCOUNT_TOKEN="ops_..."
op vault list
op read op://app-prod/db/password

Integración con la aplicación de escritorio

Ejecución directa. No lo envuelvas en tmux — la integración con la aplicación de escritorio usa un canal IPC por usuario que se establece para el entorno de ejecución del gateway pero no siempre es accesible de forma confiable desde sub-shells de tmux, que se ejecutan con un contexto de entorno diferente. El transporte varía según la plataforma (XPC a través del Ayudante del Navegador de 1Password en macOS, un socket de dominio Unix en Linux, una tubería con nombre en Windows); la regla práctica para un agente es la misma en las tres: ejecuta op directamente. En macOS, un indicador útil de síntoma es el contenedor del grupo de integración de 1Password en ~/Library/Group Containers/2BUA8C4S2C.com.1password/t/.

op vault list      # puede solicitar Touch ID / Windows Hello / autenticación del sistema en la primera llamada
op whoami

Si una llamada devuelve 1Password CLI couldn't connect to the 1Password desktop app, no cambies a tmux. Confirma que la aplicación de escritorio esté ejecutándose y desbloqueada, luego reintenta la ejecución directa.

Inicio de sesión independiente (sin aplicación, contraseña interactiva)

Este es el único modo donde tmux ayuda. op signin imprime una exportación de estilo eval que establece un token OP_SESSION_* para shells POSIX; los comandos posteriores en el mismo shell se autentican con esa variable de entorno. Los shells por comando del gateway pierden ese estado entre llamadas, por lo que un panel persistente de tmux mantiene vivo el token de sesión, pero solo si la exportación se aplica realmente con eval en un shell POSIX. Enviar op signin como un comando simple deja stdout impreso en el panel y op whoami fallará.

El flujo de tmux solo es viable en hosts macOS/Linux donde la habilidad tmux esté disponible. El ejemplo abre intencionalmente /bin/sh para que la salida de eval "$(op signin ...)" sea válida incluso cuando el shell normal del usuario es fish. En Windows, prefiere la integración con la aplicación de escritorio o la autenticación con cuenta de servicio. Si el usuario solo tiene inicio de sesión independiente interactivo en Windows, detente y pídele que proporcione un mecanismo de sesión persistente de PowerShell o que cambie a integración de escritorio/autenticación con cuenta de servicio; no traduzcas los comandos de tmux directamente.

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 -40

No encoles comandos de seguimiento mientras signin está solicitando entrada. Consulta el panel con capture-pane hasta que signin haya completado y el prompt del shell haya regresado, o esté claramente esperando entrada humana. Si el prompt requiere una contraseña, MFA o selección de cuenta, haz una pausa y pide al usuario que complete el inicio de sesión en su propia terminal; proporciónales los valores del socket y la sesión para que puedan conectarse localmente. El agente no debe ejecutar tmux attach desde exec porque attach consume la TTY actual e impide el control mediante send-keys / capture-pane.

Después de que el prompt del shell regrese, verifica enviando las comprobaciones al mismo panel:

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 -80

Mantén la sesión de tmux en ejecución para que los comandos posteriores de op read / op run reutilicen el mismo shell autenticado.

Usa los mismos valores de SOCKET y SESSION para cada comando de seguimiento en este flujo de inicio de sesión independiente. La bandera -S "$SOCKET" selecciona el socket del servidor tmux; mantenlo en un directorio de propiedad del usuario con permisos 0700, no lo compartas entre usuarios, y elige un nuevo nombre de sesión para cada nuevo intento de inicio de sesión.

Inicio de sesión en el navegador (1Password para Claude)

Si la sesión expone a Claude en las herramientas de credenciales de Chrome (request_credentials, autofill_credential, enter_verification_code), prefiérelas sobre op para iniciar sesión en sitios web: 1Password llena la página directamente y el secreto nunca entra en el contexto. Reglas:

  • Solicita cada credencial que la tarea necesite en una sola llamada request_credentials antes de navegar.
  • La aprobación es un mensaje de 1Password en el host del gateway. Si permanece pendiente, dile al usuario en qué host desbloquear ("1Password está esperando aprobación en este Mac") en lugar de reintentar.
  • Nunca le pidas al usuario que envíe contraseñas o códigos de un solo uso a través del chat; los códigos se envían solo a través de enter_verification_code.
  • No recurras a op read para una contraseña de sitio web solo porque el flujo del navegador necesita aprobación; eso va en contra del diseño de no exposición. Usa op para secretos consumidos por comandos y configuraciones, no para inicios de sesión web cuando existe el flujo del navegador.

Barreras de protección

  • Nunca pegues secretos en registros, chat o código.
  • Prefiere op run / op inject sobre escribir secretos en disco.
  • Si se necesita iniciar sesión sin integración de la aplicación, usa op account add primero.
  • Si un comando devuelve "account is not signed in":
    • cuenta de servicio: vuelve a exportar OP_SERVICE_ACCOUNT_TOKEN
    • aplicación de escritorio: confirma que la aplicación se esté ejecutando y la integración esté habilitada
    • independiente: vuelve a ejecutar op signin dentro de la misma sesión de tmux y autoriza

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

acp-router

Route plain-language requests for Claude Code, Cursor, Copilot, OpenClaw ACP, OpenCode, Gemini CLI, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or explicit ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation. Codex chat binding defaults to the native Codex app-server plugin unless ACP is explicit or background spawn needs ACP.

add-model-provider

Add and live-prove a model provider with non-interactive config one-liners, without exposing credentials.

agent-transcript

Requested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.

apple-notes

Create, view, edit, delete, search, move, or export Apple Notes via the memo CLI on macOS.

apple-reminders

List, add, edit, complete, or delete Apple Reminders and reminder lists via remindctl.

auto-qa

Run OpenClaw-wide autonomous QA and live/stress campaigns across independent subsystem lanes, with verified fixes and a resumable evidence report.

autoreview

Structured code review through the shared OpenClaw agent-skills installation.

bear-notes

Create, search, and manage Bear notes via grizzly CLI.

blacksmith-testbox

Run Blacksmith Testbox for CI-parity checks, secrets, hosted services, migrations, or builds local cannot reproduce.

block-kit

Use proactively for structured or interactive Slack replies, and when asked to author or validate native Slack Block Kit JSON.

blogwatcher

Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.

blucli

BluOS CLI (blu) for discovery, playback, grouping, and volume.

bluebubbles

Send and manage iMessages via BlueBubbles, including attachments, tapbacks, edits, replies, and groups.

browser-automation

Use when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.

camsnap

Capture frames or clips from RTSP/ONVIF cameras and local webcams, including USB pan/tilt/zoom control.

canvas

Present HTML on connected OpenClaw node canvases, navigate/eval/snapshot, and debug canvas host URLs.

channel-message-flows

Use when running QA Lab channel message flow evidence.

clawdtributor

Clawtributor PRs here, last week or another window: discover conversation refs, recheck GitHub, rank by impact.

clawhub

Search ClawHub for plugins by default, or skills when explicitly requested; install, verify, update, uninstall, publish, or sync skills.

claw-score

Audit or refresh OpenClaw maturity scorecard docs from root taxonomy, maturity scores, and QA evidence artifacts without using maintainer discrawl data or committed inventory reports.

Skills relacionados