With the proper security permissions requested from the user (at plugin install time), a plugin can:

  • CRUD (Create, Read, Update, Delete) operations on the following items:
    • Connections
    • Connection Groups
    • Port Forwards
    • Snippets

  • Launch background JuiceSSH sessions to an existing connection
  • Attach to a background JuiceSSH session (show a terminal)
  • Interact with JuiceSSH sessions to send commands and receive the output of the command (only on sessions the plugin initiated)
  • Disconnect sessions

For security reasons - plugins are not able to read/modify identities (passwords/private keys).

The above options allow plenty of clever plugin implementations such as:

  • Plugins that sync your connection list with a third party provider (eg: DigitalOcean or RackSpace).
  • Plugins that run a command on a periodic basis and graph the results (eg: Performance graphing).
  • Automation plugins that perform actions based on geographic location etc.
  • Plugins that perform an action, then launch an SSH session (such as port knocking or wake-on-lan).
  • Plugins that provide GUI interfaces around CLI applications (eg: A list of /etc/init.d services that can be stopped/started/restarted) 

If you have an idea for a plugin and are not sure whether it's technically possible, or if you want to create a plugin but are short of ideas please feel free to join our G+ community where we have a forum dedicated to plugin development: