Skip to content

Repository files navigation

PrivaMesh for Windows

PrivaMesh is a private messenger with no servers and no accounts. Messages are encrypted end to end and travel as padded ciphertext on Solana, to a fresh one-time address each time. There is no phone number, no email and no database holding who talks to whom: your identity is a 12-word recovery phrase generated on the machine.

Keys, contacts and message history stay on the computer, sealed with a key held by Windows DPAPI. Nothing is uploaded, and nothing can be restored from us, because we hold nothing.

Install

The installer and a portable zip are on the releases page. Windows 10 or 11, 64-bit. A Java runtime is bundled; nothing else is needed.

The build is not code-signed yet, so SmartScreen will warn you. Check the file against SHA256SUMS.txt in the release if you would rather verify it than trust the click-through.

A separate account from the phone

The desktop client is its own identity with its own recovery phrase. It does not sync with an iPhone account and cannot import one: there is no server to sync through. Add your phone as a contact if you want to message yourself.

You pay the network, we do not

Each message is a Solana transaction and costs about 10,600 lamports, roughly $0.0008. The app creates a fee wallet on first run and shows you its address; you fund it, and every message spends from it. No subscription, no relay in the path, no account with us to bill. When the wallet is empty, sending stops until you top it up.

App lock and the duress code

An optional passcode locks the app, with an escalating cooldown after five wrong entries, a lock button and an auto-lock after inactivity.

You can set a second code. Entering it erases every message, contact and key on the machine and returns the app to its first-run state, with nothing on screen to show which code was typed. It cannot be undone, and it cannot reach the chain: ciphertext already published stays there, unreadable.

Building

./gradlew :app-desktop:run

JDK 17 or newer. The app is Kotlin and Compose Multiplatform, and it builds and runs on Windows, macOS and Linux; only the installers are Windows-specific.

The protocol layers are not in this repository. core-crypto, core-chain and core-messaging are consumed from privamesh-android as a composite build, so the two clients cannot drift apart. Clone both into the same parent directory - settings.gradle.kts expects to find ../privamesh-android.

Tests

./gradlew test

Packaging

packaging/README.md has the detail. In short: the self-extracting installer and the portable zip build anywhere, an MSI needs a Windows machine with WiX, and packaging/build-release.ps1 runs the tests, builds both installers, proves the packaged app starts, signs each binary and writes the checksums.

Layout

Path What it holds
app-desktop The Compose Desktop app: window, panels, settings, installer tasks
core-desktop-data SQLDelight store, DPAPI-backed secrets, the local vault
packaging Installer scripts, icon, the self-extracting stub
reference/ A read-only snapshot of the iOS source, which is the protocol specification

Security

Report vulnerabilities to privamesh@proton.me with security in the subject, not as a public issue. Confirmed findings are paid; the policy, the scope and the list of issues already reported and fixed are in SECURITY.md.

There has been no independent security audit. The primitives are well studied, this implementation of them is not. What PrivaMesh does not protect you from is listed at privamesh.org/limitations.

Cryptography notice

This distribution includes cryptographic software. The country you are in may restrict the import, possession, use or re-export of encryption software. Check your own laws before using or redistributing it.

License

MIT. Use it, fork it, ship it, sell it. Keep the copyright notice.

The licence covers the code here. It is not permission to use the name PrivaMesh or the logo for a fork. reference/swift-core/ is a snapshot of the iOS client, under the same licence.

One file is not ours: packaging/sfx/7z.sfx is the self-extracting stub from the official 7-Zip release, redistributed under its own terms and documented, with its hash, in packaging/sfx/README.md.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages