Read and reply to kernel mailing lists.
Koshi is a native GTK4 + libadwaita app for browsing, searching, and replying to the mailing lists archived on lore.kernel.org.
Koshi is distributed as a Flatpak from its own repository:
flatpak remote-add --if-not-exists koshi https://dl.nikableh.moe/koshi.flatpakrepo
flatpak install koshi moe.nikableh.KoshiUpdates arrive through flatpak update. For a one-off install without adding
the remote, download the .flatpak bundle from the latest release and install
it:
flatpak install koshi.flatpakYou can verify the bundle's build provenance before installing:
gh attestation verify koshi.flatpak -R nikableh/koshicargo run -ror
nix runFrom zero: install flatpak and flatpak-builder with your distribution's
package manager (on NixOS, services.flatpak.enable = true), then add Flathub
if you have not already:
flatpak remote-add --if-not-exists --user \
flathub https://dl.flathub.org/repo/flathub.flatpakrepoInstall the runtime, SDK, and the Rust SDK extension the manifest builds against:
flatpak install --user flathub \
org.gnome.Platform//50 \
org.gnome.Sdk//50 \
org.freedesktop.Sdk.Extension.rust-stable//25.08Build, install, and run:
flatpak-builder --user --install --force-clean \
--state-dir=target/flatpak-builder target/flatpak-build \
build-aux/moe.nikableh.Koshi.json
flatpak run moe.nikableh.KoshiOn NixOS, run flatpak-builder from inside nix develop. flatpak
validates the app's exported icons with the host's gdk-pixbuf loaders, and a
bare shell without librsvg's SVG loader rejects every SVG icon with
Format not recognized. The dev shell (flake.nix) provides the loader:
nix develop -c flatpak-builder --user --install --force-clean \
--state-dir=target/flatpak-builder target/flatpak-build \
build-aux/moe.nikableh.Koshi.jsonThe manifest fetches crates during the build (--share=network in
build-args), so it is for local builds — publishing to Flathub would need a
generated cargo-sources.json instead.
Inside the sandbox Koshi still uses the host's git for identity and
sending — invocations cross over via flatpak-spawn --host
(--talk-name=org.freedesktop.Flatpak), so your git config, credential
helpers, and git send-email setup work unchanged.
Publishing is automated: tag main with a v* version and GitHub Actions
builds, GPG-signs, and publishes the Flatpak to
dl.nikableh.moe, then creates a GitHub Release with a
.flatpak bundle.
This project is under the GPL-3.0-only license.