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'.
Install
No framework information available.
README
PasteMesh (v0.10.1)
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
StatusNotifierItemtray 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 tostderr.
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.exeorpastemesh-v0.10.1-windows-arm64.zip - Windows x64:
PasteMesh-Setup-v0.10.1-windows-x64.exeorpastemesh-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/binis in yourPATH) - .NET SDK: .NET 10 SDK with
clangandzlib1g-devfor Native AOT compilation - Desktop Tools:
zenity,xcliporwl-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:
- .NET 10 Solution unit tests
- Rust Workspace cryptography and core tests
- Direct CLI vault save/retrieve
- Background Daemon IPC socket request/response loop
- Bi-directional cross-engine decryption (.NET Native AOT $\leftrightarrow$ Rust)
- Multi-mesh cryptographic isolation and zero cross-mesh leakage
License
Licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE)
- MIT License (LICENSE-MIT)
at your option.
Adoption Assessment
Assess this package against its supported frameworks, license, maintenance signals and dependency graph before making it a project standard.
Related Guides & Workflows
Learn how to evaluate, integrate, or audit this package in your .NET project.