The Muse Automation Framework can be extended to add new steps via Java, Kotlin and JavaScript.
Java
The Java support for adding custom steps is the most complete - because all built-in and Selenium steps are built this way. A .jar added to the /lib subfolder will be auto-loaded when the project is opened.
The Muse Automation Framework contains the source code for many built-in steps for your reference. Look in the core/src/main/java/org/museautomation/builtins/step folder.
See the examples project download for an example. The project contains a Gradle build file and Java source code for a custom step.
The custom step will be accessible from the add/chooser widgets just like the built-in sources. In the example, the custom step is found under custom > Log All - it raises Message events for each parameter passed to it. The source can be found under the src folder.
Packaging
In order for Muse to know where to look for custom implementations, a muse-package attribute in the .jar manifest is required. See the Gradle build file for an example.
Kotlin
Steps can also be implemented in Kotlin just like Java. The Kotlin core libraries are included with the Muse distribution.
Javascript
Support for this is still maturing. See the examples project download for an example. There are a few .js files in the examples project folder that create custom steps that can be added to tasks (e.g. Javascript > Increment String).