Create your plugin

Why keeping your great Jarvis commands just for you? Share them and have the whole community using them!
It's easy, and a great way to make one's contribution to the project.

This is the 10 steps guide to create a plugin for Jarvis and publish it on the Store.
It will help you create a new plugin from a template (easiest way is to Fork it), update it, commit your changes and fill in a short form to publish it on the Store.

Ready? Let's go!
 

  1. Go to the jarvis-plugin repo and Fork it
    image
     
  2. Open the Settings of your cloned repository...


    ...and name it (It is a good practice to prefix it with "jarvis-")

     

  3. Clone it locally to your computer


     

  4. There is one folder per language code. If your plugin is not in English, rename this folder accordingly (ex: fr, es, de, it...)
    Important: Users will only be able to use plugins which provide a folder in the language they use for Jarvis
    jarvis-weather-wunderground/
    ├── README.md                  # description of your plugin
    ├── fr/                        # language folder (can be cloned for new languages)
    │   ├── commands.md            # where commands are defined in french
    │   └── functions.sh           # (optional) custom functions to use in commands
    ├── config.sh                  # (optional) variables to be set by the end user
    ├── install.sh                 # (optional) script to install external dependencies
    └── uninstall.sh               # (optional) script to uninstall external dependencies
  5. Update README.md file and fillin Description, Uage & Author sections.
    The content of this file will be embedded in the Store as well as within Jarvis app.
     
  6. Add your commands in the commands file (like injarvis-commands), ex:
    *METEO*==say "Il fait beau"
    
  7. (Optionnal) If you need configuration variables, add them in the config.sh file:
    ⚠️  To avoid conflicts, previx your variables with jv_ (JarVis) pg_ (PluGin) xx_ (a 2 letters code for your plugin, ex ww for Weather Wunderground)
    jv_pg_ww_city="Grasse" # some details on the variable

    and use them in your commands:

    *METEO*==say "Il fait toujours beau à $jv_pg_ww_city"

    During the plugin installation, the user will be asked to fill in those variables

    (Optionnal) If you need to create functions for more advanced commands, define them in the functions.sh file:

  8. jv_pg_ww_check_weather () {
        ...
        # you can use $pj_pg_ww_city here
        ...
    }

    and use it in your commands:

    *METEO*==say "$(jv_pg_ww_check_weather)"

    Check out the Public API Reference for other Jarvis functions you can use in your plugins
     

  9. To test your plugin, you can temporarily create a symbolic link to your plugin in plugins/ folder
    ln -s path/to/your/plugin path/to/jarvis/plugins
  10. Commit your changes
    image
     

Finally, Click below to register it on the store

Register my plugin

Yout plugin will be visible to all on the Store and within Jarvis app