Skip to main content
pastemesh package icon

pastemesh

v0.10.1Latest Stable
Any Framework

PasteMesh β€” Sovereign, End-to-End Encrypted Peer-to-Peer Clipboard Mesh across Windows, macOS, and Linux (https://pastemesh.net). Supports install-free execution via 'dnx pastemesh' or global installation via 'dotnet tool install -g pastemesh'.

Published
Oct 16, 2026
2d ago
Total Downloads
0
0

Install

dotnet add package pastemesh --version 0.10.1

No framework information available.

README

PasteMesh (v0.10.1)

Release License Security

Sovereign, End-to-End Encrypted Peer-to-Peer Clipboard Mesh
Seamless clipboard synchronization across your developer workstations, servers, and mobile devicesβ€”without third-party cloud intermediaries.

Official Website: https://pastemesh.net


Highlights

  • πŸ”’ Zero-Trust Sovereign Security: Every clipboard clip is encrypted locally using ChaCha20-Poly1305 AEAD with per-mesh symmetric keys and authenticated via Ed25519 signatures.
  • 🌐 Multi-Mesh Network Isolation: Run multiple isolated clipboard networks simultaneously (e.g., default, work, personal, fleet). Vault storage, encryption keys, and peer registries remain strictly isolated.
  • πŸ“¦ Strictly 2 Binaries: Zero binary bloat or tool sprawl. Everything is consolidated into two self-contained binaries:
    • pastemesh: Unified CLI, background daemon, multi-mesh manager, and native OS tray applet (Rust).
    • pastemesh-desktop: .NET 10 Native AOT desktop engine with Kestrel Web Dashboard and mobile SVG QR pairing.
  • πŸ–₯️ Native OS System Tray Applet & Quick Popup: D-Bus StatusNotifierItem tray widget and fast GTK popup menus (pastemesh popup). Features dynamic MRU clip history, one-click clipboard copying, quick mesh switching, and interactive modals.
  • ⌨️ Desktop Keyboard Shortcuts:
    • Ctrl + Super + Alt + H: Interactive full history vault window (pastemesh popup)
    • Ctrl + Super + H: Cursor-positioned quick popup menu (pastemesh history --menu)
    • Ctrl + Super + V: Paste latest clip from encrypted vault (pastemesh paste)
    • Ctrl + Super + X: Cut active desktop selection into encrypted vault (pastemesh cut)
    • Ctrl + Super + C: Copy active desktop selection into encrypted vault (pastemesh copy)
  • πŸ“± Zero-Dependency Mobile Pairing: Ephemeral 6-digit SAS PIN mutual verification (pastemesh pair) with air-gapped SVG QR code generation.
  • ⚑ Bit-Exact Unix Pipelines: Clean standard I/O streaming (echo "secret" | pastemesh, pastemesh paste -n). Errors and diagnostics route strictly to stderr.

Installation

Linux & macOS (One-Line Automated Install)

curl -fsSL https://pastemesh.net/install.sh | sh

Windows 11 & 10 (x64 & Native ARM64)

One-Line PowerShell Install (Auto-Detects x64 or ARM64)
irm https://pastemesh.net/install.ps1 | iex

To explicitly target an architecture (e.g., on Windows 11 ARM64 / Snapdragon X Elite):

& ([scriptblock]::Create((irm https://pastemesh.net/install.ps1))) -Arch arm64
Package Managers (Winget, Scoop & Chocolatey β€” x64 & ARM64)
# Winget
winget install PasteMesh.PasteMesh

# Scoop
scoop install pastemesh

# Chocolatey
choco install pastemesh
Native Windows Installers & Portable Archives
  • Windows 11 ARM64 (Native): PasteMesh-Setup-v0.10.1-windows-arm64.exe or pastemesh-v0.10.1-windows-arm64.zip
  • Windows x64: PasteMesh-Setup-v0.10.1-windows-x64.exe or pastemesh-v0.10.1-windows-x64.zip

From Local Release Archive (Linux)

Download pastemesh-v0.10.1-linux-x64.tar.gz (or linux-arm64.tar.gz) and extract:

tar -xzf pastemesh-v0.10.1-linux-x64.tar.gz
sudo mv pastemesh pastemesh-desktop /usr/local/bin/

Verifying Installation

pastemesh --version
# Output: pastemesh 0.10.1

Quick Start & CLI Usage

1. Clipboard Copy, Cut & Paste

# Copy text into the active mesh
pastemesh copy "Secret token or code snippet"

# Cut text or file (encrypts to vault and deletes source file)
pastemesh cut -f /tmp/temporary_token.txt

# Capture active desktop selection via CLI
pastemesh copy -s
pastemesh cut -s

# Quiet copy from stdin (pipelines automatically default to copy)
cat id_ed25519.pub | pastemesh

# Paste latest clip (bit-exact stdout)
pastemesh paste

# Paste without trailing newline (preserves exact payload bytes)
pastemesh paste -n

# Paste specific historical item by index
pastemesh paste 3

# Fast numeric shorthand
pastemesh 3

2. Vault, Popup & History Management

# Open interactive GUI clipboard history window
pastemesh popup

# Open quick floating cursor menu
pastemesh popup --menu

# View recent clipboard history in terminal
pastemesh history

# Search history
pastemesh history --search "database"

# Pin a clip so it is preserved indefinitely (defaults to latest #1)
pastemesh pin
pastemesh pin 4

# Unpin a clip
pastemesh unpin 4

# Delete an individual clip
pastemesh delete 2

# Clear clipboard history (interactive prompt)
pastemesh history clear

# Non-interactive clears
pastemesh history clear -y           # Clears unpinned clips (preserves pinned)
pastemesh history clear --pinned -y  # Clears only pinned clips
pastemesh history clear --all -y     # Purges entire vault

3. Multi-Mesh Isolation

# List all configured meshes
pastemesh mesh list

# Create a new isolated mesh
pastemesh mesh create work

# Switch active mesh
pastemesh mesh switch work

# Rename a custom mesh (preserves encryption key, clips, and paired peers)
pastemesh mesh rename work engineering

# Inspect active mesh status and peer connections
pastemesh mesh status

# Target a specific mesh without switching active context
pastemesh -m engineering copy "Sensitive work payload"
pastemesh -m engineering paste
pastemesh -m engineering history

# Delete a mesh
pastemesh mesh delete engineering

4. Native OS System Tray Applet

Launch the native desktop tray applet:

pastemesh tray
  • Dynamic MRU Menu: Top items show recent clips (configurable via mru_limit, default: 10). Clicking any item copies it to the clipboard (xclip/wl-copy) and shows a notification.
  • Mesh Submenu (🌐 Mesh: <active>):
    • Switch active mesh with a single click.
    • View mesh status and peer metrics.
    • Create or delete meshes on the fly.
  • Full History Table: Interactive GUI table with timestamps, sizes, pin status, and previews.
  • Clear History: Interactive dialog to purge unpinned or all clips.
  • Settings: Configure MRU limits and preferences.

5. Background Daemon & Pairing

# Run headless background daemon
pastemesh daemon --port 5288

# Generate ephemeral pairing PIN & QR link for mobile or remote peer
pastemesh pair

# Authenticate remote peer with their 6-digit PIN
pastemesh pair 499348

Architecture & Storage

Binary Topology

PasteMesh enforces a strictly 2-binary model:

dist/bundle/
β”œβ”€β”€ pastemesh          # Unified CLI, daemon, multi-mesh manager, and tray applet (Rust)
└── pastemesh-desktop  # Native AOT web dashboard, QR pairing & REST API (.NET 10)

Both binaries communicate via Unix domain sockets (/tmp/pastemesh-<uid>.sock) and share the configuration directory.

Vault Storage Layout (~/.config/pastemesh/)

Storage follows a flat, high-performance vault structure:

~/.config/pastemesh/
β”œβ”€β”€ config.json              # Global user preferences (mru_limit, etc.)
β”œβ”€β”€ meshes.json              # Registered mesh networks and active mesh pointer
β”œβ”€β”€ peers.json               # Trusted peers for 'default' mesh
β”œβ”€β”€ peers-{mesh}.json        # Trusted peers for '{mesh}'
└── vault/
    β”œβ”€β”€ vault.key            # ChaCha20-Poly1305 symmetric key for 'default' mesh
    β”œβ”€β”€ vault-{mesh}.key     # ChaCha20-Poly1305 symmetric key for '{mesh}'
    β”œβ”€β”€ index.json           # Catalog and metadata for 'default' mesh
    β”œβ”€β”€ index-{mesh}.json    # Catalog and metadata for '{mesh}'
    └── blobs/               # Encrypted payload blobs: {uuid}.blob

Note: Blobs are encrypted with mesh-specific keys. Even if raw files are manually copied between meshes, they cannot be decrypted without the corresponding mesh key.


Development & Testing

Prerequisites

  • Rust Toolchain: 1.85+ (ensure ~/.cargo/bin is in your PATH)
  • .NET SDK: .NET 10 SDK with clang and zlib1g-dev for Native AOT compilation
  • Desktop Tools: zenity, xclip or wl-clipboard, libnotify-bin

Building & Packaging (Makefile)

PasteMesh provides a top-level Makefile to streamline building, testing, assembling release bundles, and deploying:

# Display all available targets
make help

# Build release binaries and assemble the strictly 2-binary bundle in dist/bundle/
make bundle

# Package release tarball (dist/pastemesh-v0.10.1-<arch>.tar.gz)
make release

# Run all unit tests and the full cross-compatibility integration test suite
make test

# Install binaries to ~/.local/bin (or /usr/local/bin if run with sudo)
make install

# Bump version across all project manifests (C#, Rust, packaging, installers)
make bump 0.10.1
# or: make bump version=0.10.1

Manual Build from Source

If you prefer building individual components manually:

# 1. Build Rust release binary (pastemesh)
cargo build --release --manifest-path rust/Cargo.toml
# Output: rust/target/release/pastemesh

# 2. Publish .NET 10 Native AOT desktop binary (pastemesh-desktop)
dotnet publish dotnet/src/PasteMesh.Desktop/PasteMesh.Desktop.csproj -c Release -r linux-x64 --self-contained -o dist/desktop
# Output: dist/desktop/pastemesh-desktop

# 3. Assemble distribution bundle (The Rule of 2)
mkdir -p dist/bundle
cp rust/target/release/pastemesh dist/bundle/
cp dist/desktop/pastemesh-desktop dist/bundle/
chmod +x dist/bundle/pastemesh dist/bundle/pastemesh-desktop

# 4. Package release archive
tar -czvf dist/pastemesh-v0.10.1-linux-x64.tar.gz -C dist/bundle .

Building & Packaging for Windows (x64 & Native ARM64)

On Windows (or CI runners), use packaging/windows/build-windows.ps1 to publish Native AOT binaries (win-x64 or win-arm64), stage architecture-specific VC++ CRT redistributables (dist/vc_crt_<arch>), configure AppxManifest.xml (ProcessorArchitecture), and build both the portable .zip and Inno Setup installer:

# Build Windows x64 release bundle, MSIX layout, and Inno Setup installer
pwsh ./packaging/windows/build-windows.ps1 -Arch x64

# Build native Windows 11 ARM64 release bundle, MSIX layout, and Inno Setup installer
pwsh ./packaging/windows/build-windows.ps1 -Arch arm64

Running the End-to-End Test Suite

Run the unified cross-engine integration test suite:

make test
# Or directly:
./tests/cross-compat/run.sh

This suite verifies:

  1. .NET 10 Solution unit tests
  2. Rust Workspace cryptography and core tests
  3. Direct CLI vault save/retrieve
  4. Background Daemon IPC socket request/response loop
  5. Bi-directional cross-engine decryption (.NET Native AOT $\leftrightarrow$ Rust)
  6. Multi-mesh cryptographic isolation and zero cross-mesh leakage

License

Licensed under either of:

at your option.

Adoption Assessment

Assess this package against its supported frameworks, license, maintenance signals and dependency graph before making it a project standard.

No target framework metadata is available. Confirm compatibility in a representative project before standardising on this package.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.