Skip to content

Configuration

InControl uses Microsoft.Extensions.Configuration with JSON settings files. The main configuration sections map to strongly-typed options classes.

Section: App

SettingDefaultDescription
Theme"System"Application theme: System, Light, or Dark
ShowTrayIcontrueShow the system tray icon
MinimizeToTraytrueMinimize to tray instead of closing
StartMinimizedfalseStart the app minimized
CheckForUpdatestrueCheck for updates on startup
DataPath%LOCALAPPDATA%/InControl/dataUnused unless a caller is added. Conversations are %LOCALAPPDATA%\InControl\sessions

Section: Inference

SettingDefaultDescription
Backend"Ollama"Backend to use: Ollama only
DefaultModel"llama3.2"Model to use when none is specified
DefaultTemperature0.7Generation temperature
DefaultMaxTokens2048Maximum tokens to generate
TimeoutSeconds300Request timeout
RetryCount3Number of retry attempts for failed requests
RetryDelayMs1000Delay between retries in milliseconds

Section: Inference:Ollama

SettingDefaultDescription
BaseUrlhttp://127.0.0.1:11434Ollama API endpoint
KeepAlivetrueKeep models loaded between requests
KeepAliveMinutes5How long to keep models loaded (0 = until unload)
NumGpuLayers-1GPU layers to offload (-1 = all, 0 = CPU only)
ContextSize8192Context window size in tokens
NumThreadsnullCPU threads for inference (null = auto)

InControl supports layered JSON policy documents for organizational governance. Policies control tool usage, plugin loading, memory retention, connectivity modes, and update channels.

LevelWindows path
Organization%ProgramData%\InControl\policy.json
Team%ProgramData%\InControl\team-policy.json
User%LOCALAPPDATA%\InControl\user-policy.json

Organization policies take highest precedence and can be locked to prevent user overrides.

  • Tools — allow/deny/require-approval lists with optional constraints and time-based conditions
  • Plugins — enable/disable, max risk level, trusted authors, per-plugin allow/deny
  • Memory — max retention days, max memory count, encrypt-at-rest, auto-formation toggle
  • Connectivity — allowed modes, default mode, allowed/blocked domains
  • Updates — auto-update toggle, allowed channels (stable/beta/dev/canary), minimum version

Offline is off when the app is installed. Turning it on refuses a rented GPU, a RunPod lookup, and a model download. Chat on this PC still works. The switch does not block web search, app updates, or extension network. It is not a kill switch for every socket, and it is not the default.

Tool-URL allowlisting is a different control. See the repository file docs/CONNECTIVITY.md.

All data is stored locally on your machine:

DataLocation
Sessions%LOCALAPPDATA%\InControl\sessions\
Logs%LOCALAPPDATA%\InControl\logs\
Cache%LOCALAPPDATA%\InControl\cache\
Exports%USERPROFILE%\Documents\InControl\exports\
Support bundles%LOCALAPPDATA%\InControl\support\

Changes you make in the app are saved in %LOCALAPPDATA%\InControl\config\settings.json and laid over appsettings.json when InControl starts: theme, voice, auto-speak, volume and speed, the default model, web search, and minimize to tray. Only settings you changed are written, so the rest keep following the defaults. Delete the file to go back to every default.

Launch at startup is a Windows startup task, so Windows keeps that choice. You can also turn it off in Windows Settings, under Apps, Startup. It is available in the Store package, not a source build.

Minimize to system tray hides InControl to an icon by the clock when you minimize it. Click the icon to bring the window back, or right-click it to close the app.

ComponentMinimumRecommended
GPURTX 3060 (8GB)RTX 4080/5080 (16GB)
RAM16GB32GB
OSWindows 10 version 2004 (x64)Windows 11
.NETBundled in the Store package9.0 SDK to build from source

App won’t start (source build):

  • Check that the .NET 9 SDK is installed: dotnet --list-sdks. The Store package needs nothing else.

No models available:

  • Ensure Ollama is running: ollama serve
  • Pull a model: ollama pull llama3.2

GPU not detected:

  • Update NVIDIA drivers to the latest version
  • Check CUDA toolkit installation

Health check failures:

  • Use the “Copy Diagnostics” feature in the app to create a support bundle
  • Support bundles include logs, health reports, and sanitized config (never conversation content)

For the rental path, see Where the chat runs. Support notes live in the repository SUPPORT.md.