# Plugins Custom client features can be distributed as a npm plugin. - `@agent-smith/feat-git` a command to use a language model to generate a commit message. Install: ```bash npm i -g @agent-smith/feat-git ``` Add the plugin to your `config.yml` file ```yml plugins: - "@agent-smith/feat-git" ``` Update your client config by running this command: ```bash lm conf ~/lm/features/config.yml ``` To use the plugin run the `commit` command in a git repository: ```bash lm commit # or lm commit . # or lm commit --msg "The first line of the commit" # the ai will provide the details ``` The default model used is qwencoder. To use another model: ```bash lm commit -m mymodelname ``` ## Create a plugin Create an npm package with a `package.json`: ```json { "name": "agent-smith-myplugin", "version": "0.0.1", "description": "Description of the plugin", "type": "module" } ``` Use the standard directory structure for your features in a `dist` directory: - actions - commands - workflows - tasks All directories are optional. For the development declare your features as a local folder: ```yml features: - /home/me/lm/agent-smith-myplugin/dist ``` Update your client config by running this command: ```bash lm conf ~/lm/features/config.yml ``` Once your features completed and the plugin published to npm install it globally: ```bash npm i -g agent-smith-myplugin ``` Declare it as a plugin in your cli config: ```yml plugins: - "agent-smith-myplugin" ``` Run the `lm conf` command to update Next: Inference