FadNote Skill
Secure self-destructing shareable notes for OpenClaw
Create encrypted, one-time-read notes directly from OpenClaw. The server never sees your plaintext.
Overview
| Property | Value |
|---|---|
| Name | fadnote |
| Version | 1.0.2 |
| Author | easyFloyd |
| License | MIT |
| Open Source | Yes — https://github.com/easyFloyd/fadnote |
| Runtime | Node.js 18+ |
Installation
# Via ClawHub
claw install fadnote
# Manual
git clone https://github.com/easyFloyd/fadnote.git
ln -s $(pwd)/fadnote/openclaw-skill/scripts/fadnote.js ~/.claw/bin/fadnote
Configuration
| Variable | Default | Description |
|---|---|---|
FADNOTE_URL | https://fadnote.com | FadNote server endpoint |
Usage
From OpenClaw
user: Secure this API key: sk-abc123xyz
claw: I'll create a secure, self-destructing note for that.
[runs: echo "sk-abc123xyz" | fadnote]
🔗 https://fadnote.com/n/abc123# decryption-key-here
Share it with the recipient via any channel and this link will self-destruct after first view.
CLI Usage
Usage: fadnote [options] [text]
echo "text" | fadnote [options]
Create secure self-destructing notes that can only be viewed once.
Options:
-h, --help Show this help message and exit
--ttl <secs> Time until note expires (default: 86400 = 24h)
--json Output JSON with noteId, expiresIn, and decryptionUrl
Environment:
FADNOTE_URL API endpoint (default: https://fadnote.com)
Examples:
# Standard
fadnote "My secret message" # direct input
echo "My secret" | fadnote # from stdin
# With options
fadnote --ttl 3600 "Expires in 1 hour" # Custom TTL
fadnote --json --ttl 7200 "JSON output" # JSON output:
# {noteId: string, expiresIn: number, decryptionUrl: string}
# File and clipboard input
cat file.txt | fadnote --ttl 86400 # from stdin with options
pbpaste | fadnote # macOS clipboard
xclip -o -selection clipboard | fadnote # from clipboard (Linux with xclip)
xsel -b | fadnote # from clipboard (Linux with xsel)
Single Output: Single line with the shareable URL.
JSON Output:
{
noteId: string,
expiresIn: number,
decryptionUrl: string
}
Triggers
I (OpenClaw) will automatically use the FadNote skill when you say any of:
- "Secure this [content]"
- "FadNote this [content]"
- "Create a secure link for [content]"
- "Share this securely: [content]"
- "One-time note: [content]"
- "Encrypt and share [content]"
With email delivery (if email skill is present):
- "Secure this and email to [recipient]: [content]"
- "FadNote this to [email]"
- "Send secure note to [email]"
Examples:
- Secure this API key: sk-live-12345
- FadNote this password for the server
- Create a secure link for these credentials
- Share this securely: my private SSH key
- One-time note: the meeting location
Security
- Client-side encryption — AES-256-GCM with PBKDF2 (600k iterations)
- Zero knowledge — Server receives only encrypted blobs
- One-time read — Note deleted immediately after first fetch
- Auto-expire — Default 24 hour TTL
- Open Source — Server code is publicly auditable at https://github.com/easyFloyd/fadnote
The decryption key is embedded in the URL fragment (#key) and never sent to the server.
Files
openclaw-skill/
├── SKILL.md # This file
└── scripts/
└── fadnote.js # Main CLI script (~160 lines)
Requirements
- Node.js 18+ (no external dependencies)
Troubleshooting
| Error | Cause | Solution |
|---|---|---|
FADNOTE_URL not set | Environment variable missing | export FADNOTE_URL=https://fadnote.com |
Empty note | No input provided | Pipe text into fadnote: echo "secret" | fadnote |
404 Not Found | Server endpoint wrong | Check FADNOTE_URL points to a running FadNote instance |
Connection refused | Server unreachable | Verify server is up or use the live service |
Crypto not available | Node.js < 18 | Upgrade to Node.js 18+ |
Links
- Live Service: https://fadnote.com
- Source: https://github.com/easyFloyd/fadnote
- Issues: https://github.com/easyFloyd/fadnote/issues