Desktop application for Privitty — take control of your shared data with guaranteed encryption and revocable access.
Electron |
Tauri |
Browser 🦊🧭🏐 |
|---|---|---|
![]() |
![]() |
![]() |
| Default application. Based on Electron. Used for production builds and distribution. | WIP client using Tauri (modern alternative to Electron: less disk/RAM, better performance). | Experimental version with webserver and web UI. For developers and automated testing. |
| Project Folder Build & Release |
Project Folder | Project Folder |
- Contribution Guidelines
- Logging
- Documentation for Developers
- Styling Guidelines
- How to update core
- How to do end to end testing
- Privitty build & release
- Release process
Click to expand
Installers and builds are produced via CI or locally; see PRIVITTY_BUILD.md for build and release instructions. Platform-specific notes are below.
- From source: See From Source and PRIVITTY_BUILD.md.
- Distribution packages (Flatpak, AUR, etc.) may be available separately; check Privitty documentation or releases.
- DMG: Use the
.dmgfrom releases (or your build output). Open and drag Privitty to Applications. - Homebrew: If a cask is published,
brew install --cask privitty-chat.
- Installers are built via GitHub Actions or locally; see PRIVITTY_BUILD.md. Download the installer from releases when available.
⚠ Primarily for development. This does not install Privitty system-wide. For end users, prefer official installers when available.
# Clone the repository
git clone https://github.com/Privitty/privitty-desktop.git
cd privitty-desktop
# Install pnpm (if not already installed)
npm i -g pnpm
# Install dependencies
pnpm install
# Build the Electron app (first time or after code changes)
pnpm -w build:electron
# Run the application
pnpm -w start:electronThe
-wflag runs the command at the workspace root; you can run it from any folder in the repo.
For details on building installers (DMG, Windows, Linux) and signing, see PRIVITTY_BUILD.md. For working with a local core/RPC server, see docs/UPDATE_CORE.md.
- The app is built on top of a messaging core and the Privitty security layer. Dependencies and setup are described in PRIVITTY_BUILD.md and docs/UPDATE_CORE.md.
- Use Node.js 20.0.0 or newer.
- If you hit build or runtime errors, check the docs above or open an issue in this repository.
Configuration and account databases use application-config's default paths. Each account is represented by a SQLite database file.
- Read CONTRIBUTING.md and docs/DEVELOPMENT.md.
- For other ways to contribute, see Privitty or this repo’s issue tracker.
Open the log folder and current log file from View → Developer in the app. For how logging works, see docs/LOGGING.md.
Licensed under GPL-3.0-or-later. See the LICENSE file for details.
Copyright © Privitty contributors.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
At time we might need both Production and Development build to run in parallel, unless we segregate their data, else we might break one another. Therefore for production it create Privitty data directory where as for development it creates Privitty-test, this can be achieved using runtime option.
pnpm -w dev:electron
pnpm -w build:electron && pnpm --filter=@deltachat-desktop/target-electron exec electron . --disable-http-cache
cd /Users/milinddeore/PROJECTS/delta/privitty-desktop
pnpm -w build:electron
cd /Users/milinddeore/PROJECTS/delta/privitty-desktop/packages/target-electron
export CSC_IDENTITY_AUTO_DISCOVERY=false
pnpm pack:generate_config
pnpm pack:patch-node-modules
rm -rf dist
# arm64
electron-builder --config ./electron-builder.json5 --mac dmg --arm64 --publish never
# OR x86_64
electron-builder --config ./electron-builder.json5 --mac dmg --x64 --publish never
# OR universal
electron-builder --config ./electron-builder.json5 --mac dmg --universal --publish never
