Skip to content

Enterprise Policy

Pia reads %ProgramData%\Pia\policy.json at startup. IT administrators can use it to set defaults or lock specific settings on managed devices.

C:\ProgramData\Pia\policy.json

Standard users can read this folder; only administrators can write to it. Users can’t override the file from inside Pia.

policy.json has two top-level sections, both shaped like Pia’s user-settings schema:

  • defaults — applied whenever the user’s setting still matches Pia’s built-in default. If the user has already changed a setting, the policy default does not overwrite it.
  • enforce — pinned values. The corresponding controls in Pia’s settings UI are disabled so the user can’t change them. If the same property appears in both sections, enforce wins.

All property names use camelCase. Unknown properties are ignored. Invalid JSON is logged as a warning and the policy is not applied — check the application log if a policy doesn’t seem to take effect.

PropertyTypeDefaultDescription
theme"System" | "Dark" | "Light""System"UI theme
uiLanguage"EN" | "DE" | "FR""EN"Interface language
targetLanguage"EN" | "DE" | "FR"unsetDefault output language for Optimize
targetSpeechLanguage"Auto" | "EN" | "DE" | "FR""Auto"Speech recognition language
defaultOutputAction"CopyToClipboard" | "AutoType" | "PasteToPreviousWindow""CopyToClipboard"What happens after Optimize finishes
autoTypeDelayMsinteger10AutoType delay in milliseconds
defaultTemplateIdGUIDunsetDefault optimization template
whisperModel"Tiny" | "Base" | "Small" | "Medium" | "Large""Base"Speech-to-text model size
ttsEnabledboolfalseEnable text-to-speech
ttsVoiceModelKeystring"en_US-lessac-medium"TTS voice identifier
startMinimizedboolfalseLaunch hidden in the system tray
launchAtStartupbooltrueStart Pia when Windows starts
showTodoPanelButtonbooltrueShow the todo panel button in the main window
autoUpdateEnabledbooltrueAllow auto-update on launch
syncEnabledboolfalseEnable Pia Cloud sync
serverUrlstringunsetPia Cloud server URL (for self-hosting)
trustSelfSignedCertificatesboolfalseAccept self-signed TLS certificates
useSameProviderForAllModesbooltrueUse one AI provider across Optimize/Assistant/Research
modeProviderDefaultsobject{}Map of conversation mode to AI provider GUID
privacyobjectsee belowPrivacy settings (nested)

privacy is a nested object:

PropertyTypeDefaultDescription
tokenizationEnabledbooltrueReplace PII with tokens before sending text to the AI
{
"defaults": {
"uiLanguage": "DE",
"targetLanguage": "DE",
"whisperModel": "Small"
},
"enforce": {
"theme": "Dark",
"serverUrl": "https://pia.corp.example.com",
"syncEnabled": true
}
}

In this example, German is the starting language but users can switch to English or French. The theme is pinned to Dark, sync is mandatory, and the Pia Cloud URL is locked to the company’s self-hosted server.

  1. Create or edit C:\ProgramData\Pia\policy.json on each managed device (e.g. via your endpoint management system).
  2. Validate the JSON.
  3. Have users close and reopen Pia.

Settings under enforce appear grayed out in Pia’s settings UI; defaults appear normally.