Secure Pastebin with Advanced Encryption
Share text and files securely with end-to-end encryption, PGP support, and self-destructing pastes.
Keep Your Content Private
All encryption happens client-side. The server never sees your unencrypted content or keys.
Use Your Existing Keys
Leverage PGP keys from keyservers, GPG keyring, Keybase, or GitHub for trusted communications.
Self-Destructing Content
Create pastes that automatically delete after being viewed once.
Beyond Just Text
Upload and share binary files with proper content type detection.
Multi-Recipient Encryption
Create groups and encrypt to multiple recipients at once with smart prefix shortcuts (gh:, kb:).
Advanced Scripting
Command-line interface for easy integration with your existing scripts and workflows.
Installation
Using npm (recommended)
npm install -g dedpaste
From source
git clone https://github.com/anoncam/dedpaste.git
cd dedpaste
npm install
npm link
Quick Start Examples
Basic Usage
# Create a paste from stdin
echo "Hello, World!" | dedpaste
# Create a paste from a file
dedpaste send myfile.txt
# Create with custom filename
dedpaste send --filename "readme.md" < README.md
# Create a one-time paste (self-destructs after viewing)
dedpaste send --one-time secret.txt
# Retrieve a paste
dedpaste get https://paste.d3d.dev/AbCdEfGh
# Save retrieved paste to file
dedpaste get https://paste.d3d.dev/AbCdEfGh -o output.txt
Encryption & Security
# Generate your key pair (one-time setup)
dedpaste keys --gen-key
# Encrypt for yourself
echo "Secret data" | dedpaste send --encrypt
# Encrypt for GitHub/Keybase users (NEW: short prefixes!)
dedpaste send --encrypt --for gh:torvalds secret.txt
dedpaste send --encrypt --for kb:username data.txt
# Multiple recipients (NEW: space-separated!)
dedpaste send --encrypt --for gh:alice kb:bob dave@example.com
# Encrypt for a group (NEW!)
dedpaste send --encrypt --for team confidential.pdf
# Decrypt a paste (key in URL fragment)
dedpaste get https://paste.d3d.dev/e/AbCdEfGh#key
Key Management
# Enhanced interactive mode (recommended)
dedpaste keys:enhanced
# Fetch GitHub user's GPG key
dedpaste keys --github torvalds
# Import from Keybase
dedpaste keys --keybase username
# Create recipient groups
dedpaste keys --group-create team gh:alice kb:bob
# List groups
dedpaste keys --group-list
# List all stored keys
dedpaste keys --list
# Export your public key
dedpaste keys --export
Advanced Features
# Pipe from other commands
cat logs.txt | grep ERROR | dedpaste send --one-time
# Use in scripts
PASTE_URL=$(echo "Build complete" | dedpaste)
echo "Results: $PASTE_URL"
# Binary file support
dedpaste send image.png
dedpaste send document.pdf --encrypt
# Set custom expiration (if configured)
dedpaste send --expire 24h temporary.txt
# Copy to clipboard (requires xclip/pbcopy)
dedpaste get https://paste.d3d.dev/abc | pbcopy
Troubleshooting
Common PGP Errors
Error: PGP encryption requires a recipient
Always specify a recipient when using PGP encryption:
echo "secret" | dedpaste send --encrypt --for user@example.com --pgp
Error: Failed to find PGP key for recipient
Make sure you've added the recipient's PGP key first:
dedpaste keys --pgp-key user@example.com
Key Management Issues
Error: No personal key found
Generate a key pair first:
dedpaste keys --gen-key
Error: Cannot decrypt - missing private key
Make sure you have the private key for the recipient identity:
dedpaste keys --list # Check if your key is listed
API Usage
REST API Endpoints
# Create a paste
curl -X POST https://paste.d3d.dev/api/paste \
-H "Content-Type: application/json" \
-d '{"content": "Hello, World!", "isOneTime": false}'
# Retrieve a paste
curl https://paste.d3d.dev/api/paste/AbCdEfGh
# Create an encrypted paste
curl -X POST https://paste.d3d.dev/api/paste \
-H "Content-Type: application/json" \
-d '{"content": "encrypted_content_base64", "isEncrypted": true}'
Note: When using the API directly, encryption must be handled client-side. The server only stores encrypted content and never has access to encryption keys.
NEW Features in v1.20+
- GitHub Integration: Fetch GPG keys directly from GitHub profiles using
gh:username - Recipient Groups: Create groups for easy multi-recipient encryption
- Short Prefixes: Use
gh:for GitHub,kb:for Keybase - Auto-PGP Detection: No more manual
--pgpflags - encryption type auto-detected - Multiple Recipients: Space-separated recipients in a single command