# Git

Manage git commits with a language model
## Install
```bash
npm i -g @agent-smith/feat-git
```
Add the plugin to your `config.yml` file and run the `conf` command to update the cli.
```yml
plugins:
- "@agent-smith/feat-git"
```
```bash
lm conf
```
## Usage
Use the commit command: in a git repository with uncommited
or staging modifications:
```bash
lm commit
```
With options:
```bash
lm commit src
```
The model will generate the whole message. To use a custom first line message:
```bash
lm commit --msg "Custom first line"
```
The command will prompt the user to commit or not once the message is generated
### Variables
Optional variables are available.
To give additionnal instructions to the model:
```bash
lm commit --instructions "Omit the version number change"
```
To use a package name in the generated first line message:
```bash
lm commit --pkg "git plugin"
```
## Models
The default model is qwencoder 30b a3b. To use another model:
```bash
lm commit -m mymodel
```
With template:
```bash
lm commit -m "gemma3:4b-it-q8_0" -t "gemma"
```
Format: `-m modelname -t templatename`. If the template name is omitted it will
be guessed (works with most well known models), example:
```bash
lm commit -m "deepseek-coder-v2:16b-lite-instruct-q8_0"
```
In this example the Deepseek v2 template will be guessed
Next: Filesystem