> ## Documentation Index
> Fetch the complete documentation index at: https://docs.germainux.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Agent Settings(Registry)

> Registry settings that control GermainUX-Agent. They are read at process startup, so changes take effect after a restart.

> [card] [Key](#key)
>
> Registry key location

> [card] [Registry values](#registry-values)
>
> Agent settings stored here

> [card] [Local monitoring rules (no server required)](#local-monitoring-rules-no-server-required)
>
> Define rules without a server

> [card] [The tray icon](#the-tray-icon)
>
> Right-click menu options

> [!NOTE]
>
> All three components (`GermainUXAgent.exe`, `GermainUXRumWindows.exe`, `GermainUXCodeProfiler.dll`) \
> &#x20;read a shared set of machine-wide settings from the registry at startup, before any \
> &#x20;configuration has come from the GermainUX server. This is what makes them work even \
> &#x20;before the server has been contacted.

## Key

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

### When settings are read

These are read once, at process startup. Changing a value here does **not** take effect \
&#x20;until the affected process is restarted:

| Component | Restart action |
| - | - |
| `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. |

> [!NOTE]
>
> Only `URL` is written by the installer (see [Installation](https://docs.germainux.com/main/agent-installation.md)). Use regedit.exe or a deployment script if you need a non-default value.

## 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](https://docs.germainux.com/main/germainux-agent-troubleshooting.md) 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 \
&#x20;from the GermainUX server. You can also define a rule locally on the machine, without any \
&#x20;server involvement — useful for offline testing or a one-off machine that shouldn't be \
&#x20;centrally managed.

### Key for local rules

**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 \
&#x20;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](https://docs.germainux.com/main/monitoring-config-reference.md) 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 \
&#x20;same executable. Local rules appear alongside remote ones in the tray icon's \
&#x20;**Configurations** submenu (see below), so you can confirm the local rule was picked up \
&#x20;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** |   |

## Get Help

> [card] [Contact GermainUX Support](https://docs.germainux.com/main/support.md)
>
> The GermainUX team helps you get up and running faster, empower your team, turn data into actionable insights, and optimize performance to deliver measurable business outcomes.

> [card] Can't find what you need?
>
> Search all GermainUX docs with **Ctrl + K**, or use the feedback buttons at the bottom of this page to tell us what is missing.

The content of this document is proprietary to GERMAIN SOFTWARE.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.