Skip to content

Backup and Restore

Chris Smashe edited this page Jul 27, 2026 · 4 revisions

Backup & Restore

TypeWhisper supports backing up and restoring your settings, so you can save your configuration and bring it back later or move it to another machine.

What it does

Settings backup and restore is a built-in feature of the Linux branch. It lets you capture your TypeWhisper configuration and restore it when needed.

The Back Up and Restore buttons live on the About page, in the Settings Backup card. Back Up opens a file-save dialog; Restore opens a file-open dialog. Both buttons are disabled while a backup or restore is running.

The Settings Backup card on the About page, with Back Up and Restore buttons

What's in a backup

A backup is a ZIP archive containing a typewhisper-backup.json manifest plus your data. Restoring a zip that is not a TypeWhisper backup (missing the manifest) is rejected.

Included:

  • settings.json, settings.json.bak, and linux-preferences.json
  • The Data/ and PluginData/ directories

Excluded: the Models, Audio, and Logs directories, plugin binaries, and any executable file (.dll, .so including versioned sonames, .dylib, .exe).

Restore writes the root files and the Data/ and PluginData/ directories back. It does not touch the Plugins/ directory — restore has no write path there at all, so a restore can never replace your installed plugins.

Note: after a restore, some restored settings may require an app restart to take effect.

Restore validation

A restore is all-or-nothing. Every entry in the archive is validated before anything is extracted, and any of the following aborts the whole restore with an explanatory message, writing nothing:

  • The archive is missing its typewhisper-backup.json manifest, or the manifest is malformed or implausibly large.
  • Any entry sits under Plugins/.
  • Any entry falls outside the allowlist that backup actually exports (settings.json, settings.json.bak, linux-preferences.json, Data/, PluginData/).
  • Any entry uses an unsafe path (directory traversal and similar).
  • Any entry outside the exported roots is an executable.

Executables are never materialized. This matters because a plugin runtime installer trusts a file that is already on disk without re-verifying its checksum, so a crafted native library placed by a restore would run at the next launch. Executables found under the exported roots are skipped so that older archives still restore; anywhere else they are rejected.

Where your data lives

Knowing where TypeWhisper keeps its files is useful both for backups and for understanding what a restore affects. TypeWhisper stores its Linux data under the user-local application data directory, with settings.json holding your configuration.

For the full list of paths — settings, database, logs, plugins, audio, and plugin data — see Data and file paths.

Related pages


Changelog

Date Change
2026-06-17 Initial version.
2026-06-17 Added Settings Backup screenshot.
2026-06-17 Documented backup contents (included/excluded), the ZIP/manifest format, the Plugins restore asymmetry, the restart caveat, and that the buttons live on the About page.
2026-07-27 v0.13.0: restore no longer writes to Plugins/ (correcting the documented asymmetry) and now validates every entry up front — added the Restore validation section and the executable exclusion.

Clone this wiki locally