Skip to content

About

Sable rewrite in Rust and Svelte next.sable.moe, Mirrored from https://git.sable.moe/SableClient/sable-next

Resources

Code of conduct

Contributing

Security policy

Stars

59 stars

Watchers

0 watching

Forks

Latest commit

 

History

7,302 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Sable Sable

An almost stable Matrix client, written from scratch in Rust and Svelte.
Trying to be feature-complete while enhancing the user experience with quality-of-life features, cosmetics, utilities and sheer usability.

Join the Matrix space at #sable:sable.moe for project & feature discussions, help with issues, and meowing.

The web build is deployed to app.sable.moe and the nightly beta is at dev.sable.moe. Read on for installation instructions.

Installation

Windows   Google Play   Flathub   IzzyOnDroid   Add to Obtainium

Android

Google Play

Google Play

Click the button above or this link to download Sable from Google Play.

IzzyOnDroid

IzzyOnDroid

Use an F-Droid client, like Neo Store or Droid-ify, to download Sable from the IzzyOnDroid repository.

Obtainium

APKs ship with every build, and Obtainium updates them straight from Forgejo. Each build also publishes an obtainium.json app config.

Stable

Add to Obtainium   App config

moe.sable.client
BC:9F:83:A1:AC:9C:33:2D:F7:39:75:96:2E:78:B5:57:24:D0:6A:EE:E7:3E:FF:8B:7B:78:52:61:AD:48:62:8B

Nightly

Add to Obtainium   App config

moe.sable.next.nightly
BC:9F:83:A1:AC:9C:33:2D:F7:39:75:96:2E:78:B5:57:24:D0:6A:EE:E7:3E:FF:8B:7B:78:52:61:AD:48:62:8B

Setup & install

  1. Install Obtainium.
  2. Tap Add to Obtainium above. Choose the nightly config if you want to receive pre-releases. Alternatively, download obtainium.json and import it with Import/Export → Import from file.
  3. (Optional) Verify the download is genuine using AppVerifier.

Apps added before the move to per-build prereleases have to be removed and re-added.

Desktop

Windows

Windows

The Windows build automatically checks for updates. Download and run the setup.

Linux

Flatpak

Flathub

Stable builds are on Flathub. Nightly builds have their own Flatpak remote, rebuilt from main on every push:

flatpak remote-add --if-not-exists sable-next-nightly https://sableclient.github.io/sable-next/sable-next-nightly.flatpakrepo
flatpak install sable-next-nightly moe.sable.next.electron.Nightly

Arch Linux

AUR

Install and update using your preferred AUR helper:

yay -S sable-bin
paru -S sable-bin

Use sable-nightly-bin for nightly builds. See the AUR upgrade notes when upgrading older packages.

Nix

nix run git+https://git.sable.moe/SableClient/sable-next#sable-desktop

Using Forgejo Repositories

Packages are published to the Forgejo repositories at git.sable.moe. Use nightly instead of stable for nightly builds; the package is then sable-nightly.

Debian, Ubuntu
sudo curl https://git.sable.moe/api/packages/SableClient/debian/repository.key -o /etc/apt/keyrings/forgejo-SableClient.asc
echo "deb [signed-by=/etc/apt/keyrings/forgejo-SableClient.asc] https://git.sable.moe/api/packages/SableClient/debian stable main" | sudo tee /etc/apt/sources.list.d/sable.list
sudo apt update && sudo apt install sable
Fedora, RHEL, openSUSE
sudo dnf config-manager addrepo --from-repofile=https://git.sable.moe/api/packages/SableClient/rpm/stable.repo
sudo dnf install sable

MacOS (Homebrew)

Homebrew

Install using Homebrew:

brew install --cask SableClient/sable/sable

The cask is published to the GitHub tap, which brew install taps by default, and to a Forgejo mirror: brew tap SableClient/sable https://git.sable.moe/SableClient/homebrew-sable.git.

iOS

App Store

There is a Testflight you can join while the app is under review. It will be available on the App Store soon™.

AltStore / SideStore

iOS builds are unsigned IPAs distributed through AltStore and SideStore. Each release publishes its IPA with an altstore-source.json that lists it.

Stable source

Add to AltStore   Add to SideStore   Direct URL

Nightly source

Add to AltStore   Add to SideStore   Direct URL

Setup & install

  1. Set up AltStore Classic or SideStore on your device.
  2. Tap a button above, or add the source manually (swap latest for nightly in the URL for the nightly channel):
    • AltStore: altstore://source?url=https://git.sable.moe/SableClient/sable-next/releases/download/latest/altstore-source.json
    • SideStore: sidestore://source?url=https://git.sable.moe/SableClient/sable-next/releases/download/latest/altstore-source.json
  3. Install Sable v2 from the source. AltStore/SideStore re-sign the unsigned IPA with your personal development certificate at install time, so apps refresh every 7 days on a free account.

Both configs come from the obtainium and altstore jobs in tauri-build.yml.

Other Releases

Latest Releases   Download APK

If your platform is not listed or you would like to download packages directly, check the latest releases.

Getting Started with Development

You can read more about getting started on the developer wiki.

Clone the repository
git clone https://git.sable.moe/SableClient/sable-next.git

Node, pnpm, Rust, and other tooling are managed by mise. After installing it on your system, enter the directory and run the following commands to set up the project:

mise install
mise run setup    # pnpm install + git hooks
mise run dev      # SvelteKit on http://localhost:3000

mise run dev builds the development WASM bundle first. While editing Rust in another terminal, run mise run wasm:watch; Vite reloads after each regenerated bundle. Production builds generate the optimised WASM bundle automatically.

pnpm test:e2e generates its WASM bundle in src/generated/wasm-e2e/, so it can run while the development server is using src/generated/wasm/.

Run mise tasks for the full list.

Building without mise

Put Node, pnpm, Rust (with the wasm32-unknown-unknown target) and wasm-bindgen-cli (the version in Cargo.lock) on your PATH, then run pnpm install and pnpm build.

Self-hosting

See the web client guide for Docker and client configuration, or the server mode guide to run Sable and its Matrix stores on your server.

Apps

Desktop builds (Windows, macOS, Linux) use Electron; see electron/README.md. Android and iOS use Tauri.

mise run tauri:setup          # Shared Rust/system dependencies, including Linux packages
mise run tauri:icons          # Regenerate native icons after changing the logo SVG
mise run tauri:setup:macos    # macOS: Xcode
mise run tauri:setup:android  # Android: SDK packages + NDK
mise run tauri:setup:ios      # iOS: Xcode project + CocoaPods (macOS)

Every push to main publishes bundles for all targets as a distinct nightly prerelease. Linux x86_64, macOS, Android and iOS build here; Windows and Linux aarch64 build on the GitHub mirror and attach their bundles, with attestations, to the same release. Pushing a v* tag publishes a stable release the same way.

The web build ships with every release as sable-<version>-web.tar.gz. Extract it into your web root to serve the app yourself; see Caddyfile for an example configuration.

Contributing

See CONTRIBUTING.md.

License

AGPL-3.0-or-later, with an additional permission for App Store executables under MPL 2.0 (See LICENSE). The Sable name and logo are covered by TRADEMARKS.md.

About

Sable rewrite in Rust and Svelte next.sable.moe, Mirrored from https://git.sable.moe/SableClient/sable-next

Resources

Code of conduct

Contributing

Security policy

Stars

59 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages