GermainUX-Agent Settings (Registry)

All three components (GermainUXAgent.exe, GermainUXRumWindows.exe, GermainUXCodeProfiler.dll)
read a shared set of machine-wide settings from the registry at startup, before any
configuration has come from the GermainUX server. This is what makes them work even
before the server has been contacted.

🔖 Registry key

Key: HKLM\\SOFTWARE\\Germain Software\\Germain Agent

⚙️ When values are read

These are read once, at process startup. Changing a value here does not take effect
until the affected process is restarted:

Component

How to apply changes

GermainUXAgent.exe

restart it (or sign out/in, since it also restarts automatically at
next logon via the autostart task).

GermainUXRumWindows.exe / GermainUXCodeProfiler.dll

restarted automatically the next time
the Agent (re)detects and attaches to the target application, since a new worker/attach
happens per process launch.

📋 Machine-wide registry values

Value

Type

Default

Read by

Purpose

URL

REG_SZ

(required)

Agent, Profiler, Worker (fallback)

Base URL of your GermainUX server. The Agent won't start without it. The profiler DLL and the UI worker's HTTP data upload also fall back to this same URL when no other endpoint has been supplied to them.

Environment

REG_SZ

(empty = accept all)

Agent

Restricts which monitoring rules apply, by environment name (e.g. prod, staging). Leave blank to accept rules for any environment.

AgentLogLevel

REG_SZ

INFO

Agent

OFF / ERROR / WARN / INFO / DEBUG / TRACE. The Agent's own always-on health/status log.

WorkerLogLevel

REG_SZ

OFF

UI Worker

Same level values, independent of AgentLogLevel. Off by default — turn on only while troubleshooting a specific monitored application.






CLRLogLevel

REG_SZ

OFF

Profiler

Same level values, independent of the other two. Off by default, same reasoning as WorkerLogLevel.

LogPath

REG_SZ

%LOCALAPPDATA%\\Germain Software\\Germain Agent\\Logs

All three

Directory all log files are written to. See Troubleshooting for exact file names.

PollInterval

REG_DWORD

60

Agent

How often (seconds) the Agent polls the GermainUX server for monitoring rule changes.

MouseHook

REG_DWORD

1

Agent

Whether to install the low-level mouse hook used for raw click/mouse telemetry (0 to disable).

KeyboardHook

REG_DWORD

1

Agent

Whether to install the low-level keyboard hook used for keyboard command telemetry (0 to disable).

WorkerDebug

REG_DWORD

0

Agent

When 1, launches each UI Worker with --wait-for-debugger — a developer convenience for attaching a debugger before the worker starts running. Leave at 0 in normal use.

WorkerStopTimeoutMs

REG_DWORD

30000

Agent

How long (ms) the Agent waits for a UI Worker to exit cleanly (flushing any pending data) after its target application closes, before force-terminating it.

📁 Local monitoring rules (no server required)

Normally, monitoring rules (which application to watch, and what to collect from it) come
from the GermainUX server. You can also define a rule locally on the machine, without any
server involvement — useful for offline testing or a one-off machine that shouldn't be
centrally managed.

🔖 Local rule registry key

Key: HKLM\\SOFTWARE\\Germain Software\\Germain Agent\\Targets\\{executableName.exe}\\

Create one subkey per target executable (the subkey name is the .exe file name the
Agent should watch for), with these values:

Value

Type

Default

Purpose

ConfigFile

REG_SZ

(required)

Absolute path to a monitoring-rule JSON file. See the Monitoring Configuration Reference for its format.

Enabled

REG_DWORD

1

0 to keep the rule defined but inactive.

UiaWorkerEnabled

REG_DWORD

1

0 to suppress spawning a UI Worker for this rule (no UI/replay monitoring, e.g. for a headless process).

ClrAttachEnabled

REG_DWORD

1

0 to suppress CLR profiler attach for this rule.

A local rule for a given executable takes priority over any server-provided rule for the
same executable. Local rules appear alongside remote ones in the tray icon's
Configurations submenu (see below), so you can confirm the local rule was picked up
and inspect its resolved JSON.

🖱️ The tray icon

Right-clicking the GermainUXAgent.exe tray icon gives you:

Menu item

Description

Monitoring Enabled

a checkbox toggle for pausing/resuming all monitoring without
stopping the Agent process itself.

Refresh Config

forces an immediate re-poll of the GermainUX server instead of
waiting for the next PollInterval.

Configurations

one entry per known monitoring rule (remote rules first, local
rules below a separator). Selecting one opens a read-only window showing the rule's
name, target executable, profile, enabled/disabled state for monitoring/UI
worker/CLR attach, whether it's local or remote, and its full resolved configuration
JSON — the fastest way to confirm exactly what settings are actually in effect for a
given application.

About / Exit