openclaw/skills/1password/SKILL.md
Safely use exact 1Password fields during attended interactive work and maintain the protected OpenClaw secrets cache. Use for passwords, API keys, credentials, payment data, cache refreshes, or diagnosing credential access. Never use `op` from a LaunchAgent or any child process it starts.
npx skillsauth add Dbochman/dotfiles 1passwordInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Choose one of two modes before accessing credentials. They are deliberately separate because macOS LaunchAgents cannot safely interact with the 1Password desktop session.
Use this mode only in a user-attended terminal for an immediate task. The
agent does not have direct op tool permission; ask the owner to run the exact
single-field read in their terminal when a one-off field is needed.
op:// reference from an owner-only local configuration or
the user. Do not place vault, item, field, or account identifiers in tracked
files merely for convenience.op read "$FIELD_REFERENCE" and capture the result directly into the
consuming command or a short-lived variable.Example pattern using a non-secret placeholder reference:
secret_value=$(op read "$FIELD_REFERENCE") || exit 1
SERVICE_TOKEN="$secret_value" command-that-needs-it
unset secret_value
Read exact fields only. Do not use full-item JSON, item lists, note blobs, bulk exports, or commands that reveal unrelated fields.
LaunchAgents and every child process they start must be cache-only:
CACHE="${OPENCLAW_SECRETS_CACHE:-$HOME/.openclaw/.secrets-cache}"
[[ -f "$CACHE" && ! -L "$CACHE" ]] || exit 1
set -a
source "$CACHE"
set +a
[[ -n "${REQUIRED_KEY:-}" ]] || exit 1
exec service-command
op, probe it with a timeout, start its daemon, or set a service
account token as a workaround.op is not safe
for LaunchAgent use until that fallback is disabled or made interactive-only.cat the cache during diagnosis.Run the tracked helper manually after a vault rotation or when adding a cache key:
openclaw-refresh-secrets --interactive
The helper reads exact field references from
~/.openclaw/.secrets-refresh.env by default. That owner-only mode-0600 file
is local input and is never committed. It may contain:
OP_REF_<CACHE_KEY> assignments for exact 1Password fields;Current required local-seed/cache keys are grouped by meaning:
DYLAN_EMAIL, JULIA_EMAIL;OPENCLAW_EMAIL, OPENTABLE_EMAIL,
ECHONEST_EMAIL, STARMARKET_GMAIL, TRYFI_EMAIL;STARMARKET_DEVICE_TOKEN,
EIGHTSLEEP_CLIENT_SECRET, CIELO_API_KEY, TRYFI_PASSWORD;STARMARKET_USER_HASH,
EIGHTSLEEP_CLIENT_ID, EIGHTSLEEP_DYLAN_USER_ID,
EIGHTSLEEP_JULIA_USER_ID, EIGHTSLEEP_CROSSTOWN_DEVICE_ID,
EIGHTSLEEP_CABIN_DEVICE_ID, PETLIBRO_APPSN, HOUSEHOLD_CHAT_ID,
JULIA_CHAT_ID, DYLAN_CHAT_ID; andCROSSTOWN_LAT, CROSSTOWN_LON,
CABIN_LAT, CABIN_LON.An identifier is not automatically a secret, but these identities, device identifiers, and locations are still private and must remain in the owner-only seed/cache. Truly public, non-household configuration may remain tracked and does not belong in this cache. Use the general identity keys for GWS and contact identity; use service-specific keys only for the named service.
General-cache vault-backed values require an OP_REF_<CACHE_KEY> exact-field reference in
the seed. This includes OPENAI_API_KEY, ELEVENLABS_API_KEY,
OPENCLAW_GATEWAY_TOKEN, the Cielo and Star Market username/password pairs,
the Plaid client and environment secrets, all four NEST_* fields, and the
three separately scoped Ola values: OLA_API_KEY for MCP, OLA_HOOK_TOKEN
for the loopback OpenClaw hook, and OLA_WEBHOOK_SECRET for validating Ola's
public HMAC-signed callback.
The dedicated weekly finance cache uses these exact-field references:
FINANCE_EVERSOURCE_USERNAME / FINANCE_EVERSOURCE_PASSWORD;FINANCE_NATIONAL_GRID_USERNAME / FINANCE_NATIONAL_GRID_PASSWORD;FINANCE_BWSC_USERNAME / FINANCE_BWSC_PASSWORD;FINANCE_PENNYMAC_USERNAME / FINANCE_PENNYMAC_PASSWORD; andFINANCE_BOA_USERNAME / FINANCE_BOA_PASSWORD.The finance references are optional for an unrelated general-cache refresh but
must be configured as a complete ten-field group. When complete, the refresh
helper writes them only to the dedicated owner-only mode-0600 JSON file at
~/.openclaw/financial-dashboard/scraper-credentials.json; they are never
written to the gateway-exported .secrets-cache. The two National Grid
scrapers intentionally share one pair. The weekly finance helper reads this
file directly, removes any stale finance names from ordinary child
environments, and injects one pair as SCRAPER_USER / SCRAPER_PW only for a
guarded re-authentication child. It never reads .env-token or invokes op.
The helper:
--interactive, a real terminal, and the owner
typing the displayed confirmation word;0600 cache and seed files;op read for configured exact fields;0600 temporary files,
fsyncs them, and atomically renames the general, optional finance, and
optional Nest-event targets independently; andThe Nest Pub/Sub listener may also configure the optional exact field reference
OP_REF_NEST_EVENTS_SERVICE_ACCOUNT_JSON. The helper validates that complete
Google service-account document and materializes it only at
~/.openclaw/nest-events/credentials/subscriber-service-account.json under
mode-0700 directories with file mode 0600. The JSON is never added to the
general shell cache. The listener and its LaunchAgent read only that dedicated
file and must never invoke op; see NEST-EVENTS.md for rotation order.
Restart only services that need rotated values after a successful refresh.
Treat payment fields as highly sensitive interactive-only data.
.secrets-cache or the refresh seed.When a service reports missing credentials:
op.op authentication with a non-revealing status
command, then retry one exact-field read without printing its result.openclaw-refresh-secrets --interactive when the cache needs repair.The repeated Tahoe GUI prompt/hang is resolved by removing op from the entire
LaunchAgent process tree, not by adding OP_SERVICE_ACCOUNT_TOKEN.
tools
Use exact configured Reolink cameras through the local Home Hub for availability and power status, fresh stills, visual commentary, protected Dylan/Julia/household sharing, and reversible spotlight control. Supports trusted owner tasks and explicitly scoped proactive automations; not for Nest or Ring cameras, arbitrary recipients, recordings, account changes, or raw camera APIs.
data-ai
Privately manage Dylan and Julia's household plant inventory and care history by physical location, bed, and exact Flower Cam view. Use for confirmed plant onboarding from camera conversations, camera- or bed-filtered inventory, record corrections, individual or whole-bed care, and private filtered exports. Pair with reolink-camera when an owner asks about plants visible in Flower Cam images.
testing
Inspect and control the physically secured Reachy Mini at Crosstown through ClawBody. Use for requests to check Reachy, look around, express an emotion, play any official emotion or dance preset, speak proactively, mute or unmute its microphone, stop movement, or describe what its camera sees.
tools
Handle Reachy/iMessage handoffs, selective durable memory, forgetting, and diagnostics; automatic context comes from the gateway plugin.