Marionette is a remote protocol that lets out-of-process programs communicate with, instrument, and control Gecko-based browsers.
Within the central tree, Marionette is used in most TaskCluster test jobs to instrument Gecko. It can additionally be used to write different kinds of functional tests:
The Marionette Python client is used in the Mn job, which is generally what you want to use for interacting with web documents
Marionette supports to various degrees all the Gecko based applications, including Firefox, Thunderbird, Fennec, and Fenix.
Some further documentation can be found here:
Bugs are tracked in the Testing :: Marionette component.