Prompt Management
View and edit the AI prompt used for generating commit message, for description and subject respectively:
File-based Prompt Management
# View current prompt
gim prompt
# Open the prompt files in default file manager for editing
gim prompt --edit
# Edit a specific prompt file with default editor
gim prompt --edit --prompt diff
# Edit a specific prompt file with custom editor,
# like 'code', 'vim' or any other text editor available on your Mac
gim prompt --edit --prompt subject --editor code
# Reset both diff and subject prompts to default
# By removing prompt files if they exist
gim prompt --reset
The -prompt option can take these params:
d,diff,diff_promptfor summarizing file changes, which will be used as the commit description.s,subject,subject_promptfor generating the commit subject based on the summary of file changes.
Local Project Prompts (.gim directory)
You can create project-specific prompt files by creating a .gim directory in your git repository root:
# Create .gim directory in your project
mkdir .gim
# Create project-specific diff prompt
echo "Analyze changes for this project's specific needs" > .gim/diff_prompt.txt
# Create project-specific subject prompt
echo "Generate commit messages following our team's conventions" > .gim/subject_prompt.txt
File Structure
your-project/
├── .git/
├── .gim/
│ ├── diff_prompt.txt # Custom diff analysis prompt
│ └── subject_prompt.txt # Custom commit message prompt
├── src/
└── ...
Benefits of .gim Directory
- Team Consistency: All team members use the same prompts when working on the project
- Project-Specific: Tailor prompts to your project's specific requirements and conventions
- Version Control: Include prompt files in git for consistent team usage
- Priority: Local
.gimprompts override global config prompts but can be overridden by command-line arguments
Priority Order
The prompts are used in the following priority order:
- Command-line arguments (
--diff-prompt/--subject-prompt) - Temporary override for single use - Local
.gimdirectory - Project-specific prompt files (if they exist) - Config directory - Global prompt files managed with
gim prompt - Built-in defaults - Default prompts included with the tool
This allows you to:
- Set up project-specific prompts in a .gim directory for consistent team usage
- Override them temporarily with command-line arguments for special cases
- Fall back to global prompts when no project-specific ones exist
- Use built-in defaults as the final fallback
Command-line Custom Prompts
You can also override prompts temporarily using command-line arguments without modifying files:
# Use custom diff prompt for a single commit
gim --diff-prompt "Summarize each file change focusing on security implications"
# Use custom subject prompt for a single commit
gim --subject-prompt "Generate a concise commit message following conventional commit format"
# Use both custom prompts together
gim --diff-prompt "Analyze changes for performance impact" --subject-prompt "Create performance-focused commit message"
# Combine with other options
gim -a --diff-prompt "Review changes for breaking changes" --subject-prompt "Generate breaking change commit"
# Test custom prompts with dry run
gim --dry --diff-prompt "Test prompt" --subject-prompt "Test subject"