Code signing policy
How TTSNative's Windows releases are signed, who may approve a signature, and what the app sends over the network.
Where things stand
- TTSNative 2.1.0 and earlier have no Windows code signature. Windows calls their publisher "Unknown" and may ask you to confirm before it runs the installer; compare the file with the published SHA-256 checksum first.
- The direct download (the installer on this site and on GitHub) is to be signed with free code signing provided by SignPath.io, certificate by SignPath Foundation, from the first release after the foundation accepts the project. Windows will then show "SignPath Foundation" as the publisher.
- The Microsoft Store version, once it is listed, is signed by Microsoft.
What is signed
TTSNative.exe and the installer, TTSNative-Setup-X.Y.Z.exe. Both
are built by the project's release workflow on GitHub-hosted runners from the public
repository at the tagged commit, and SignPath checks that the files it signs came from that
build. The programs and libraries TTSNative bundles from other projects (Python and its
packages, uv, ONNX Runtime, espeak-ng, Microsoft's Visual C++ runtime) keep their own
makers' signatures, or none; TTSNative doesn't sign them.
Separately, every installer carries an update signature made with the project's own key. The app installs an update only when that signature matches the public key built into it.
Who approves
Every signing request is approved by hand, after the release's tag is on
main and the release run has passed its checks.
- Committers and reviewers: Carson McRae
- Approvers: Carson McRae
Everyone in these roles uses two-factor sign-in for GitHub and for SignPath. Changes from anyone else are reviewed before they're merged.
What TTSNative sends over the network
TTSNative doesn't send anything to other computers unless you ask it to or turn it on. It has no accounts, analytics or telemetry. The only network requests are:
- a check for new versions on GitHub, at most twice a day, which you can turn off under Settings → About (the Microsoft Store version leaves updates to the Store);
- downloads you start yourself, such as the optional voice-cloning engine;
- web pages you choose to import;
- books you send to your own Audiobookshelf server.
Checking a signature
In File Explorer, right-click the file, choose Properties and open
Digital Signatures. In PowerShell:
Get-AuthenticodeSignature .\TTSNative-Setup-X.Y.Z.exe. Every release also lists
SHA-256 checksums and a build attestation on its
GitHub release page.
Reporting a problem
If a file claiming to be TTSNative is signed by someone else, or behaves unexpectedly, don't run it, and report it through the security policy with its SHA-256 checksum and where you got it.