Configuration System

TEMU has a small YAML based configuration system for process-wide settings.

Configuration File Location

By default, TEMU reads its configuration from:

~/.config/temu/config.yaml

The ~/.config/temu/ directory is created automatically during startup if it does not already exist.

The configuration file can be overridden on the command line:

temu --config-file /path/to/config.yaml

File Format

Configuration values are looked up by slash-separated paths such as logging/stderr. Each path component maps to one YAML level.

For example, the following YAML sets three TEMU configuration values:

logging:
  stderr: true

license:
  checkout-script: /home/user/.config/temu/license-checkout.temu

python:
  lib3_13: /opt/python3.13/lib/libpython3.13.so

Only scalar YAML values are read by the configuration API. If a key is missing, has the wrong type, or the configuration file cannot be loaded, TEMU falls back to the default value supplied by the caller.

Access Patterns

The configuration API provides these lookup functions:

  • temu_configGetBool()

  • temu_configGetString()

  • temu_configGetSigned()

  • temu_configGetUnsigned()

  • temu_configGetDouble()

The TEMU command line also exposes helper commands for inspecting values:

  • config-bool <path>

  • config-str <path>

  • config-int <path>

  • config-uint <path>

  • config-float <path>

Queried Configuration Variables

The following table lists every configuration variable currently queried through temu_configGet*().

Table 1. Currently Queried Configuration Variables
Path Type Default Description Related override

gdb/log-commands

bool

false

Enables extra logging of GDB remote protocol commands in the built-in GDB server.

TEMU_GDB_SERVER_LOG_COMMANDS

license/checkout-script

string

not set

If set, TEMU executes the referenced command file with immediately after successful license initialization.

none

logging/stderr

bool

false

Selects stderr instead of stdout for the standard text logging backend.

TEMU_LOG_STDERR, --log-stderr

models/mec/debug

bool

false

Enables extra debug behavior for the MEC model and emits an informational message when the device is created.

TEMU_DEBUG_MEC

plugins/loader/debug

bool

false

Enables debug tracing in the plugin loader, for example when searching plugin paths and resolving library names.

TEMU_DEBUG_PLUGIN_LOADER

python/lib3_13

string

not set

Overrides the shared-library path used when TEMU loads Python 3.13 support with dlopen(). If unset, TEMU tries a built-in list of candidate paths.

none

snapshots/json/debug

bool

false

Enables debug logging while deserializing JSON snapshots, including object creation and property restore progress.

TEMU_DEBUG_SNAPSHOTS

At the time of writing, all live configuration queries are for bool and string values. The signed, unsigned, and floating-point accessors exist in the configuration system and can be inspected with the matching CLI commands, but no currently shipped code paths query named configuration variables through those accessors.