Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

A no-brainer pastebin on IPFS - think distributed

Project Description

A no-brainer pastebin on IPFS - think distributed

Why this if there’s ipfs add?

Good question! ipfs add currently doesn’t support showing a full link, let alone xclip-compatible output - the user has to select the hash, paste it in a browser and manually add the rest of their preferred IPFS link format.


merkleshare is available through PyPI:

$ pip install merkleshare

But if you want, you can install it directly from the repo:

$ pip install git+


In order for MerkleShare to work, you need to bring up a local IPFS node using ipfs daemon.


A typical stdin pipe situation:

$ echo "Hello, world" | mersh -t gateway

How about some file input?

$ echo "Hello, friends." > file.txt
$ mersh file.txt

Or maybe you only need the hash? No problem:

$ echo "Rollin' with the hash\!" | mersh -t hash

Got security needs? You’ll be happy to know that MerkleShare supports Fernet encryption (via the cryptography module):

$ echo "Lizard people live at the edge of flat earth" | mersh -e
                                                     # `----------------------------------------------------------'
                                                     #        Your data is guarded by a disposable secret

It’s not possible to reach your data without the secret, which is only present in the link…

$ ipfs cat /ipfs/QmcXM8gCqeJA2qjnVmFYkFFc2sMjDvT21p8UwGBwzWxva8

…but if you do have it then retrieving your stuff with MerkleShare becomes about as easy as it gets:

$ mersh -d /ipfs/QmcXM8gCqeJA2qjnVmFYkFFc2sMjDvT21p8UwGBwzWxva8/#fT7jn4eDJLgHcM3wva4KS4eUMyJ19zuxRJhy5Lp5xwZsVzA4Q6AzoEEEZxUt
Lizard people live at the edge of flat Earth


  • Read from stdin or a specified file
  • Only the link gets printed to stdout, everything else is stderr - effortlessly pipe it to your favourite clipboard manager!
  • Seamless data encryption
  • Output the link in the format you need:
    • Regular: /ipfs/<hash>
    • Gateway:<hash> - great for sharing links with non-IPFS friends
    • Local: http://localhost:8080/ipfs/<hash>
    • Bare: <hash>
  • Optional static WebUI (Enabled with the -g flag)

Planned Features

  • Built-in clipboard support
  • Pure Python IPFS backend (once py-ipfs is ready)
  • Binary blob support for WebUI uploads


MerkleShare started as an attempt to make IPFS more convenient and let the user securely share whatever they need.

Release History

This version
History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Hash SHA256 Hash Help Version File Type Upload Date
(190.5 kB) Copy SHA256 Hash SHA256
py2.py3 Wheel Nov 19, 2017
(235.2 kB) Copy SHA256 Hash SHA256
Source Nov 19, 2017

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting