Privacy & security

What tinyclient stores, which connections it makes, what it never does, and where it falls short today.

There is no tinyclient server. The project runs no service, collects no accounts and receives no data. Everything below happens on your computer, between it and the networks you sign in to.

What is stored

WhatWhereProtection
SessionsSystem credential store: macOS login keychain, Windows Credential Manager, or the Secret Service on Linux. Service tinyclient, one item per network.The system’s. chatd refuses to sign in on a build whose credential store would not persist.
Message cachechat.sqlite in the data directoryNot encrypted by tinyclient
Media you looked atmedia/ beside it, at most 500 MBNot encrypted by tinyclient
Signal keys and sessionssignal/ beside itEach value sealed (AES-GCM-SIV) with a key held only in the credential store
Sign-in window’s browser dataA browser profile of its own, so an interrupted sign-in can resumeThe system web view’s
Logscrash.log and chatd.log in the data directoryCredentials redacted before writing

Use your system’s disk encryption (FileVault, BitLocker, LUKS): the cache relies on it.

Signing out of an account deletes its credential item, its rows in the database and its media.

Connections it makes

What it never does

Crash reports

chatd, mediad and the window each install one panic hook. A panic writes one entry, redacted, to standard error and to crash.log, naming the program and thread, with a backtrace. If the window crashed on its main thread it reopens once and says so, with a Copy report button that copies the last entry to your clipboard. Nothing is sent. If you want to share a report, read it first and attach it to an issue yourself.

How it presents itself

To Discord and Slack, tinyclient presents itself as the web client in a browser, the same identity the sign-in window used: on macOS the version of Safari you have installed, elsewhere a fixed Chrome identity. To Teams it signs in as Microsoft’s own Teams client. How each network treats this: Networks & terms.

Known limits

Reporting a vulnerability

Please report security problems privately through GitHub Security Advisories, not in a public issue. What is in scope and what to expect: SECURITY.md.

This website

Static HTML and one stylesheet. No cookies, no analytics, no fonts or scripts from other sites; a Content-Security-Policy allows only this site’s own files. The one small script names your system on the download button and adds Copy buttons, and every page reads the same without it. Cloudflare Pages serves the site and, like any web host, can see your request.

Edit this page on GitHub