
If you want, you could even publish a plugin to GitHub, and Appium can fetch its contents for you. You will not need to publish this package to the NPM registry as Appium allows you to directly install a plugin from a local directory. In this short guide, I would like to demonstrate how a user would create an Appium Plugin, how to intercept an Appium server command and to override existing commands in Appium. Appium Plugins allow users to do exactly that. However, this additional logic is completely unrelated to the test itself, and would be better as an external package (which upon installation modifies Appium code). In this case, you will most likely write this logic within the repository that contains test cases. For example, every time you find a particular button you might need to add a custom waiting time.


In order to add customizations, they would need to install Appium first and then write additional logic layered on top. It is a given that users may want to customize the existing Appium functionality available out of the box based on their test scenarios.
