Session Desktop - Onion routing based messenger
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Go to file
Audric Ackermann 9e39deea66
Merge pull request #76 from Bilb/small-group-ui-fixes
fix: error toast when creating group failed
2 months ago
.github chore: make runner use ubuntu 22.04 2 months ago
.husky chore: disable pre commit lint-staged hook for now 2 years ago
_locales chore: add strings for recreating group, but will be overriden 2 months ago
actions chore: fix CI 3 months ago
build feat: update internal builds and release documentation 2 months ago
config use readyForUpdates to trigger update from renderer 3 years ago
fonts Emoji Reacts (#2320) 3 years ago
images fix: run setupTheme after Storage is ready 8 months ago
mmdb fix: update maxmind db 1 year ago
mnemonic_languages electron-renderer webpack seems to be generating main_renderer.js 3 years ago
patches chore: lint 5 months ago
protos chore: content[14] protobuf already taken. use 15 instead 2 months ago
sound feat: add custom sound for notification so it works for Linux too 3 years ago
stylesheets fix: correct alignment of isDeleted message svg 3 months ago
third_party_licenses chore: add lucide license 4 months ago
tools feat: added note about python3 alias on windows 2 months ago
ts fix: ignore non-05 from search result in group create 2 months ago
.editorconfig chore: lint 2 years ago
.eslintignore fix: add ignores for the generated locale type file 1 year ago
.eslintrc.js fix: wrap up changes for strings localization 3 months ago
.gitattributes Stop git from defaulting to changing line endings 6 years ago
.gitignore Merge remote-tracking branch 'upstream/unstable' into closed-group-chunk3 6 months ago
.lintstagedrc.js fix: lint-staged ignores files using eslintignore 2 years ago
.mocharc.json feat: added mocharc.json 11 months ago
.mocharc.yml chore: move mocha config to .mocharc.yml to package.json is cleaner 2 years ago
.nvmrc feat: update strings usages and library 9 months ago
.prettierignore chore: fetch latest strings and fix errors 8 months ago
.prettierrc.js increase prettier maxWidth to 100 4 years ago
.sassrc.json Emoji Reacts (#2320) 3 years ago
.tool-versions feat: add asdf .tool-versions file to specific python version for convenience 3 months ago
.yarnclean feat: setup lint-staged when making a commit 2 years ago
.yarnrc.yml fix: add handling of revoked namespace messages 11 months ago
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 4 years ago
CONTRIBUTING.md feat: added note about python3 alias on windows 2 months ago
INTERNALBUILDS.md fix: align mac secrets table in internal builds doc 2 months ago
LICENSE Add GPLv3 LICENSE file (#1309) 8 years ago
README.md chore: make runner use ubuntu 22.04 2 months ago
RELEASING.md chore: update flatpak release info 2 months ago
THEMES.md fix: updated git repo and clearnet references 4 months ago
about.html fix: prevent font swap on first load 10 months ago
about_preload.js fix: strings do not load dict from json, but use built ts file 3 months ago
background.html fix: prevent font swap on first load 10 months ago
commitlint.config.js feat: added conventional commit requirement 2 years ago
libsession.worker.config.js fix: tsc does not overwrite workers compiled content 1 year ago
package.json fix: add sigtimestamp to all content message 2 months ago
password.html fix: prevent font swap on first load 10 months ago
password_preload.js fix: strings do not load dict from json, but use built ts file 3 months ago
preload.js chore: create groupv2, disable QA buttons 2 months ago
sass.config.js chore: replace tslint with eslint and fix linting issues 2 years ago
tsconfig.json Merge remote-tracking branch 'upstream/unstable' into closed-group-chunk3 6 months ago
utils.worker.config.js fix: tsc does not overwrite workers compiled content 1 year ago
yarn.lock fix: add sigtimestamp to all content message 2 months ago

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.