Secure Pastebin with Advanced Encryption

A powerful CLI tool for sharing text and files with end-to-end encryption, PGP support, and one-time pastes.

End-to-End Encryption

Keep Your Content Private

All encryption happens client-side. The server never sees your unencrypted content or keys.

PGP Integration

Use Your Existing Keys

Leverage PGP keys from keyservers, GPG keyring, or Keybase for trusted communications.

One-Time Pastes

Self-Destructing Content

Create pastes that automatically delete after being viewed once.

Binary Support

Beyond Just Text

Upload and share binary files with proper content type detection.

Friend-to-Friend

Secure Sharing

Easily manage keys for your friends and encrypt content specifically for them.

CLI Power

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 < file.txt

# Create a one-time paste
echo "Secret content" | dedpaste --temp

# Specify file explicitly
dedpaste --file path/to/file.txt

Encryption

# Generate your key pair first
dedpaste keys --gen-key

# Create encrypted paste
echo "Secret data" | dedpaste --encrypt

# Encrypt for a friend
echo "For Alice" | dedpaste send --encrypt --for alice

# Use PGP encryption
echo "PGP Secret" | dedpaste send --encrypt --for user@example.com --pgp

Key Management

# Enhanced interactive key management (recommended)
dedpaste keys:enhanced

# List all your keys
dedpaste keys --list

# Add a friend's public key
dedpaste keys --add-friend alice --key-file alice.pem

# Add a PGP key from keyservers
dedpaste keys --pgp-key user@example.com

# Add a Keybase user's key
dedpaste keys --keybase username

Retrieving Pastes

# Get and display a paste
dedpaste get https://paste.d3d.dev/AbCdEfGh

# Get and decrypt an encrypted paste
dedpaste get https://paste.d3d.dev/e/AbCdEfGh

# Use a specific key file
dedpaste get https://paste.d3d.dev/e/AbCdEfGh --key-file private.pem

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 your key pair first:

dedpaste keys --gen-key

Error: Friend not found in key database

Add the friend's key before encrypting for them:

dedpaste keys --add-friend name --key-file path/to/key.pem

CLI Parameter Issues

Error: File not found with --file flag

Double-check the file path and use quotes for paths with spaces:

dedpaste --file "path/to/my file.txt"

Error: --for is required when using --pgp

PGP encryption always requires specifying a recipient:

dedpaste send --encrypt --for recipient@example.com --pgp

API Usage

# Post content
curl -X POST -H "Content-Type: text/plain" --data "Your content here" https://paste.d3d.dev/upload

# Post one-time content
curl -X POST -H "Content-Type: text/plain" --data "Your content here" https://paste.d3d.dev/temp

# Post encrypted content (client-side encryption)
curl -X POST -H "Content-Type: text/plain" --data "Your encrypted content" https://paste.d3d.dev/e/upload

# Post encrypted one-time content
curl -X POST -H "Content-Type: text/plain" --data "Your encrypted content" https://paste.d3d.dev/e/temp

# Get content
curl https://paste.d3d.dev/{paste-id}

# Get encrypted content (requires client-side decryption)
curl https://paste.d3d.dev/e/{paste-id}