Skip to content
Version v0.35 ยท supported
[WIP] Pending copyedit and approval.

System overrides

Amri adds a small set of built-in commands to every profile you load. These are the "Amri, ..." commands, spoken with the reserved wake-word amri. Because they are always present, a profile that defines its own command with the same name would clash with them, and Amri handles that clash explicitly.

The built-in system commands

Amri ships a small set of engine-level commands and merges them into whatever profile you load, so they are available everywhere. They are keyed on the reserved word amri, for example a command to drop a manual profile override and return to the auto-selected default. You do not install them; they come with Amri.

When a profile clashes with them

If a profile defines a command with the same name as one of these built-in commands, Amri refuses to load that profile and reports an overlay conflict that points you at the allowlist below. This is the default, so a profile you downloaded cannot quietly replace a built-in command.

To allow the override, you add the profile's name to your own engine.toml. The permission lives in the file you control, never inside the profile, so a profile cannot grant itself the right to replace a built-in command:

# engine.toml, the file you control
[security]
permit_system_overrides_for = ["my_personal_overlay"]

The list holds profile names. Naming a profile here grants it permission to override the built-in commands as a whole; the permission is per profile, not per command. When a permitted profile does override a built-in command, Amri records a warning at startup naming each command it replaced.

Example

Amri's built-in commands include one that returns to the auto-selected profile:

# Amri's built-in system command (installed with Amri; you do not edit this)
[[command]]
name = "amri_release_profile"
lua = "amri.profile.release()"
[command.trigger]
pattern = "Amri release profile"

If your own profile also defines a command named amri_release_profile, the load fails with an overlay conflict until you list your profile in permit_system_overrides_for.

The reserved wake-word

The amri word at the start of these patterns is reserved for the built-in commands. To add your own "Amri, ..." command that reuses one of their names, allow the override as above. See Trust for how Amri decides what a profile may do.