@@ -39,6 +39,7 @@ Git-Iris offers a suite of AI-powered tools to enhance your Git workflow:
39
39
- ** Dynamic Changelog Generation** : Create structured changelogs between any Git references
40
40
- ** Comprehensive Release Notes** : Generate release notes with summaries and key changes
41
41
- ** MCP Integration** : Connect directly with Claude, Cursor, VSCode and other compatible AI tools
42
+ - ** Project-Specific Configuration** : Maintain shared project settings in version control
42
43
43
44
### 💪 Advanced Capabilities
44
45
@@ -153,7 +154,11 @@ For detailed instructions, examples, and CI/CD integration, see our [Docker Usag
153
154
154
155
## ⚙️ Configuration
155
156
156
- Git-Iris uses a configuration file located at ` ~/.config/git-iris/config.toml ` . Set up your preferred AI provider:
157
+ Git-Iris offers both global configuration and project-specific configuration options.
158
+
159
+ ### Global Configuration
160
+
161
+ Global settings are stored in ` ~/.config/git-iris/config.toml ` and apply across all repositories:
157
162
158
163
``` bash
159
164
# For OpenAI
@@ -173,6 +178,26 @@ git-iris config --provider ollama
173
178
git-iris config --provider < provider> --api-key YOUR_API_KEY
174
179
```
175
180
181
+ ### Project-Specific Configuration
182
+
183
+ Project settings are stored in ` .irisconfig ` in your repository root and can be shared with your team without sharing sensitive credentials:
184
+
185
+ ``` bash
186
+ # Set project-specific LLM provider
187
+ git-iris project-config --provider anthropic
188
+
189
+ # Configure project-specific preset
190
+ git-iris project-config --preset conventional
191
+
192
+ # Set model for the project
193
+ git-iris project-config --model claude-3-7-sonnet-20250219
194
+
195
+ # View current project configuration
196
+ git-iris project-config --print
197
+ ```
198
+
199
+ Project configuration files do not store API keys for security reasons but can store other settings like models, presets, and custom instructions.
200
+
176
201
### Supported LLM Providers
177
202
178
203
Git-Iris supports the following LLM providers:
@@ -191,9 +216,6 @@ Git-Iris supports the following LLM providers:
191
216
Additional configuration options:
192
217
193
218
``` bash
194
- # Set default provider
195
- git-iris config --default-provider openai
196
-
197
219
# Enable/Disable Gitmoji
198
220
git-iris config --gitmoji true
199
221
@@ -217,6 +239,18 @@ For more detailed configuration information, please refer to our [Configuration
217
239
218
240
## 📖 Usage
219
241
242
+ ### Global Options
243
+
244
+ These options apply to all commands:
245
+
246
+ - ` -l ` , ` --log ` : Log debug messages to a file
247
+ - ` --log-file ` : Specify a custom log file path
248
+ - ` -q ` , ` --quiet ` : Suppress non-essential output (spinners, waiting messages, etc.)
249
+ - ` -v ` , ` --version ` : Display version information
250
+ - ` -r ` , ` --repo ` : Use a remote repository URL instead of local repository
251
+
252
+ ### Generate Commit Messages
253
+
220
254
Generate an AI-powered commit message:
221
255
222
256
``` bash
@@ -227,13 +261,11 @@ Options:
227
261
228
262
- ` -a ` , ` --auto-commit ` : Automatically commit with the generated message
229
263
- ` -i ` , ` --instructions ` : Provide custom instructions for this commit
230
- - ` --provider ` : Specify an LLM provider (supports multiple providers through the llm crate)
264
+ - ` --provider ` : Specify an LLM provider
231
265
- ` --preset ` : Use a specific instruction preset
232
266
- ` --no-gitmoji ` : Disable Gitmoji for this commit
233
- - ` -l ` , ` --log ` : Enable logging to file
234
267
- ` -p ` , ` --print ` : Print the generated message to stdout and exit
235
268
- ` --no-verify ` : Skip verification steps (pre/post commit hooks)
236
- - ` -r ` , ` --repo ` : Specify a remote repository URL instead of using the local repository
237
269
238
270
Example:
239
271
@@ -247,6 +279,102 @@ To generate a commit message and print it to stdout without starting the interac
247
279
git-iris gen --print
248
280
```
249
281
282
+ ### AI-Powered Code Reviews
283
+
284
+ Get a comprehensive analysis of your staged changes:
285
+
286
+ ``` bash
287
+ git-iris review
288
+ ```
289
+
290
+ Options:
291
+
292
+ - ` -i ` , ` --instructions ` : Provide custom instructions for this review
293
+ - ` --provider ` : Specify an LLM provider
294
+ - ` --preset ` : Use a specific instruction preset
295
+ - ` -p ` , ` --print ` : Print the generated review to stdout and exit
296
+ - ` --include-unstaged ` : Include unstaged changes in the review
297
+ - ` --commit ` : Review a specific commit by ID (hash, branch, or reference)
298
+
299
+ Example:
300
+
301
+ ``` bash
302
+ git-iris review -i " Focus on security" --preset security --include-unstaged
303
+ ```
304
+
305
+ ### Generate Changelogs
306
+
307
+ Create a detailed changelog between Git references:
308
+
309
+ ``` bash
310
+ git-iris changelog --from < from-ref> --to < to-ref>
311
+ ```
312
+
313
+ Options:
314
+
315
+ - ` --from ` : Starting Git reference (commit hash, tag, or branch name)
316
+ - ` --to ` : Ending Git reference (defaults to HEAD if not specified)
317
+ - ` -i ` , ` --instructions ` : Custom instructions for changelog generation
318
+ - ` --preset ` : Select an instruction preset for changelog generation
319
+ - ` --detail-level ` : Set the detail level (minimal, standard, detailed)
320
+ - ` --gitmoji ` : Enable or disable Gitmoji in the changelog
321
+ - ` --update ` : Update the changelog file with the new changes
322
+ - ` --file ` : Path to the changelog file (defaults to CHANGELOG.md)
323
+
324
+ Example:
325
+
326
+ ``` bash
327
+ git-iris changelog --from v1.0.0 --to v1.1.0 --detail-level detailed --update
328
+ ```
329
+
330
+ ### Generate Release Notes
331
+
332
+ Create comprehensive release notes:
333
+
334
+ ``` bash
335
+ git-iris release-notes --from < from-ref> --to < to-ref>
336
+ ```
337
+
338
+ Options:
339
+
340
+ - ` --from ` : Starting Git reference (commit hash, tag, or branch name)
341
+ - ` --to ` : Ending Git reference (defaults to HEAD if not specified)
342
+ - ` -i ` , ` --instructions ` : Custom instructions for release notes generation
343
+ - ` --preset ` : Select an instruction preset for release notes generation
344
+ - ` --detail-level ` : Set the detail level (minimal, standard, detailed)
345
+ - ` --gitmoji ` : Enable or disable Gitmoji in the release notes
346
+
347
+ Example:
348
+
349
+ ``` bash
350
+ git-iris release-notes --from v1.0.0 --to v1.1.0 --preset conventional
351
+ ```
352
+
353
+ ### Project Configuration
354
+
355
+ Create or update project-specific settings:
356
+
357
+ ``` bash
358
+ git-iris project-config
359
+ ```
360
+
361
+ Options:
362
+
363
+ - ` --provider ` : Set default LLM provider for this project
364
+ - ` --model ` : Set model for the specified provider
365
+ - ` --token-limit ` : Set token limit for the specified provider
366
+ - ` --param ` : Set additional parameters for the specified provider
367
+ - ` -p ` , ` --print ` : Print the current project configuration
368
+ - ` --gitmoji ` : Enable or disable Gitmoji for this project
369
+ - ` -i ` , ` --instructions ` : Set instructions for message generation
370
+ - ` --preset ` : Set default instruction preset for this project
371
+
372
+ Example:
373
+
374
+ ``` bash
375
+ git-iris project-config --provider anthropic --preset security --model claude-3-7-sonnet-20250219
376
+ ```
377
+
250
378
### Working with Remote Repositories
251
379
252
380
Git-Iris supports working with remote repositories directly without having to clone them manually:
@@ -267,16 +395,25 @@ git-iris gen --repo https://github.com/example/repo.git --print
267
395
268
396
Note: When working with remote repositories, Git-Iris operates in read-only mode. You can't commit changes directly to remote repositories.
269
397
270
- ### Using MCP with AI Tools
398
+ ### MCP Server for AI Integration
271
399
272
- Git-Iris can be integrated with AI assistants and editors via the Model Context Protocol (MCP) :
400
+ Start an MCP (Model Context Protocol) server for integration with AI tools :
273
401
274
402
``` bash
275
- # Start MCP server (default stdio transport)
276
403
git-iris serve
404
+ ```
405
+
406
+ Options:
277
407
278
- # Start with SSE transport for editor integration
279
- git-iris serve --transport sse --port 3077
408
+ - ` --dev ` : Enable development mode with more verbose logging
409
+ - ` -t ` , ` --transport ` : Transport type to use (stdio, sse)
410
+ - ` -p ` , ` --port ` : Port to use for network transports
411
+ - ` --listen-address ` : Listen address for network transports
412
+
413
+ Example:
414
+
415
+ ``` bash
416
+ git-iris serve --transport sse --port 3077 --listen-address 127.0.0.1
280
417
```
281
418
282
419
This allows you to use Git-Iris features directly from Claude, Cursor, VSCode, and other MCP-compatible tools. See [ MCP.md] ( docs/MCP.md ) for detailed documentation.
@@ -286,6 +423,7 @@ This allows you to use Git-Iris features directly from Claude, Cursor, VSCode, a
286
423
All MCP tools ** require** the ` repository ` parameter, which must be a local project path or a remote repository URL. This is necessary because some clients (like Cursor) do not reliably provide the project root.
287
424
288
425
** Example (local path):**
426
+
289
427
``` json
290
428
{
291
429
"from" : " v1.0.0" ,
@@ -296,6 +434,7 @@ All MCP tools **require** the `repository` parameter, which must be a local proj
296
434
```
297
435
298
436
** Example (remote URL):**
437
+
299
438
``` json
300
439
{
301
440
"from" : " v1.0.0" ,
@@ -351,71 +490,6 @@ The review includes:
351
490
- Test Coverage - Analyzes test coverage gaps or brittle tests
352
491
- Best Practices - Checks adherence to language-specific conventions and design guidelines
353
492
354
- Options:
355
-
356
- - ` -i ` , ` --instructions ` : Provide custom instructions for this review
357
- - ` --provider ` : Specify an LLM provider (supports multiple providers through the llm crate)
358
- - ` --preset ` : Use a specific instruction preset
359
- - ` -p ` , ` --print ` : Print the generated review to stdout and exit
360
-
361
- Example:
362
-
363
- ``` bash
364
- git-iris review -i " Pay special attention to error handling" --provider anthropic
365
- ```
366
-
367
- This allows you to get valuable feedback on your code before committing it, improving code quality and catching potential issues early.
368
-
369
- ### Generating a Changelog
370
-
371
- Git-Iris can generate changelogs between two Git references:
372
-
373
- ``` bash
374
- git-iris changelog --from < from-ref> --to < to-ref>
375
- ```
376
-
377
- Options:
378
-
379
- - ` --from ` : Starting Git reference (commit hash, tag, or branch name)
380
- - ` --to ` : Ending Git reference (defaults to HEAD if not specified)
381
- - ` --instructions ` : Custom instructions for changelog generation
382
- - ` --preset ` : Select an instruction preset for changelog generation
383
- - ` --detail-level ` : Set the detail level (minimal, standard, detailed)
384
- - ` --gitmoji ` : Enable or disable Gitmoji in the changelog
385
-
386
- Example:
387
-
388
- ``` bash
389
- git-iris changelog --from v1.0.0 --to v1.1.0 --detail-level detailed --gitmoji true
390
- ```
391
-
392
- This command generates a detailed changelog of changes between versions 1.0.0 and 1.1.0, including Gitmoji.
393
-
394
- ### Generating Release Notes
395
-
396
- Git-Iris can also generate comprehensive release notes:
397
-
398
- ``` bash
399
- git-iris release-notes --from < from-ref> --to < to-ref>
400
- ```
401
-
402
- Options:
403
-
404
- - ` --from ` : Starting Git reference (commit hash, tag, or branch name)
405
- - ` --to ` : Ending Git reference (defaults to HEAD if not specified)
406
- - ` --instructions ` : Custom instructions for release notes generation
407
- - ` --preset ` : Select an instruction preset for release notes generation
408
- - ` --detail-level ` : Set the detail level (minimal, standard, detailed)
409
- - ` --gitmoji ` : Enable or disable Gitmoji in the release notes
410
-
411
- Example:
412
-
413
- ``` bash
414
- git-iris release-notes --from v1.0.0 --to v1.1.0 --preset conventional --detail-level standard
415
- ```
416
-
417
- This command generates standard-level release notes between versions 1.0.0 and 1.1.0 using the conventional commits preset.
418
-
419
493
## 🎛️ Custom Instructions and Presets
420
494
421
495
Git-Iris offers two powerful ways to guide the AI in generating commit messages: custom instructions and presets.
0 commit comments