Registry Keys
WindowSill's standalone installer supports centralized configuration via Windows Registry. All settings are stored under HKLM\SOFTWARE\WindowSill\ and apply machine-wide.
Registry keys take the highest priority in the settings hierarchy, overriding both parent and sub-organization dashboard settings. This enables device-specific configurations or air-gapped deployments. For the complete settings hierarchy, see Organizations.
Note
Registry-based configuration is only available with the Standalone Installer (WindowSill Pro). The Microsoft Store version does not support registry policies.
Quick Reference
| Category | Keys |
|---|---|
| Core Settings | AllowedExtensions, DeviceToken, UserEmail |
| Privacy & Security | ScreenRecordingProtection, AnonymousUsageTelemetry |
| AI Providers | Anthropic, Azure OpenAI, Google, OpenAI, OpenRouter, xAI |
| Local AI | Foundry Local, Ollama |
Data Formats
Most registry values are stored as REG_SZ (string) types. Complex values use JSON encoding:
| Format | Description | Example |
|---|---|---|
| String | Plain text | my-api-key-123 |
| String as JSON | JSON-encoded string | "my-api-key-123" |
| String[] as JSON | JSON array of strings | ["model-a","model-b"] |
| Boolean as JSON | JSON boolean | true or false |
Core Settings
AllowedExtensions
Controls which extensions WindowSill can load.
| Property | Value |
|---|---|
| Path | HKLM\SOFTWARE\WindowSill\AllowedExtensions |
| Type | REG_SZ |
| Format | Semicolon-separated Package IDs |
Behavior:
- Not set: All extensions allowed (default)
- Empty string: No extensions allowed
- Package ID list: Only listed extensions allowed
Example:
WindowSill.MediaControl;WindowSill.ClipboardHistory
Tip
Find Package IDs on extension detail pages or by extracting the .nuspec file from a .wsext package.
DeviceToken
Enables silent authentication by linking installations to your organization.
| Property | Value |
|---|---|
| Path | HKLM\SOFTWARE\WindowSill\DeviceToken |
| Type | REG_SZ |
| Format | Plain string |
Generate tokens in the WindowSill Dashboard. See Installation Guide for detailed usage.
UserEmail
Specifies the user's email address for device token authentication.
| Property | Value |
|---|---|
| Path | HKLM\SOFTWARE\WindowSill\UserEmail |
| Type | REG_SZ |
| Format | Plain string |
Example:
john.doe@contoso.com
General Settings
CheckUpdateAutomatically
Allow or forbid WindowSill to automatically check for updates and let the user know when an update is available. Updates are not installed automatically. Users need to navigate to settings to update the app. Updates need administrator right on the computer. It is recommend to disable this setting if users are not administrator of their machines.
Set the value to true to allow WindowSill to automatically check for updates.
| Property | Value |
|---|---|
| Path | HKLM\SOFTWARE\WindowSill\WindowSill.CheckUpdateAutomatically |
| Type | REG_SZ |
| Format | Boolean as JSON |
Example:
true
Privacy & Security Settings
ScreenRecordingProtection
Prevents screen recording and screenshot tools from capturing WindowSill content.
| Property | Value |
|---|---|
| Path | HKLM\SOFTWARE\WindowSill\WindowSill.ScreenRecordingProtection |
| Type | REG_SZ |
| Format | Boolean as JSON |
Example:
true
AnonymousUsageTelemetry
Controls whether anonymous usage & health telemetry is sent online to improve WindowSill.
| Property | Value |
|---|---|
| Path | HKLM\SOFTWARE\WindowSill\WindowSill.AnonymousUsageTelemetry |
| Type | REG_SZ |
| Format | Boolean as JSON |
Example:
false
AI Provider Settings
WindowSill supports multiple AI providers. Each provider has three configurable settings:
| Setting Type | Purpose |
|---|---|
| ApiKey | Authentication key for the provider |
| DefaultModel | Model used when user hasn't selected one |
| AllowedModels | Restricts which models users can select |
Note
When AllowedModels is set, users can only choose from the specified models. If not set, all available models for that provider are shown.
Anthropic
| Setting | Path | Format |
|---|---|---|
| API Key | HKLM\SOFTWARE\WindowSill\AnthropicSettings.AnthropicApiKey |
String as JSON |
| Default Model | HKLM\SOFTWARE\WindowSill\AnthropicSettings.AnthropicDefaultModel |
String as JSON |
| Allowed Models | HKLM\SOFTWARE\WindowSill\AnthropicSettings.AnthropicAllowedModels |
String[] as JSON |
Example values:
AnthropicApiKey: "sk-ant-api03-..."
AnthropicDefaultModel: "claude-sonnet-4-20250514"
AnthropicAllowedModels: ["claude-sonnet-4-20250514","claude-3-5-haiku-20241022"]
Azure OpenAI
| Setting | Path | Format |
|---|---|---|
| Endpoint | HKLM\SOFTWARE\WindowSill\AzureOpenAISettings.AzureOpenAIEndpoint |
String as JSON |
| API Key | HKLM\SOFTWARE\WindowSill\AzureOpenAISettings.AzureOpenAIApiKey |
String as JSON |
| Default Model | HKLM\SOFTWARE\WindowSill\AzureOpenAISettings.AzureOpenAIDefaultModel |
String as JSON |
| Allowed Models | HKLM\SOFTWARE\WindowSill\AzureOpenAISettings.AzureOpenAIAllowedModels |
String[] as JSON |
Example values:
AzureOpenAIEndpoint: "https://contoso.openai.azure.com/"
AzureOpenAIApiKey: "abc123..."
AzureOpenAIDefaultModel: "gpt-4o"
AzureOpenAIAllowedModels: ["gpt-4o","gpt-4o-mini"]
| Setting | Path | Format |
|---|---|---|
| API Key | HKLM\SOFTWARE\WindowSill\GoogleSettings.GoogleApiKey |
String as JSON |
| Default Model | HKLM\SOFTWARE\WindowSill\GoogleSettings.GoogleDefaultModel |
String as JSON |
| Allowed Models | HKLM\SOFTWARE\WindowSill\GoogleSettings.GoogleAllowedModels |
String[] as JSON |
Example values:
GoogleApiKey: "AIza..."
GoogleDefaultModel: "gemini-2.0-flash"
GoogleAllowedModels: ["gemini-2.0-flash","gemini-1.5-pro"]
OpenAI
| Setting | Path | Format |
|---|---|---|
| API Key | HKLM\SOFTWARE\WindowSill\OpenAISettings.OpenAIApiKey |
String as JSON |
| Default Model | HKLM\SOFTWARE\WindowSill\OpenAISettings.OpenAIDefaultModel |
String as JSON |
| Allowed Models | HKLM\SOFTWARE\WindowSill\OpenAISettings.OpenAIAllowedModels |
String[] as JSON |
Example values:
OpenAIApiKey: "sk-proj-..."
OpenAIDefaultModel: "gpt-4o"
OpenAIAllowedModels: ["gpt-4o","gpt-4o-mini","o1-preview"]
OpenRouter
| Setting | Path | Format |
|---|---|---|
| API Key | HKLM\SOFTWARE\WindowSill\OpenRouterSettings.OpenRouterApiKey |
String as JSON |
| Default Model | HKLM\SOFTWARE\WindowSill\OpenRouterSettings.OpenRouterDefaultModel |
String as JSON |
| Allowed Models | HKLM\SOFTWARE\WindowSill\OpenRouterSettings.OpenRouterAllowedModels |
String[] as JSON |
Example values:
OpenRouterApiKey: "sk-or-..."
OpenRouterDefaultModel: "anthropic/claude-sonnet-4"
OpenRouterAllowedModels: ["anthropic/claude-sonnet-4","openai/gpt-4o"]
xAI
| Setting | Path | Format |
|---|---|---|
| API Key | HKLM\SOFTWARE\WindowSill\XAISettings.XAIApiKey |
String as JSON |
| Default Model | HKLM\SOFTWARE\WindowSill\XAISettings.XAIDefaultModel |
String as JSON |
| Allowed Models | HKLM\SOFTWARE\WindowSill\XAISettings.XAIAllowedModels |
String[] as JSON |
Example values:
XAIApiKey: "xai-..."
XAIDefaultModel: "grok-2"
XAIAllowedModels: ["grok-2","grok-2-mini"]
Local AI Settings
For organizations running local AI infrastructure, WindowSill supports Foundry Local and Ollama.
Foundry Local
| Setting | Path | Format |
|---|---|---|
| Default Model | HKLM\SOFTWARE\WindowSill\FoundryLocalSettings.DefaultModel |
String as JSON |
| Allowed Models | HKLM\SOFTWARE\WindowSill\FoundryLocalSettings.FoundryLocalAllowedModels |
String[] as JSON |
Example values:
DefaultModel: "phi-4"
FoundryLocalAllowedModels: ["phi-4","phi-3.5-mini"]
Ollama
| Setting | Path | Format |
|---|---|---|
| Endpoint | HKLM\SOFTWARE\WindowSill\OllamaSettings.Endpoint |
String as JSON |
| Default Model | HKLM\SOFTWARE\WindowSill\OllamaSettings.DefaultModel |
String as JSON |
| Allowed Models | HKLM\SOFTWARE\WindowSill\OllamaSettings.OllamaAllowedModels |
String[] as JSON |
Example values:
Endpoint: "http://localhost:11434"
DefaultModel: "gpt-oss:20b"
OllamaAllowedModels: ["gpt-oss:20b","deepseek-r1:8b","qwen3:8b"]
Deployment Examples
PowerShell: Configure API Keys
# Set OpenAI API key for all users
$regPath = "HKLM:\SOFTWARE\WindowSill"
New-Item -Path $regPath -Force | Out-Null
Set-ItemProperty -Path $regPath -Name "OpenAISettings.OpenAIApiKey" -Value '"sk-proj-your-key-here"'
Set-ItemProperty -Path $regPath -Name "OpenAISettings.OpenAIDefaultModel" -Value '"gpt-4o"'
PowerShell: Restrict Extensions
$regPath = "HKLM:\SOFTWARE\WindowSill"
Set-ItemProperty -Path $regPath -Name "AllowedExtensions" -Value "WindowSill.MediaControl;WindowSill.ClipboardHistory"
PowerShell: Enable Privacy Protection
$regPath = "HKLM:\SOFTWARE\WindowSill"
Set-ItemProperty -Path $regPath -Name "WindowSill.ScreenRecordingProtection" -Value "true"
Set-ItemProperty -Path $regPath -Name "WindowSill.AnonymousUsageTelemetry" -Value "false"