Satchel

Your key, your mail and your places, in one small add-on.

Satchel is a Firefox and LibreWolf add-on for small communities on .sesh addresses. Your identity is a key on your own computer, not an account on someone's server.

Early release.

My Satchel in Satchel 0.3.0, just after making a key: the prompt to back it up, and the places joined from a demo collection
My Satchel right after you make a key.

What it is

Satchel keeps your own things in your browser: your keys, your mail, your files and your contacts. It carries them with you to .sesh places, which are chat rooms, boards, wikis, directories, file drops and the small apps their hosts offer.

.sesh addresses live on the Session network. Your computer reaches them through Session Router, a separate program that runs next to your browser. Satchel is the part you see: it opens those places, checks that what they show is signed by the right keys, and asks you before anything is posted in your name.

A key, not an account

You make a key with a passphrase the first time you open Satchel. That key is who you are in every place you join. There is no sign-up and no password reset, so keep a backup.

Places you join

Paste a join link or a name.sesh address. Each place opens in its own tab, and My Satchel groups them by the collection they come from.

Normal browsing stays normal

Satchel only acts on .sesh addresses. It has no content scripts and doesn't read or change the other sites you visit.

What you can do today

Chat rooms, boards and wikis

Post and read in places a host runs. Every post is signed by its author's key, and Satchel checks the signatures before it shows anything.

Sealed mail

Mail goes to an address like srnet://mail/<key> and is sealed to the recipient's key, so the mail host can't read it. You pick one to three mail hosts.

People and Contacts

In a People place, everyone who shares a mail address gets a card with it. Copy it, or press Write to them to start a message.

Voice clips

Record a clip of up to 30 seconds from the mic button in Chat, or in a new mail to one of your contacts. Firefox asks for the microphone only when you press it, and nothing is sent until you listen and press Send.

File drops

Pick a file and who can open it. It is encrypted in your browser first, and a share link carries its key after the #, so the host never sees it.

Directory and profiles

Find places in a directory and set a short bio per collection. You can keep several profiles with separate keys, or use a throwaway key that lives only in memory.

Small apps from hosts

A host can offer small JavaScript apps, such as Polls. They run in a sandbox with no network access, only after you say yes, and Satchel asks again if the app changes.

You approve every post

Posts, connect requests and app changes are confirmed from the Satchel button on the toolbar. The text of that sheet comes from Satchel, not from the site.

How it works, in plain words

  1. Session Router runs on your computer and gives it a way to reach .sesh names.
  2. Satchel makes your key and keeps it encrypted with your passphrase, inside the browser.
  3. When you open a place, Satchel fetches its records from the host and checks every signature against the keys it expects. If the host key doesn't check out, the strip on top of the tab says so.
  4. When you post, Satchel shows you what will be signed, and signs it only after you confirm.
  5. Mail and files are encrypted in the browser before they leave, so hosts only store bytes they can't read.

Want the details? The technical overview covers keys, records, mail, the app sandbox, permissions and what Satchel does not protect against.

Install

1. Session Router

Satchel reaches .sesh sites through Session Router running on the same computer. On Ubuntu 24.04 or Debian, install the client from the Session Foundation's apt repository:

sudo curl -so /usr/share/keyrings/session-foundation.gpg https://deb.session.foundation/pub.gpg
echo "deb [signed-by=/usr/share/keyrings/session-foundation.gpg] https://deb.session.foundation $(. /etc/os-release; echo $VERSION_CODENAME) main" | sudo tee /etc/apt/sources.list.d/session-foundation.list
sudo apt update
sudo apt install -y session-router-client

Check it with resolvectl query localhost.sesh. It should print an address starting with fd2e:7365:7368:. Windows and macOS aren't supported yet.

2. Download Satchel

Download satchel-0.3.0.xpi

SHA-256: 0d3436ee70bee59824a33c7645555094b99e1b9a776d71996d4be86e2aa074e1

Signed by Mozilla, not listed on addons.mozilla.org. Needs Firefox or LibreWolf 140 or later (tested on Ubuntu and Debian). To check the file: sha256sum satchel-0.3.0.xpi

3a. Firefox

  1. In Firefox 140 or later, press the download button above. Firefox says it stopped this site from asking to install software. Press Continue to Installation. The file is signed by Mozilla, so there's nothing to change in Firefox's settings.
  2. Press Add. Firefox says Satchel wants to "Access your data for all websites". Satchel uses that only to load .sesh pages by their router address; it doesn't read or change other sites.
  3. The Satchel button shows up on the toolbar. If you don't see it, press the puzzle-piece button, then the gear next to Satchel, then Pin to Toolbar.
  4. If you use DNS over HTTPS, open about:config and add sesh to network.trr.excluded-domains, so .sesh names aren't sent to an outside DNS server.

Already downloaded the file? Open about:addons, press the gear, choose Install Add-on From File and pick it.

3b. LibreWolf

  1. Open about:config, accept the warning, and set dom.security.https_only_mode.upgrade_local to false. LibreWolf's HTTPS-Only mode also rewrites local addresses, which stops .sesh pages, file drops and long mail. HTTPS-Only mode stays on for every other site.
  2. Download the file, open about:addons, press the gear, choose Install Add-on From File and pick satchel-0.3.0.xpi.
  3. Press Add. The Satchel button shows up on the toolbar; if it doesn't, pin it from the puzzle-piece menu.

4. First run, and back up your key

Press the Satchel button on the toolbar. Under Setup checks you should see "Session Router: running". Then open My Satchel and make a key with a passphrase of at least 8 characters.

As soon as the key is made, Satchel asks you to back it up: press Download backup file and keep the file somewhere other than this computer, like a USB stick or a password manager. If you press Later, a reminder stays on My Satchel until you've saved one. You can save another copy any time with Export key.

Why the backup matters. There is no account to recover. Your key is encrypted on this computer, and if the browser's data is lost, the backup file and your passphrase are the only way back. The file opens only with your passphrase. To restore on a new install, choose Restore from a backup file on the first screen of My Satchel.

Privacy

No data collection

Satchel has no analytics, no telemetry and no account. Its add-on manifest declares that it collects no data.

Keys stay on your device

Your key is encrypted with your passphrase and stored in the browser. It is opened only in memory and locks itself after 15 minutes without use.

Hosts see less

Mail hosts see who a message is for, its padded size and when it arrived, but not the sender or the content. File hosts see only encrypted bytes.

Satchel doesn't hide everything about you. People in a place can see your public key and what you post, and the way you write or when you're online can still say something about you. Separate profiles use separate keys, and nothing in Satchel links them to each other.

Questions

Do I need Session Router?

Yes. Satchel opens .sesh addresses through Session Router running on the same computer. Without it, Satchel installs but can't open anything.

Does it change how I browse other sites?

No. Satchel only acts on .sesh addresses, plus search result pages when you type a name.sesh into the address bar, so it can take you there.

What if I forget my passphrase?

Then the key can't be opened. Nobody can reset it for you. Export a key file early and keep it with your passphrase somewhere safe.

Can I run my own place?

Yes. A collection is a set of connected apps that a host runs, and anyone can run their own on their own host. The technical overview explains the parts.

Is it finished?

No. This is an early release for people who want to try it and tell us what breaks. Expect rough edges.

License

Copyright the Satchel authors. Satchel is free software under the Mozilla Public License 2.0. Bundled third-party code keeps its own licenses.