Session Desktop - Onion routing based messenger
 
 
 
 
Go to file
Audric Ackermann 0a7384c1f4
fix: show account created 🎉 emoji until we open a conversation
.github chore: make runner use ubuntu 22.04
.husky chore: disable pre commit lint-staged hook for now
_locales [Automated] Update translations from Crowdin
actions chore: fix CI
build feat: update internal builds and release documentation
config use readyForUpdates to trigger update from renderer
fonts Emoji Reacts ()
images fix: run setupTheme after Storage is ready
mmdb fix: update maxmind db
mnemonic_languages electron-renderer webpack seems to be generating main_renderer.js
patches chore: lint
protos chore: content[14] protobuf already taken. use 15 instead
sound feat: add custom sound for notification so it works for Linux too
stylesheets fix: avatar: do not show cursor pointer on unclickable avatar
third_party_licenses chore: add lucide license
tools feat: added note about python3 alias on windows
ts fix: show account created 🎉 emoji until we open a conversation
.editorconfig chore: lint
.eslintignore fix: add ignores for the generated locale type file
.eslintrc.js fix: wrap up changes for strings localization
.gitattributes
.gitignore Merge remote-tracking branch 'upstream/unstable' into closed-group-chunk3
.lintstagedrc.js fix: lint-staged ignores files using eslintignore
.mocharc.json feat: added mocharc.json
.mocharc.yml chore: move mocha config to .mocharc.yml to package.json is cleaner
.nvmrc feat: update strings usages and library
.prettierignore chore: fetch latest strings and fix errors
.prettierrc.js
.sassrc.json Emoji Reacts ()
.tool-versions feat: add asdf .tool-versions file to specific python version for convenience
.yarnclean feat: setup lint-staged when making a commit
.yarnrc.yml fix: add handling of revoked namespace messages
CODE_OF_CONDUCT.md
CONTRIBUTING.md fix: make sure pip is installed and upgraded before trying to install setuptools
INTERNALBUILDS.md fix: align mac secrets table in internal builds doc
LICENSE
README.md chore: make runner use ubuntu 22.04
RELEASING.md chore: update flatpak release info
THEMES.md fix: updated git repo and clearnet references
about.html fix: prevent font swap on first load
about_preload.js fix: strings do not load dict from json, but use built ts file
background.html fix: prevent font swap on first load
commitlint.config.js feat: added conventional commit requirement
libsession.worker.config.js fix: tsc does not overwrite workers compiled content
package.json chore: fetch latest libsession changes
password.html fix: prevent font swap on first load
password_preload.js fix: strings do not load dict from json, but use built ts file
preload.js chore: create groupv2, disable QA buttons
sass.config.js chore: replace tslint with eslint and fix linting issues
tsconfig.json Merge remote-tracking branch 'upstream/unstable' into closed-group-chunk3
utils.worker.config.js fix: tsc does not overwrite workers compiled content
yarn.lock chore: fetch latest libsession changes

README.md

Session Desktop

Download at getsession.org

Summary

Session integrates directly with Oxen Service Nodes, which are a set of distributed, decentralized and Sybil resistant nodes. Service Nodes act as servers which store messages offline, and a set of nodes which allow for onion routing functionality obfuscating users IP Addresses. For a full understanding of how Session works, read the Session Whitepaper.



Screenshot of Session Desktop

Want to Contribute? Found a Bug or Have a feature request?

Please search for any existing issues that describe your bug in order to avoid duplicate submissions.

Submissions can be made by making a pull request to our development branch.If you don't know where to start contributing please read Contributing.md and refer to issues tagged with the good-first-issue tag.

Supported platforms

Session requires Windows 10 or later, macOS Ventura (13) or later, or a Linux distribution with glibc 2.28 or later like Debian 10 or Ubuntu 22.04.

Build instructions

Build instructions can be found in Contributing.md.

Translations

Want to help us translate Session into your language? You can do so at https://getsession.org/translate!

Verifying signatures

Step 1:

Add Jason's GPG key. Jason Rhinelander, a member of the Session Technology Foundation and is the current signer for all Session Desktop releases. His GPG key can be found on his GitHub and other sources.

wget https://github.com/jagerman.gpg
gpg --import jagerman.gpg

Step 2:

Get the signed hashes for this release. SESSION_VERSION needs to be updated for the release you want to verify.

export SESSION_VERSION=1.15.0
wget https://github.com/session-foundation/session-desktop/releases/download/v$SESSION_VERSION/signature.asc

Step 3:

Verify the signature of the hashes of the files.

gpg --verify signature.asc 2>&1 |grep "Good signature from"

The command above should print "Good signature from "Jason Rhinelander...". If it does, the hashes are valid but we still have to make the sure the signed hashes match the downloaded files.

Step 4:

Make sure the two commands below return the same hash for the file you are checking. If they do, file is valid.

Linux
sha256sum session-desktop-linux-amd64-$SESSION_VERSION.deb
grep .deb signature.asc
macOS

Apple Silicon

sha256sum releases/session-desktop-mac-arm64-$SESSION_VERSION.dmg
grep .dmg signature.asc

Intel

sha256sum releases/session-desktop-mac-x64-$SESSION_VERSION.dmg
grep .dmg signature.asc
Windows

Powershell

Get-FileHash -Algorithm SHA256 session-desktop-win-x64-$SESSION_VERSION.exe  # checksum is uppercase but should otherwise match
Select-String -Pattern ".exe" signature.asc

Bash

sha256sum session-desktop-win-x64-$SESSION_VERSION.exe
grep .exe signature.asc

Debian repository

Please visit https://deb.oxen.io/

License

Copyright 2011 Whisper Systems

Copyright 2013-2017 Open Whisper Systems

Copyright 2019-2024 The Oxen Project

Copyright 2024-2025 Session Technology Foundation

Licensed under the GPLv3: https://www.gnu.org/licenses/gpl-3.0.html

Attributions

The IP-to-country mapping data used in this project is provided by MaxMind GeoLite2.

This project uses the Lucide Icon Font, which is licensed under the ISC License.