explaingit

devmatei/shh

Analysis updated 2026-05-18

2JavaScriptAudience · developerComplexity · 2/5Setup · easy

TLDR

A self-hostable, zero-knowledge app for sharing a secret through a link that works exactly once.

Mindmap

mindmap
  root((shh))
    What it does
      Shares a secret via a one time link
      Encrypts in the browser
      Deletes secret after first view
    Tech stack
      Node.js
      SQLite
      Docker
      WebCrypto
    Use cases
      Share a password securely
      Self host a private secret tool
      Send sensitive text without an account
    Audience
      Developers
      Privacy conscious users
      Sysadmins

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Share a password or API key with a coworker through a link that only works once.

USE CASE 2

Self host a private secret-sharing tool instead of trusting a third-party service.

USE CASE 3

Send sensitive text that automatically expires after a set time.

USE CASE 4

Audit a small, dependency-free codebase for security review.

What is it built with?

Node.jsSQLiteDockerWebCrypto

How does it compare?

devmatei/shh3imed-jaberi/cryptography-si-isamm3imed-jaberi/koa-isomorphic-router
Stars222
LanguageJavaScriptJavaScriptJavaScript
Last pushed2021-09-252021-02-06
MaintenanceDormantDormant
Setup difficultyeasyeasyeasy
Complexity2/51/52/5
Audiencedeveloperresearcherdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

Requires Docker for the simplest setup, or Node.js 22.13 or newer to run it without Docker.

No license information is stated in the README.

In plain English

shh is a small app for sharing a secret, like a password, exactly once. You paste some text in, you get a link back, and the first person who opens that link and clicks reveal sees the secret before it is permanently deleted. After that, the link shows the same not found page whether the secret was already viewed, expired, or never existed at all, so nobody can tell which of those happened. The project describes itself as zero knowledge, meaning your secret is encrypted inside your own browser before it is ever sent anywhere. The encryption key is placed in the part of the URL after the hash symbol, which browsers never send to a server, so only you and whoever you share the link with can ever decrypt the secret. The server only ever stores the encrypted text and a random id, with no accounts, no logging, and no analytics. When a secret is viewed, it is deleted in the same database operation that reads it, so two people trying to open the same link at once cannot both succeed. Secrets expire automatically after one hour, one day, or seven days, whichever comes first, and the server clears out expired secrets every minute. To prevent abuse, it caps itself at ten thousand stored secrets at a time, though this rarely matters since viewed or expired secrets free up space again. Technically, the app is built with plain Node.js and no external dependencies, using Node's built in SQLite support, along with a single plain HTML page with no build step. It can be self hosted with Docker in a couple of commands, or run directly with a recent version of Node. This project is aimed at developers and technical users who want a private way to share a password or other sensitive text once, without trusting a third party service they cannot inspect.

Copy-paste prompts

Prompt 1
Explain how the zero-knowledge encryption in this app works step by step.
Prompt 2
Help me self host this with Docker on my own server.
Prompt 3
Walk me through how the one-time-view deletion avoids a race condition.
Prompt 4
Show me how to run this without Docker using plain Node.js.

Frequently asked questions

What is shh?

A self-hostable, zero-knowledge app for sharing a secret through a link that works exactly once.

What language is shh written in?

Mainly JavaScript. The stack also includes Node.js, SQLite, Docker.

What license does shh use?

No license information is stated in the README.

How hard is shh to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is shh for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.