Getting started

Install a release, sign in to a network, and know where your data goes.

Download

Every release is built by GitHub Actions from a v* tag (release.yml), and every package is installed and started on a clean system there before the release is published. The links below always fetch the latest release.

SystemDownloadWhat it is
macOS 13 or later, Apple silicon.dmg or .ziptinyclient.app, to drag to Applications
Debian, Ubuntu.deb (arm64)A package for apt, with a menu entry
Fedora, openSUSE.rpm (arm64)A package for dnf or zypper, with a menu entry
Any Linux.AppImage (arm64)One file that runs without installing
Any Linux.tar.gz (arm64)The four programs and install.sh
Windows 10 or 11, x86_64-setup.exeAn installer that needs no administrator
Windows, portable.zipThe four programs, run where you unpack them

Linux files are for x86_64 unless they say arm64; on arm64 the names carry aarch64 where these carry x86_64.

Check a download

SHA256SUMS lists every file’s checksum. Put it beside the download and run:

sha256sum -c --ignore-missing SHA256SUMS  # Linux
shasum -a 256 -c --ignore-missing SHA256SUMS  # macOS
Get-FileHash tinyclient-windows-x86_64-setup.exe  # Windows: compare with its line in SHA256SUMS

macOS

  1. Open the disk image and drag tinyclient to Applications. The .zip holds the same app.
  2. Open it. The app is signed ad hoc, not notarized by Apple, so macOS refuses it the first time.
  3. Open System Settings › Privacy & Security, find the message about tinyclient and choose Open Anyway, if you trust the build.

Open the app rather than the programs inside it. macOS grants the microphone to an app bundle, so a call needs the bundle.

On first start, chatd reads your sign-ins from the login keychain. If macOS asks, allow it; until then the window says it is waiting for permission and shows what is cached.

To upgrade, replace the app with the new one. To remove it, quit tinyclient and move the app to the Trash.

Linux

Choose the format for your distribution. All of them need glibc 2.35 or later: Ubuntu 22.04, Debian 12, Fedora 38 or newer. The .deb and .rpm bring in the libraries tinyclient uses; with the AppImage and the .tar.gz they must already be there: GTK 3, WebKitGTK 4.1, ALSA, OpenSSL 3 and Vulkan, which a desktop with a web browser usually has.

Debian and Ubuntu

sudo apt install ./tinyclient-linux-x86_64.deb
sudo apt remove tinyclient  # to remove it

Fedora and openSUSE

sudo dnf install ./tinyclient-linux-x86_64.rpm  # Fedora
sudo zypper install --allow-unsigned-rpm ./tinyclient-linux-x86_64.rpm  # openSUSE
sudo dnf remove tinyclient  # to remove it; zypper remove on openSUSE

The packages are not in a repository and not signed, so nothing updates them: install a newer download the same way to upgrade.

AppImage

chmod +x tinyclient-linux-x86_64.AppImage
./tinyclient-linux-x86_64.AppImage

Nothing is installed; delete the file to remove it. It mounts itself with FUSE (the fuse3 package); without FUSE, add --appimage-extract-and-run. If it does not start, install WebKitGTK 4.1: libwebkit2gtk-4.1-0 on Debian and Ubuntu, webkit2gtk4.1 on Fedora.

Any distribution: the .tar.gz

tar -xzf tinyclient-linux-x86_64.tar.gz
cd tinyclient
./install.sh  # for you, in ~/.local; no root
sudo ./install.sh --system  # or for everyone, in /usr/local

install.sh puts the four programs in lib/tinyclient, tinyclient in bin, and adds the menu entry and icons. Run it from a newer download to upgrade. To remove it, run ~/.local/lib/tinyclient/install.sh --uninstall, or sudo /usr/local/lib/tinyclient/install.sh --uninstall --system. You can also skip it and run ./tinyclient where you unpacked it.

On every distribution

Windows

  1. Run tinyclient-windows-x86_64-setup.exe. It installs for you only, in %LOCALAPPDATA%\Programs\tinyclient, without asking for an administrator, and adds tinyclient to the Start menu.
  2. The installer is not code-signed, so SmartScreen may say Windows protected your PC. Choose More info › Run anyway, if you trust the build.

However it is installed, the four programs stay together in one folder: each finds the others beside itself. You start only tinyclient; it starts chatd when nothing answers on its socket, and chatd starts the other two when they are needed.

Sign in

Press Sign in beside a network. Each network has its own way in:

NetworkHow
DiscordDiscord’s own sign-in page opens in a separate window, which closes when you are in. Passwords, two-factor codes and captchas are Discord’s page, not tinyclient’s.
SlackSlack’s sign-in page, the same way. Every workspace that sign-in holds is added.
TeamsMicrosoft’s sign-in page. Work and school accounts only; your organization can refuse the sign-in.
TelegramScan the code tinyclient shows with Telegram on your phone, or enter your phone number and the code Telegram sends. Then your cloud password, if you set one.
SignalOn your phone, open Signal › Settings › Linked devices › Link new device, and scan the code. A linked device receives only what arrives after it was linked.

The finished session goes to your system’s credential store, under the service tinyclient, one item per network. Privacy & security lists everything that is stored.

Where your data lives

SystemData directory
macOS~/Library/Application Support/tinyclient
Linux$XDG_DATA_HOME/tinyclient, by default ~/.local/share/tinyclient
Windows%APPDATA%\tinyclient

Setting TINYCLIENT_DIR moves everything to that directory instead, and turns sign-in off so the credential store is never touched. That is how the demo and the tests run.

Sign out and remove

Signing out of an account ends its session on the network where the network allows it, then deletes its credential item, its cached messages and its media. Signing out of Signal removes the linked device from your account.

To remove tinyclient completely: sign out of each account, quit, uninstall it as above for the way you installed it, and delete the data directory above. The sign-in window keeps its own browser data so an interrupted sign-in can resume; on Linux and Windows it is in tinyclient/login/ under the same parent directory, and on macOS it is a WebKit data store of its own.

Without a window

tinyclient --text, or any build without the gui feature, prints account status and the inbox as lines of text and exits. An interactive terminal interface is not built yet.

Edit this page on GitHub