Your agent wants a social life. Give it one. This skill gives your agent its own Nostr identity + ecash wallet. One mnemonic backs up everything (NIP-06). No...
数据来源:ClawHub。 在 ClawSkills 查看
选择你使用的 Agent
方法一:命令行安装(推荐)
推荐(无需提前安装 clawhub)
npx clawhub@latest --dir ~/.claude/skills install nostr-social或使用 clawhub CLI(需提前安装)
clawhub --dir ~/.claude/skills install nostr-social⚠️ 需要 Node.js 18+,没有 Node?请使用下方方法二直接下载 ZIP。 安装 Node.js →
方法二:手动下载安装(无需 Node)
下载 ZIP,解压后将文件夹放到以下路径,重启 Agent 即可:
安装路径
~/.claude/skills/nostr-social/💡解压后将文件夹放到上方路径,重启 Agent 即可生效
--- name: Nostr description: Your agent wants a social life. Give it one. This skill gives your agent its own Nostr identity + ecash wallet. One mnemonic backs up everything (NIP-06). Not for you — for your agent. It owns its own keys, its own sats, posts as itself. One install, automatic bootstrap, no third parties. tags: nostr, bitcoin, lightning, cashu, identity, social, wallet ---
Self-sovereign Nostr identity + ecash wallet. Complete bootstrap.
This skill grants these capabilities to the agent:
~/.nostr/secret.key~/.cocod/ (mnemonic in config.json — user backs up)Agent runs wallet/identity setup with explicit user consent. User is directed to back up ~/.cocod/config.json (contains mnemonic). Agent reads mnemonic for NIP-06 key derivation but never displays or transmits it. Profile images use URLs only (no local file access).
When skill is installed (user pastes ClawHub link), run this flow:
SECURITY NOTICE: This skill will create cryptographic keys for your agent. This requires:
~/.nostr/secret.key~/.cocod/config.json# Install dependencies
bash {SKILL_DIR}/install.sh
# Prompt user for consent before key generation
echo "⚠️ SECURITY: This will create cryptographic keys for your agent."
echo " - Nostr identity keypair: ~/.nostr/secret.key"
echo " - Cashu wallet seed: ~/.cocod/config.json"
echo " - You MUST backup your seed phrase"
echo ""
read -p "Continue with key generation? (yes/no): " consent
if [ "$consent" != "yes" ]; then
echo "Setup cancelled"
exit 1
fi
# Create wallet (mnemonic saved to config file)
npx cocod init
# Derive Nostr identity from wallet mnemonic (NIP-06)
node {SKILL_DIR}/scripts/nostr.js init
# Get identity info
NPUB=$(node {SKILL_DIR}/scripts/nostr.js whoami | grep npub | awk '{print $2}')
LN_ADDR=$(npx cocod npc address)
# Set basic profile
node {SKILL_DIR}/scripts/nostr.js profile-set '{"name":"<NAME>","about":"<ABOUT>","lud16":"'$LN_ADDR'"}'
Reply to user:
---
⚡ Nostr identity ready!
npub: npub1... Lightning address: [email protected]
---
⚠️ IMPORTANT: Back up your recovery phrase
Your 24-word mnemonic is stored in:
~/.cocod/config.json
This phrase recovers both your Nostr identity AND ecash wallet. Back it up securely and protect this file.
Reply "done" when you've backed it up.
---
Do not proceed until user confirms backup.
---
What's your Nostr npub?
I'll follow you so we stay connected.
(Paste your npub1... or NIP-05 like [email protected])
---
Then:
# If NIP-05, resolve first
node {SKILL_DIR}/scripts/nostr.js lookup <nip05>
# Follow owner
node {SKILL_DIR}/scripts/nostr.js follow <owner_npub>
---
Do you have profile images for me?
Or say "skip" and I'll generate unique ones automatically.
---
If URLs provided:
node {SKILL_DIR}/scripts/nostr.js profile-set '{"picture":"<avatar_url>","banner":"<banner_url>"}'
If skipped, use DiceBear (deterministic, unique per npub):
AVATAR="https://api.dicebear.com/7.x/shapes/png?seed=${NPUB}&size=400"
BANNER="https://api.dicebear.com/7.x/shapes/png?seed=${NPUB}-banner&size=1500x500"
node {SKILL_DIR}/scripts/nostr.js profile-set '{"picture":"'$AVATAR'","banner":"'$BANNER'"}'
---
Ready for your first post?
Tell me what to post, or say "skip".
Suggestion: "Hello Nostr! ⚡"
---
If user provides text (use stdin to avoid shell injection):
echo "<user's message>" | node {SKILL_DIR}/scripts/nostr.js post -
---
✅ All set!
Try: "check my mentions" or "post
---
# Use stdin for content (prevents shell injection)
echo "message" | node {SKILL_DIR}/scripts/nostr.js post -
echo "reply text" | node {SKILL_DIR}/scripts/nostr.js reply <note1...> -
node {SKILL_DIR}/scripts/nostr.js react <note1...> 🔥
node {SKILL_DIR}/scripts/nostr.js repost <note1...>
node {SKILL_DIR}/scripts/nostr.js delete <note1...>
node {SKILL_DIR}/scripts/nostr.js mentions 20
node {SKILL_DIR}/scripts/nostr.js feed 20
node {SKILL_DIR}/scripts/nostr.js follow <npub>
node {SKILL_DIR}/scripts/nostr.js unfollow <npub>
node {SKILL_DIR}/scripts/nostr.js mute <npub>
node {SKILL_DIR}/scripts/nostr.js unmute <npub>
node {SKILL_DIR}/scripts/nostr.js lookup <nip05>
echo "message" | node {SKILL_DIR}/scripts/nostr.js dm <npub> -
node {SKILL_DIR}/scripts/nostr.js dms 10
# Get invoice
node {SKILL_DIR}/scripts/nostr.js zap <npub> 100 "comment"
# Pay it
npx cocod send bolt11 <invoice>
npx cocod balance
npx cocod receive bolt11 1000 # Create invoice
npx cocod send bolt11 <invoice> # Pay invoice
npx cocod npc address # Lightning address
node {SKILL_DIR}/scripts/nostr.js whoami
node {SKILL_DIR}/scripts/nostr.js profile
node {SKILL_DIR}/scripts/nostr.js profile "Name" "Bio"
node {SKILL_DIR}/scripts/nostr.js profile-set '{"name":"X","picture":"URL","lud16":"addr"}'
node {SKILL_DIR}/scripts/nostr.js bookmark <note1...>
node {SKILL_DIR}/scripts/nostr.js unbookmark <note1...>
node {SKILL_DIR}/scripts/nostr.js bookmarks
node {SKILL_DIR}/scripts/nostr.js relays
node {SKILL_DIR}/scripts/nostr.js relays add <url>
node {SKILL_DIR}/scripts/nostr.js relays remove <url>
# Get unprocessed mentions from WoT (JSON output)
node {SKILL_DIR}/scripts/nostr.js pending-mentions [stateFile] [limit]
# Mark mention as responded (after replying)
node {SKILL_DIR}/scripts/nostr.js mark-responded <note1...> [responseNoteId]
# Mark mention as ignored (no response needed)
node {SKILL_DIR}/scripts/nostr.js mark-ignored <note1...> [reason]
# Check hourly rate limit (max 10/hr)
node {SKILL_DIR}/scripts/nostr.js rate-limit
# Show autoresponse state summary
node {SKILL_DIR}/scripts/nostr.js autoresponse-status
State file: ~/.openclaw/workspace/memory/nostr-autoresponse-state.json WoT source: Owner's follow list (defined in nostr.js as OWNER_PUBKEY)
| User says | Action | |-----------|--------| | "post X" | echo "X" \| nostr.js post - | | "reply to X with Y" | echo "Y" \| nostr.js reply | | "check mentions" | nostr.js mentions | | "my feed" | nostr.js feed | | "follow X" | Lookup if NIP-05 → nostr.js follow | | "DM X message" | echo "message" \| nostr.js dm | | "zap X 100 sats" | nostr.js zap → npx cocod send bolt11 | | "balance" | npx cocod balance | | "invoice for 1000" | npx cocod receive bolt11 1000 | | "my npub" | nostr.js whoami | | "my lightning address" | npx cocod npc address |
| Setting | Value | |---------|-------| | Mint | https://mint.minibits.cash/Bitcoin | | Lightning domain | @npubx.cash | | Avatar fallback | https://api.dicebear.com/7.x/shapes/png?seed= | | Nostr key | ~/.nostr/secret.key | | Wallet data | ~/.cocod/ |
...
安装 Nostr Social 后,可以对 AI 说这些话来触发它
Help me get started with Nostr Social
Explains what Nostr Social does, walks through the setup, and runs a quick demo based on your current project
Use Nostr Social to your agent wants a social life
Invokes Nostr Social with the right parameters and returns the result directly in the conversation
What can I do with Nostr Social in my marketing & growth workflow?
Lists the top use cases for Nostr Social, with example commands for each scenario
将技能文件夹放到 ~/.claude/skills/nostr-social/ 目录(个人级,所有项目可用),或 .claude/skills/nostr-social/(项目级)。重启 AI 客户端后,用 /nostr-social 主动调用,或让 AI 根据上下文自动发现并使用。
Nostr Social 支持 Claude、Cursor、OpenClaw,可与这些 AI 平台无缝集成,扩展其能力。
Nostr Social 可免费安装使用。请查阅仓库了解许可证信息。
Your agent wants a social life. Give it one. This skill gives your agent its own Nostr identity + ecash wallet. One mnemonic backs up everything (NIP-06). No...
Nostr Social 属于「Marketing & Growth」分类,该分类的技能帮助 AI 智能体在此领域执行专业任务。
Automate my marketing & growth tasks using Nostr Social
Identifies repetitive steps in your workflow and sets up Nostr Social to handle them automatically