Stoat for Desktop - self-hostable fork
  • TypeScript 94.5%
  • JavaScript 3.3%
  • Shell 1.1%
  • Nix 0.7%
  • HTML 0.2%
  • Other 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
root 57aba05f7a
Some checks failed
Release Please / Release Please (push) Has been cancelled
Release Webhook / Send Release Webhook (release) Has been cancelled
Release Please / Publish App (push) Has been cancelled
Release Please / Publish App-1 (push) Has been cancelled
Release Please / Publish App-2 (push) Has been cancelled
Release Please / Publish App-3 (push) Has been cancelled
Release Please / Publish App-4 (push) Has been cancelled
Release Please / build-appimage (ubuntu-24.04-arm) (push) Has been cancelled
Release Please / build-appimage (ubuntu-latest) (push) Has been cancelled
Release Please / publish-appimage (push) Has been cancelled
fix(build): remove IconComposer .icon bundle when actool is unavailable
2026-10-03 12:35:02 +00:00
.github fix: Add temp appimage workflow, fix some ci/cd bugs (#285) 2026-08-19 12:25:18 -06:00
.mise fix: Remove node-pipewire submodule and actually package native dep (#280) 2026-08-17 15:19:31 -06:00
.vscode chore: try to get everything building 2025-10-08 17:28:30 +01:00
assets@1e7f9990c2 fix: Use liquid glass icon on MacOS (#258) 2026-08-16 12:52:54 -06:00
scripts fix(build): remove IconComposer .icon bundle when actool is unavailable 2026-10-03 12:35:02 +00:00
src feat: self-hosted instances, i18n, stability and screen-share fixes 2026-10-03 12:08:59 +00:00
.eslintrc.json refactor: add mise, update electron-forge, add ci/cd workflow for lint (#252) 2026-07-24 16:00:44 -06:00
.gitignore feat: initial commit 2025-09-30 10:31:37 -05:00
.gitmodules fix: Remove node-pipewire submodule and actually package native dep (#280) 2026-08-17 15:19:31 -06:00
.prettierrc feat: initial commit 2025-09-30 10:31:37 -05:00
.release-please-manifest.json feat: self-hosted instances, i18n, stability and screen-share fixes 2026-10-03 12:08:59 +00:00
CHANGELOG.md feat: self-hosted instances, i18n, stability and screen-share fixes 2026-10-03 12:08:59 +00:00
chat.stoat.StoatDesktop.desktop chore: add files to manage flathub details upstream (#104) 2026-02-17 19:04:04 +00:00
chat.stoat.StoatDesktop.metainfo.xml feat: self-hosted instances, i18n, stability and screen-share fixes 2026-10-03 12:08:59 +00:00
flake.lock chore: use nix flake for development (#314) 2026-09-15 16:49:07 -06:00
flake.nix chore: use nix flake for development (#314) 2026-09-15 16:49:07 -06:00
forge.config.ts fix(build): remove IconComposer .icon bundle when actool is unavailable 2026-10-03 12:35:02 +00:00
forge.env.d.ts feat: initial commit 2025-09-30 10:31:37 -05:00
index.html feat: initial commit 2025-09-30 10:31:37 -05:00
LICENSE chore: add LICENSE [skip ci] 2025-10-10 10:58:26 +01:00
package.json fix(build): remove IconComposer .icon bundle when actool is unavailable 2026-10-03 12:35:02 +00:00
pnpm-lock.yaml feat: self-hosted instances, i18n, stability and screen-share fixes 2026-10-03 12:08:59 +00:00
pnpm-workspace.yaml fix: Remove node-pipewire submodule and actually package native dep (#280) 2026-08-17 15:19:31 -06:00
README.md feat: self-hosted instances, i18n, stability and screen-share fixes 2026-10-03 12:08:59 +00:00
release-please-config.json refactor: move publish.yml workflow into release please workflow (#29) 2025-12-29 18:05:26 +00:00
screenshot.png chore: add files to manage flathub details upstream (#104) 2026-02-17 19:04:04 +00:00
strings.ts feat: initial commit 2025-09-30 10:31:37 -05:00
tsconfig.json fix: Add temp appimage workflow, fix some ci/cd bugs (#285) 2026-08-19 12:25:18 -06:00
vite.main.config.ts fix: Remove node-pipewire submodule and actually package native dep (#280) 2026-08-17 15:19:31 -06:00
vite.preload.config.ts feat: initial commit 2025-09-30 10:31:37 -05:00
vite.renderer.config.ts feat: initial commit 2025-09-30 10:31:37 -05:00

Stoat for Desktop

Stars Forks Pull Requests Issues Contributors License

Application for Windows, macOS, and Linux.

Self-hostable fork. This build is maintained independently and publishes releases to the project's own Forgejo instance.

Highlights

  • Self-hosted & modified instances — enter any instance URL directly in the app UI (first-run wizard, tray → Settings… or Ctrl/Cmd + ,). Self-signed certificates are supported as an opt-in.
  • Stability first — automatic recovery from network failures, renderer crashes and GPU crashes (falls back to software rendering instead of showing a black screen); optional services (tray, Discord RPC, PipeWire) can never prevent the app from starting.
  • Lightweight — no background auto-updater, optional integrations are off by default, tight failure handling.
  • Screen sharing on Linux — detects our own window (marked with isSelf) and never captures the app's own sound (loopbackWithMute, PipeWire routing skips our own audio clients).
  • Multi-language UI — English, Russian, Ukrainian, German, Spanish, French, Italian, Polish, Portuguese (Brazil), Turkish, Japanese, Korean, Simplified and Traditional Chinese (auto-detected from the system).

Installation

Packaging status
  • Prebuilt archives for Windows, macOS and Linux are attached to the releases of this repository.

Development Guide

Contribution guidelines for Desktop app TBA!

Before getting started, you'll want to install:

Then proceed to setup:

# clone the repository
git clone --recursive https://github.com/stoatchat/for-desktop stoat-for-desktop
cd stoat-for-desktop

# Install tools from mise
mise install

# install all packages
mise install:frozen

# start the application
mise dev
# ... or build the bundle
mise build
# ... or build all distributables
mise make

Various useful commands for development testing:

# connect to the development server
mise exec -- pnpm start -- --force-server http://localhost:5173

# test the flatpak (after `make`)
mise exec -- pnpm install:flatpak
mise exec -- pnpm run:flatpak
# ... also connect to dev server like so:
mise exec -- pnpm run:flatpak --force-server http://localhost:5173

# Nix-specific instructions for testing
nix develop
pnpm package
pnpm run:nix
# ... as before:
pnpm run:nix --force-server=http://localhost:5173
# a better solution would be telling
# Electron Forge where system Electron is

Pulling in Stoat's assets

If you want to pull in Stoat brand assets after pulling, run the following:

# update the assets
mise assets

Currently, this is required to build, any forks are expected to provide their own assets.