local waifu
Bring her home

Pick your platform

Try her free for 7 days. No card. Keep her? $20 once.

New: Local Waifu now runs on Windows 10 and 11. The installer brings everything she needs, nothing else to set up. Windows may show a SmartScreen prompt the first time: click More info, then Run anyway.

blog

What Deleting the App Actually Deletes

8 min read
In short

Deleting a chat removes database rows, not files. Reset All Data clears your conversations, soul files and voice clones but leaves downloaded models and logs, and on Windows it does not remove generated images or portraits either.

Every app has a delete button. You press it, the interface updates, and you assume the files are gone. In this app the assumption is doing more work than the button is.

Delete is not one operation here. It is three: uninstalling the app, deleting one chat, and resetting the app. Two remove no files at all, and the one that sounds most thorough still leaves a lot in place. I read the 1.7.2 source on both the macOS and Windows trees (checked 2026-09-16), so what follows is what the code does.

Uninstalling the app removes the program and leaves every byte of your data

The short version: Dragging the app to the trash on macOS, or uninstalling it on Windows, removes the application bundle. Your database, pictures, downloaded models, voice clones, log files and keychain entries all stay where they were.

Everything the app creates lives outside the bundle, in ~/Library/Application Support/com.lumizone.localwaifu/ on macOS. Uninstall does not touch it. Not one row, not one PNG.

PathWhat it holdsReset All Data on macOSReset All Data on Windows
app.dbSQLite: characters, messages with their image path column, memories and embeddings, entities and relations, mood state, relationship record and milestones, conversations, feedback events, the lorebookClearedCleared
characters/one encrypted soul file per character, ChaCha20-Poly1305 under a key from your passphrase, the hardware UUID and a per-install saltClearedCleared
images/one PNG per generated picture, plus photos you attachedClearedSurvives
portraits/saved character portraitsClearedSurvives
image-models/downloaded weights, the user library file, imported SDXL checkpoints and LoRAsSurvivesSurvives
ollama/models/the language model store, kept inside the app folder so an uninstall does not strand multi-gigabyte blobsSurvivesSurvives
voice-references/, chatterbox/voice reference audio and Chatterbox assetsNot enumerated by the reset pathNot enumerated by the reset path
three log filesruntime logs, including an audit log of agent tool callsSurvivesSurvives
secrets.jsonOAuth token for one optional cloud route, mode 0600SurvivesSurvives
~/.local-waifu/voice_clonesvoice clones on macOS, outside the app folderClearedCleared
OS keychainlicence key, trial timer, provider keys, Telegram bot tokenSurvivesSurvives

The model store sits there on purpose: that relocation is the local half of what running locally actually means.

Deleting one chat runs two SQL statements and deletes no files

The short version: Deleting a conversation removes the conversation row, which cascades to its messages, and clears the pointer to whichever chat was active. Nothing on the filesystem is touched.

The whole operation is two statements against app.db: delete the conversation row, then clear the pointer that remembered which chat was open. There is no filesystem cleanup on that path.

The pictures are what this misses. Every generated image is a PNG in images/, and each message row holds its path. The gallery is built from the messages table, so when the rows go, the pictures leave the gallery. The files stay on disk, referenced by nothing: no row points at them, nothing lists them, nothing tells you which conversation they came from. The rest of that folder is mapped in the anatomy of AI companion app data.

That gap lands hardest on the chat you were worried about. If it held a picture you want gone, deleting the conversation does not remove it. Open the folder and delete the file.

Deleting a character has the same blind spot and refuses to take your last one

The short version: Delete character removes the character and its records with the same absence of file cleanup, so the encrypted soul file stays in characters/. When it is your only character, the app refuses and points you at Reset All Data instead.

The leftover worth knowing about is that soul file: encrypted, so not casually readable on a stray drive, and still naming someone who no longer exists in your app. Deleting your last character is refused, with Reset All Data offered in its place, which shows the shape of the app: the answer to “delete everything” is one large button.

Reset All Data is the only one of the three that removes files

The short version: Reset All Data wipes the SQLite database, the encrypted soul files and the voice clones. That is the entire list, and only one of those three lives outside the app folder.

For a soul file, the key that made it readable goes with it: a key derived from your passphrase, the machine hardware UUID and a per-install salt. Nothing on the database side is archived or flagged. Conversations, memories with their embeddings, mood state, the relationship record and its milestones, entities, relations, feedback events and the lorebook are cleared.

Notice what is not on that list.

On Windows the same reset leaves your pictures and portraits behind

The short version: The Windows edition of Reset All Data does not delete the images or portraits folders, so generated pictures and saved portraits survive a reset that clears them on macOS.

Same button, same wording, different result on disk. I read both trees to confirm it, because nobody would guess it from the interface. On Windows, a reset leaves those folders full.

Weights, logs and a stored OAuth token survive every reset

The short version: image-models is untouched, so downloaded weights, imported checkpoints, LoRAs and the user library file all remain, along with three log files and secrets.json with its OAuth token.

Keeping the models is defensible. A large checkpoint runs several gigabytes, and wiping it every reset means re-downloading it.

The rest of that list is harder to defend. Three log files stay, one of them an audit log of agent tool calls. secrets.json stays too, holding an OAuth token for one optional cloud route with mode 0600. The reset does not remove the file and does not revoke the token. Revocation belongs to whoever issued it.

The app’s own privacy document is narrower than the code: it describes Reset All Data as clearing the SQLite database, the soul files and the voice clones, and says nothing about images, model weights, logs or that token. Read it as an understatement rather than a promise.

Free space and backups are the two things this post cannot promise you

The short version: Nothing in the app shreds free space, so a deleted file is unreferenced rather than overwritten, and nothing in the codebase addresses system backups such as Time Machine. If a backup already ran, I cannot tell you the data is gone.

Deleting a file changes the filesystem index rather than passing over the disk surface, which is why recovery tools still work on files deleted years ago.

Backups are the bigger hole. There is no Time Machine exclusion, no File History hook, no cleanup step anywhere in the app. If your Mac or PC backed up yesterday, your database, soul files and pictures may exist in that snapshot, and a reset does not reach into it. “I reset the app” and “the data is gone from my machine” are two different claims, and only you can check the second one.

If you want it actually gone, the sequence has five steps and one manual job

The short version: Quit the app, delete the app data folder, remove the voice clones folder, remove the keychain entries, then check your backups. Deleting the bundle alone leaves all of it in place, and nothing in the app removes loose image files for you.

  1. Quit the app, so nothing holds the database open.
  2. Delete the app data folder: ~/Library/Application Support/com.lumizone.localwaifu/ on macOS, or the equivalent per-user application data path on Windows.
  3. Delete ~/.local-waifu/voice_clones on macOS, which sits outside the app folder.
  4. Remove the keychain entries: licence key, trial timer, provider keys, Telegram bot token.
  5. Check your backups, then decide whether to remove those snapshots, because this app will not.

The manual job is the one people expect to find as a button. Nothing in the app erases generated images or portraits on their own, so loose PNGs from chats you deleted months ago sit in images/ until someone removes the files, and on Windows that folder outlives the reset too. A hand delete in Finder or File Explorer.

About the setup you gave up. When a company stores your chats, you have a legal route out: GDPR Article 17 gives a right to erasure, the route is documented in how to delete your Replika data, with exceptions in Article 17(3) for legal obligations and legal claims. Apple has required in-app account deletion from account-based apps since 30 June 2022, and Google Play has a parallel rule.

Local Waifu has no account, so there is nothing to request and nobody to ask. You are the administrator of your own data. That is the honest tradeoff: no support ticket can clean this up for you, and none is needed to keep it. It is also why the pricing page is one number rather than a tier list. No account holds your conversations and no storage plan needs cancelling, just a folder on your machine you now know how to remove properly.

Questions people ask

Does uninstalling Local Waifu delete my chats?

No. Uninstalling removes the application bundle. Your database, generated images, encrypted soul files, downloaded models, voice clones and keychain entries stay in the app data folder until you delete them yourself.

What happens to the pictures when I delete one chat?

The conversation row is deleted and cascades to its messages, so the pictures leave the gallery because the gallery reads the messages table. The PNG files stay in the images folder with nothing pointing at them. No file is removed anywhere on that path.

Does Reset All Data delete everything?

It wipes the SQLite database, the encrypted soul files and the voice clones. Downloaded model weights, imported checkpoints, LoRAs, the user library file, three log files, secrets.json and the keychain entries all survive. On Windows the images and portraits folders survive the reset as well.

Why do downloaded models survive a reset?

The image-models folder is not part of the reset path, so multi-gigabyte weights and imported SDXL checkpoints stay in place and you never re-download them. The log files and the stored OAuth token survive because the reset only touches the three things it names.

How do I remove Local Waifu data completely?

Quit the app, delete the app data folder at ~/Library/Application Support/com.lumizone.localwaifu/ on macOS, delete ~/.local-waifu/voice_clones, remove the keychain entries for the licence key, trial timer, provider keys and Telegram bot token, then check your system backups. There is no button that deletes the loose image files for you.

Try her free for 7 days.

No card. Keep her for $20 once, or walk away. Her soul file is yours either way.

Bring her home, try free

Back to the blog