Skip to content

Developing Plugins ​

In NovaChat, plugins are the primary way to extend the application's functionality. They can be used to support new LLMs, create custom Bots, or integrate other features.

Principle ​

Plugins need to be developed using JavaScript. When using a plugin, NovaChat will run the plugin in a WebWorker and use message communication to call the plugin's functions.

Runtime Environment ​

It's important to note that plugins run in a WebWorker, so they cannot access the DOM. Additionally, the following APIs are blocked and should not be used:

  • Cache-related: localStorage/sessionStorage/indexedDB/cookie, consider using the settings API instead
  • Remote code: including eval/Function/import/import(), which are synonymous with insecurity. Please bundle all code into a single file

Plugin Types ​

Currently, plugins are mainly divided into two categories: LLM Provider and Bot. Although both can be used in NovaChat, the latter doesn't require custom API keys and will only use the configured default LLM Model.

Acknowledgements ​

The plugin system has drawn inspiration from many excellent designs, such as VSCode for Web, Figma, Joplin, and others.

Released under the MIT License.