--- sidebar_position: 1 title: Start developing plugins --- ## Learn MiniStar `MiniStar` is a complete microkernel architecture development toolchain, and the plugin architecture of `Tailchat` is developed based on `MiniStar`. Learn more about `MiniStar`, you can check the official documentation of `MiniStar`: [https://ministar.moonrailgun.com/](https://ministar.moonrailgun.com/) ## Create a base project import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; > First, make sure you have installed `tailchat-cli`, for command line tools, please refer to: [tailchat-cli](../cli/tailchat-cli) Move to the project directory (can be a custom project): ```bash tailchat create ``` Choose the template according to the actual situation ![](/img/tutorial/plugin/1.png) First, create a basic npm project and install `MiniStar` globally ```bash npm install --global mini-star ``` Execute: `ministar createPlugin` in the project to create a basic plugin Execute: `ministar buildPlugin` in the project to compile the plugin > It is worth mentioning that although `Tailchat` does not enforce the naming convention of plugins, it is still recommended to use `anti-domain name` naming method (similar to package naming in java), and then use `/` for the components in the plugin to split > > such as: > > Plugin name: `com.msgbyte.webview` > > Registration content: `com.msgbyte.webview/grouppanel` ## Install Plugin ### Manually install plugin Without any presets, a general method is to construct a `manifest` configuration by yourself, and then paste the configuration file into the tab of `tailchat` to provide manual installation plug-ins for installation. The url path of the plugin can be proxied through methods such as `oss object storage service` / `static-server` An example `manifest.json` configuration is as follows: ```json { "label": "Web Panel Plugin", "name": "com.msgbyte.webview", "url": "/plugins/com.msgbyte.webview/index.js", "version": "0.0.0", "author": "msgbyte", "description": "Provides groups with the ability to create web panels", "requireRestart": false } ``` ## other helpful resources - Plugin architecture kernel dependency library [MiniStar](https://ministar.moonrailgun.com/) - From the API provided by the base project: [API Documentation](./api/common) - Export interface source code - [@capital/common](https://github.com/msgbyte/tailchat/blob/master/client/web/src/plugin/common/index.ts) - [@capital/component](https://github.com/msgbyte/tailchat/blob/master/client/web/src/plugin/component/index.tsx)