@@ -39,6 +39,7 @@ Git-Iris offers a suite of AI-powered tools to enhance your Git workflow:
3939- ** Dynamic Changelog Generation** : Create structured changelogs between any Git references
4040- ** Comprehensive Release Notes** : Generate release notes with summaries and key changes
4141- ** MCP Integration** : Connect directly with Claude, Cursor, VSCode and other compatible AI tools
42+ - ** Project-Specific Configuration** : Maintain shared project settings in version control
4243
4344### 💪 Advanced Capabilities
4445
@@ -153,7 +154,11 @@ For detailed instructions, examples, and CI/CD integration, see our [Docker Usag
153154
154155## ⚙️ Configuration
155156
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:
157162
158163``` bash
159164# For OpenAI
@@ -173,6 +178,26 @@ git-iris config --provider ollama
173178git-iris config --provider < provider> --api-key YOUR_API_KEY
174179```
175180
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+
176201### Supported LLM Providers
177202
178203Git-Iris supports the following LLM providers:
@@ -191,9 +216,6 @@ Git-Iris supports the following LLM providers:
191216Additional configuration options:
192217
193218``` bash
194- # Set default provider
195- git-iris config --default-provider openai
196-
197219# Enable/Disable Gitmoji
198220git-iris config --gitmoji true
199221
@@ -217,6 +239,18 @@ For more detailed configuration information, please refer to our [Configuration
217239
218240## 📖 Usage
219241
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+
220254Generate an AI-powered commit message:
221255
222256``` bash
@@ -227,13 +261,11 @@ Options:
227261
228262- ` -a ` , ` --auto-commit ` : Automatically commit with the generated message
229263- ` -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
231265- ` --preset ` : Use a specific instruction preset
232266- ` --no-gitmoji ` : Disable Gitmoji for this commit
233- - ` -l ` , ` --log ` : Enable logging to file
234267- ` -p ` , ` --print ` : Print the generated message to stdout and exit
235268- ` --no-verify ` : Skip verification steps (pre/post commit hooks)
236- - ` -r ` , ` --repo ` : Specify a remote repository URL instead of using the local repository
237269
238270Example:
239271
@@ -247,6 +279,102 @@ To generate a commit message and print it to stdout without starting the interac
247279git-iris gen --print
248280```
249281
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+
250378### Working with Remote Repositories
251379
252380Git-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
267395
268396Note: When working with remote repositories, Git-Iris operates in read-only mode. You can't commit changes directly to remote repositories.
269397
270- ### Using MCP with AI Tools
398+ ### MCP Server for AI Integration
271399
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 :
273401
274402``` bash
275- # Start MCP server (default stdio transport)
276403git-iris serve
404+ ```
405+
406+ Options:
277407
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
280417```
281418
282419This 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
286423All 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.
287424
288425** Example (local path):**
426+
289427``` json
290428{
291429 "from" : " v1.0.0" ,
@@ -296,6 +434,7 @@ All MCP tools **require** the `repository` parameter, which must be a local proj
296434```
297435
298436** Example (remote URL):**
437+
299438``` json
300439{
301440 "from" : " v1.0.0" ,
@@ -351,71 +490,6 @@ The review includes:
351490 - Test Coverage - Analyzes test coverage gaps or brittle tests
352491 - Best Practices - Checks adherence to language-specific conventions and design guidelines
353492
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-
419493## 🎛️ Custom Instructions and Presets
420494
421495Git-Iris offers two powerful ways to guide the AI in generating commit messages: custom instructions and presets.
0 commit comments