Privacy policy
Last updated: 1 November 2026
In short
- Vale runs on your PC. There is no Vale server and no account.
- Vale has no telemetry, no analytics and no crash reports. Release builds check GitHub for a new version about once a day; you can turn that off.
- Your data stays on your PC. The only exceptions are the connections listed in the network section: the update check, which is on by default, and the opt-in ones: Google Calendar, lyrics from LRCLIB, and the web search page that opens in your browser.
- Google Calendar is off until you sign in. What Vale gets from Google goes only between your PC and Google.
Google user data
Google Calendar is optional. Vale does not contact Google until you choose to sign in.
How sign-in works
Vale opens the Google sign-in page (accounts.google.com) in your default browser and uses PKCE. After you approve, Vale exchanges the sign-in code for a token with oauth2.googleapis.com. While you sign in, Vale listens on the loopback address 127.0.0.1 so the browser can hand the code back. That listener exists only during sign-in and cannot be reached from other computers.
Release builds use Vale's own OAuth client. If you enter a Client ID in Settings > Integrations, Vale uses yours instead.
What Vale asks Google for
Vale requests two permissions (scopes):
https://www.googleapis.com/auth/calendar.calendarlist.readonly: Vale reads the list of your calendars and their colours, so events can be shown per calendar.https://www.googleapis.com/auth/calendar.events: Vale reads your events to show them, creates new events in your primary calendar, and edits an existing event when you change it in Vale.
Vale never deletes events. Read-only events, recurring events and multi-day events cannot be edited in Vale. While you are connected, Vale asks Google for your calendars and events again every 10 minutes.
Where it is stored
- The sign-in token is in
%APPDATA%\Vale\google-token.bin, encrypted with Windows DPAPI for your Windows account. - The calendar cache is
%APPDATA%\Vale\calendar-cache.json. It is plain JSON with event titles, times, descriptions and calendar colours. Vale keeps it after you disconnect, until you delete it (see Deleting your data).
Who sees it
Google user data moves only between your PC and Google. Vale never sends it to the developer or to anyone else. It is not sold. It is not used for advertising or profiling, and not used to train artificial intelligence or machine-learning models. No person reads it, because there is no server for it to arrive on.
Limited Use
Vale's use and transfer of information received from Google APIs to any other app will adhere to the Google API Services User Data Policy, including the Limited Use requirements.
Network connections
This table lists every connection Vale makes or starts. Inside Vale, every request goes through the Windows (WinRT) HttpClient. Vale has no telemetry, no analytics and no crash reporting. The only connection that is on by default is the update check in the table, which you can turn off. It does not download cover art: album covers come from the Windows media session.
| Destination | What is sent | When |
|---|---|---|
LRCLIB: https://lrclib.net/api/get and /api/search | Track title, artist and duration. Never the album. | Only when Lyrics is on. It is off by default. You turn it on in Settings > Features > Music or with the Lyrics button on the Music page. Results are cached in lyrics-cache. |
Google sign-in: accounts.google.com and oauth2.googleapis.com | The standard OAuth sign-in exchange. Your Google password goes only to Google's page in your browser. | Only when you sign in, and when Vale renews the token while you are connected. |
Google Calendar API: www.googleapis.com/calendar/v3 | Requests to list your calendars, list events, create an event in your primary calendar, and patch an existing event. Event details you type or change are included. | Only while connected. |
Web search: google.com/search | Vale sends nothing. It opens the page in your default browser, so your browser sends the search text. | Only when you pick the web search result in Vale's search. |
| Links you click | Vale sends nothing. The link opens in your default browser: the repository, Releases, or the Mole README. | Only when you click. |
Update check: https://api.github.com/repos/hartono0297/vale/releases/latest, and for an update github.com (redirected to objects.githubusercontent.com) | A request for the latest release, with a User-Agent: Vale/<version> header. No account or personal data is sent. When you click Update, Vale downloads vale.exe and vale.exe.sha256 from the GitHub release and checks the SHA-256 before it replaces the app. | Release builds only, about once a day while Check for updates automatically (Settings > About) is on. It is on by default; turn it off there. Check for updates in the tray menu or in Settings > About checks once, when you choose it. The download happens only when you click Update. Debug builds never check. |
Installer: api.github.com, github.com and raw.githubusercontent.com | The installer script (not the app) asks the GitHub API for releases/latest, downloads vale.exe and vale.exe.sha256 from GitHub, checks the SHA-256, and fetches uninstall.ps1 from raw.githubusercontent.com. | Only when you run the install command. Installing from the release zip downloads nothing. |
Files Vale writes
Names without a folder are in %APPDATA%\Vale. Nothing in these tables is uploaded. The file shelf and the file-search index live in memory only and are never written to disk.
| File | What it holds | Encrypted | When it exists |
|---|---|---|---|
config.json | Your settings, plus your own Google client ID and secret if you entered them. If config.json cannot be read, Vale keeps the damaged copy next to it as config.json.bak (or .bak2, .bak3 and so on, so no earlier copy is overwritten). That copy is plain text too and can hold the same client ID and secret. | No, plain text | Always |
google-token.bin | The Google sign-in token. | Yes, Windows DPAPI, your Windows account | After Google sign-in. Disconnect deletes it. |
calendar-cache.json | Event titles, times, descriptions and calendar colours. | No, plain text | After sign-in. Kept after you disconnect. |
clipboard-history.bin | Copied text (up to 64 KB per item), links, colours, file paths and image thumbnails. 50 items by default, 10 to 200 in Settings. Full-size images stay in memory only. Copies from password managers are skipped. | Yes, Windows DPAPI | On and saved by default. Turning saving off deletes the file. |
notification-history.bin | For each Windows notification Vale saw: app name, time, title, body (up to 1024 characters) and the app logo. 50 entries by default, 10 to 200 in Settings. | Yes, Windows DPAPI | On and saved by default. Turning saving off deletes the file. |
notes.json, reminders.json | Your notes and reminders. If Vale cannot read one of them, it keeps the damaged copy as notes.json.bak or reminders.json.bak (or .bak2, .bak3 and so on, so no earlier copy is overwritten). | No, plain text | When you use Notes or Reminders |
cli-history.txt | The last 100 commands you typed in Vale's CLI. | No, plain text | When you use the CLI |
cli-cwd.txt | The CLI's working folder. | No, plain text | When you use the CLI |
cli-favorites.txt | Your favourite folders (up to 20). | No, plain text | When you use the CLI |
cli-recent.txt | Recently used folders (up to 25). | No, plain text | When you use the CLI |
lyrics-cache\ | Synced lyrics (.lrc files) and markers for tracks where none were found. | No, plain text | Only with Lyrics on |
shell-icon.txt | A version stamp for the app icon. | No, plain text | Once Vale has run |
media.log | Media commands and states, never track titles. | No, plain text | Off by default. Only when Vale is started with --media-log, or when you set "media_log": true by hand in config.json. |
Outside %APPDATA%\Vale
These are not in Vale's data folder, so removing %APPDATA%\Vale leaves them in place. The uninstall script removes the autostart value and the Claude Code hook entries. It keeps your screenshots, the settings.json.bak-vale backup and the Mole whitelist entries (see Deleting your data).
| Where | What it holds | Encrypted | When it exists |
|---|---|---|---|
Your Windows Screenshots folder: %USERPROFILE%\Pictures\Screenshots by default. If OneDrive backs up your Pictures folder, Windows moves it there. | Screenshots you save. Vale never overwrites a file. Deleting a screenshot from the preview moves it to the Recycle Bin and removes its clipboard history cards, except a card you pinned. With If ignored set to Delete in Settings, a screenshot you leave alone goes to the Recycle Bin when its preview closes, even a file Snipping Tool saved. If ignored is Keep by default, and Keep never deletes. | No, image files | When you save a screenshot |
HKCU\Software\Microsoft\Windows\CurrentVersion\Run | A value named Vale that starts Vale with Windows. | No | On by default. Turn it off in Settings. |
%USERPROFILE%\.claude\settings.json and settings.json.bak-vale | Claude Code hook entries, with a backup of your settings file made first. | No, plain text | Only when you install the Claude Code hooks |
%USERPROFILE%\.config\mole\whitelist.txt | Vale appends folders for Mole to leave alone (the Cargo caches and Autodesk). | No, plain text | Once, before Mole mode's first preview, unless you turn off that protection in Settings |
What Vale reads from Windows
Vale reads the following from Windows on your PC. None of it is sent anywhere.
- Windows notifications, to show them in the notch and keep a history. Vale never removes them from the Action Center.
- The track that is playing, from the Windows media session.
- The clipboard, for the clipboard history and the copy preview.
- Audio loopback of your default output, for the equalizer bars. Vale keeps five levels in memory and no audio. This is on by default.
- Per-app volume, for the Mixer.
- A low-level keyboard hook that reacts only to the bare PrtSc key, to open Vale's screenshot capture. This is on by default. Vale checks each key only to see whether it is PrtSc; it does not record or keep any other key.
- Hotkeys Vale registers with Windows. Search on Ctrl+Alt+Space is on by default.
- Removable devices, for the Devices page and safe eject.
- UI Automation element boxes, so a screenshot can snap to windows and controls.
- Explorer folders and Start Menu shortcuts, and the names of files in Desktop, Documents, Downloads, Pictures, Videos and Music, for search.
- Battery, CPU, memory, disks and running processes, for the System page.
- The pointer position, so the cat can look at it and the notch can react to it.
Deleting your data
- Disconnect Google. Settings > Integrations > Disconnect deletes the token file only. It does not revoke Vale's access at Google, and the cached events stay on your PC. To revoke access, open myaccount.google.com/permissions and remove Vale. To remove the cache, delete
%APPDATA%\Vale\calendar-cache.json. - Clipboard and notification history. Turning off saving for either one deletes its file.
- Uninstall. Run
irm https://raw.githubusercontent.com/hartono0297/vale/main/uninstall.ps1 | iex. This keeps your data in%APPDATA%\Vale. To delete it too, run$env:DI_PURGE = '1'first, in the same PowerShell window, then the command above. - Delete the folder yourself. Removing
%APPDATA%\Valedeletes everything Vale keeps there. It does not remove the screenshots you saved, which are in your Windows Screenshots folder, outside that folder. Delete those in File Explorer.
The uninstall script removes Vale's autostart value and the Claude Code hooks Vale added. It never removes the screenshots you saved, the entries Vale added to Mole's whitelist, the settings.json.bak-vale backup, or the access you granted at Google.
Children
Vale is not directed at children under 13. Vale collects nothing from anyone, because there is no Vale server to collect it.
Changes to this policy
When this policy changes, the new version goes on this page with a new date. The history of every change is in the GitHub repository.
Contact
Questions about privacy go to GitHub Issues. There is no email address for Vale.