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

Setup and permissions

Getting Amri running the first time is short. There is one real permission step, and one command that tells you whether everything is in order.

The one permission step

Amri drives games by emitting keypresses, mouse actions, and controller buttons through a virtual input device. Creating that device needs a one-time system permission granted to your user account. On many machines the permission is already present and you do not have to do anything. Where it is missing, Amri cannot inject input until you install the rule.

Install it with:

sudo amri setup install-udev

This installs Amri's copy of the access rule. Log out and back in afterwards (the permission applies at login), or unplug and replug a controller, then launch Amri again.

Why root, once

install-udev writes a system rule, so it needs sudo. It is a one-time step. The permission persists across reboots, and Amri never asks for root to run normally.

Running in the background

To have Amri run on login and keep listening in the background, install its user service:

amri setup install-service

This enables and starts the service for your account. It does not need sudo. If you prefer to launch Amri by hand instead, you can skip this step.

Check that everything is set up

Run the built-in check-up:

amri doctor

doctor checks that Amri can inject input on your machine, and reports the most recent problem it recorded during real use, in plain language. Run it whenever something is not working.

If the input check fails, doctor points you back at amri setup install-udev. See Diagnostics for the debug bag and log levels, and Audio for microphone and device selection.

Where the config lives

On first launch Amri seeds engine.toml with defaults. This is your copy: edit it freely. Amri never overwrites it on upgrade. Every setting is shown at its default value, the active ones uncommented and the rest commented out, so removing a # is all it takes to change one.

engine.toml holds engine-level settings such as the profile to start active, log verbosity, and preferred audio devices. Discover audio device names to put there with:

amri --list-devices