← 返回
沟通协作 中文

ipeaky

Secure API key management for OpenClaw. Store, list, test, and delete API keys without exposing them in chat history. Keys are stored directly in openclaw.js...
OpenClaw 安全 API 密钥管理工具。支持存储、查看、测试及删除密钥,避免在聊天记录中泄露,密钥直接存储于 openclaw.js。
christiancattaneo
沟通协作 clawhub v3.2.0 1 版本 99773.6 Key: 无需
★ 0
Stars
📥 1,322
下载
💾 15
安装
1
版本
#latest

概述

ipeaky — Secure API Key Management

Keys are stored directly in OpenClaw's native config (openclaw.json) via gateway config.patch.

This means every skill that declares primaryEnv automatically picks up the key — zero manual wiring.

Key Map — Service to Config Path

ServiceConfig PathprimaryEnv
---------------------------------
OpenAIskills.entries.openai-whisper-api.apiKeyOPENAI_API_KEY
ElevenLabsskills.entries.sag.apiKeyELEVENLABS_API_KEY
Brave Searchtools.web.search.apiKeyBRAVE_API_KEY
Geminiskills.entries.nano-banana-pro.apiKeyGEMINI_API_KEY
Google Placesskills.entries.goplaces.apiKeyGOOGLE_PLACES_API_KEY
Notionskills.entries.notion.apiKeyNOTION_API_KEY
ElevenLabs Talktalk.apiKey(direct)
Custom skillskills.entries..apiKey(per skill)
Custom envskills.entries..env.(arbitrary)

Important: Some keys serve multiple skills. OpenAI key is used by openai-whisper-api,

openai-image-gen, etc. ElevenLabs key is used by sag and talk. When storing, set ALL

relevant config paths for that key.

Storing Keys (v4 — Single Paste, Zero Exposure) ⭐ PREFERRED

One popup. Paste everything. Regex parses. One save. One restart. Keys never touch chat or network.

bash {baseDir}/scripts/store_key_v4.sh "<SERVICE_NAME>" "<config_prefix>"

Examples:

# X API keys (consumer key + secret + bearer in one paste)
bash {baseDir}/scripts/store_key_v4.sh "X API" "skills.entries.x-twitter.env"

# Any service — user pastes in any format:
#   consumer key: abc123
#   secret: xyz789
#   bearer token: AAAA...

The script:

  1. Shows ONE macOS popup — user pastes all keys in any format
  2. Local Python regex parses key-value pairs (no AI, no network)
  3. Confirmation popup: "Found 3 keys: X, Y, Z — Store all?"
  4. ONE openclaw config set batch → ONE gateway restart
  5. Keys never appear in chat, logs, or shell history

Supported input formats:

  • key_name: value or key_name = value
  • KEY_NAME=value
  • Bare tokens on separate lines (auto-labeled in order)
  • Mixed formats in one paste

Storing a Key (v3 — Zero Exposure)

Use the v3 script. The agent NEVER sees the key. The script handles popup + storage directly.

bash {baseDir}/scripts/store_key_v3.sh "<SERVICE_NAME>" "<config_path1>" ["<config_path2>" ...]

Examples:

# Brave Search
bash {baseDir}/scripts/store_key_v3.sh "Brave Search" "tools.web.search.apiKey"

# OpenAI (multiple paths)
bash {baseDir}/scripts/store_key_v3.sh "OpenAI" "skills.entries.openai-whisper-api.apiKey"

# ElevenLabs (sag + talk)
bash {baseDir}/scripts/store_key_v3.sh "ElevenLabs" "skills.entries.sag.apiKey" "talk.apiKey"

The script:

  1. Shows macOS popup (hidden input)
  2. Calls openclaw config set for each path
  3. Restarts gateway
  4. Returns ONLY "OK" or "ERROR" — key never appears in agent output or chat history

Legacy Method (v2 — agent sees key, NOT recommended)

Step 1: Launch the secure input popup. On macOS:

bash {baseDir}/scripts/secure_input_mac.sh KEY_NAME

Step 2: Once you have the key value (from stdout of the script), store it via gateway config.patch.

Example for OpenAI:

gateway config.patch with raw: {"skills":{"entries":{"openai-whisper-api":{"apiKey":"THE_KEY"},"openai-image-gen":{"apiKey":"THE_KEY"}}}}

Example for ElevenLabs:

gateway config.patch with raw: {"skills":{"entries":{"sag":{"apiKey":"THE_KEY"}}},"talk":{"apiKey":"THE_KEY"}}

Example for Brave Search:

gateway config.patch with raw: {"tools":{"web":{"search":{"apiKey":"THE_KEY"}}}}

Critical rules:

  • NEVER echo, print, or include any key value in chat messages or tool call arguments
  • NEVER include key values in the reason field of config.patch
  • If a user pastes a key directly in chat, store it immediately and tell them to delete the message
  • The secure_input_mac.sh script outputs the key to stdout — capture it in a variable, use it in config.patch, never log it

Listing Keys

Read from the live config using gateway config.get. Show masked values only (first 4 chars + **).

Parse the config JSON and find all apiKey fields, display their config path and masked value.

Testing a Key

Test endpoints:

  • OpenAI: curl -s -H "Authorization: Bearer $KEY" https://api.openai.com/v1/models | head
  • ElevenLabs: curl -s -H "xi-api-key: $KEY" https://api.elevenlabs.io/v1/user
  • Anthropic: curl -s -H "x-api-key: $KEY" -H "anthropic-version: 2023-06-01" https://api.anthropic.com/v1/messages -d '{"model":"claude-3-haiku-20240307","max_tokens":1,"messages":[{"role":"user","content":"hi"}]}'
  • Brave Search: curl -s -H "X-Subscription-Token: $KEY" "https://api.search.brave.com/res/v1/web/search?q=test&count=1"

Source the key from the config (via gateway config.get), test it, report result. Never show the key.

Deleting a Key

Use gateway config.patch to set the key value to an empty string or remove the entry.

💎 Paid Tier (Coming Soon)

ipeaky core is free forever. A paid tier is in development with premium features:

  • Team key sharing — Role-based access across team members
  • Key rotation reminders — Automated expiry alerts
  • Usage analytics — Track key usage across skills
  • Breach monitoring — Leak database notifications
  • Cross-platform — Linux & Windows secure input
  • Backup & sync — Encrypted cloud backup

See paid_tier/README-paid.md for details. Billing is powered by Stripe.

# Set up Stripe integration (uses ipeaky to store its own key!)
bash {baseDir}/paid_tier/stripe-setup.sh

# Create a checkout session
bash {baseDir}/paid_tier/stripe-checkout.sh --price price_XXXXX --mode subscription

Security Guarantees

  • Keys go: secure popup → stdout pipe → config.patch → openclaw.json (never chat)
  • Keys are automatically available to all skills via OpenClaw's native env injection
  • No separate credential files to manage
  • No manual source commands needed
  • config.patch triggers a gateway reload so keys take effect immediately

版本历史

共 1 个版本

  • v3.2.0 当前
    2026-03-29 03:49 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

communication-collaboration

Slack

steipete
当需要通过 slack 工具从 Clawdbot 控制 Slack 时使用,包括在频道或私信中回复消息或置顶/取消置顶项目。
★ 157 📥 47,678

wreckit

christiancattaneo
防弹AI代码验证。代理即引擎——无需外部工具。生成并行验证工作线程,进行污点扫描、类型检查、突变...
★ 0 📥 319
communication-collaboration

Himalaya

lamelas
{"answer":"通过IMAP/SMTP管理邮件的CLI。可在终端使用 `himalaya` 收发、回复、转发、搜索及整理邮件。支持多账户与MML(MIME元语言)编写邮件。"}
★ 68 📥 45,585