Skip to content

CLI Command Reference ​

Complete reference for all Git-Iris commands and flags.

Global Flags ​

Available on all commands:

FlagShortDescription
--log-lLog debug messages to file
--log-file <PATH>Custom log file path (default: git-iris-debug.log)
--quiet-qSuppress non-essential output
--version-vDisplay version information
--repo <URL>-rUse remote repository instead of local
--debugEnable debug mode with color-coded agent execution
--theme <NAME>Override theme for this session
--help-hShow help information

Shared Flags (CommonParams) ​

Every feature command (gen, review, pr, changelog, release-notes) accepts the same set of LLM/repository flags, in addition to the command-specific ones documented below:

FlagShortDescription
--provider <NAME>Override default provider for this invocation
--model <NAME>Override model for this invocation
--instructions <TEXT>-iCustom instructions
--preset <NAME>Instruction preset name (see git-iris list-presets)
--gitmojiEnable gitmoji for this invocation (mutually exclusive)
--no-gitmojiDisable gitmoji for this invocation (mutually exclusive)
--criticEnable the critic verification pass
--no-criticDisable the critic verification pass (mutually exclusive)
--repo <URL>-rOperate on a remote repository URL instead of the local checkout

These are surfaced again in each command's Options table only when behavior is unusual; otherwise assume the full set is available.

About the critic: when enabled, Iris runs a verification + revision pass after the initial generation, catching factual errors and tightening the output before it's returned. It costs a second model call but materially improves quality. Reviews, PR descriptions, changelogs, and release notes use it by default; commit messages skip it unless you pass gen --critic.

Commands ​

gen - Generate Commit Messages ​

bash
git-iris gen [OPTIONS]

Generate AI-powered commit messages for staged changes.

Options:

FlagShortDescription
--auto-commit-aAutomatically commit with generated message
--amendAmend the previous commit with staged changes
--no-gitmojiDisable gitmoji for this commit
--print-pPrint message to stdout and exit
--no-verifySkip pre/post commit hooks
--provider <NAME>Override default provider
--model <NAME>Override model for this operation
--instructions <TEXT>-iCustom instructions
--preset <NAME>Instruction preset name
--gitmojiEnable gitmoji for this invocation
--criticOpt into critic verification for this commit
--no-criticKeep critic verification disabled

Examples:

bash
# Interactive mode (launches Studio)
git-iris gen

# Print only
git-iris gen --print

# Auto-commit
git-iris gen --auto-commit

# Use specific provider
git-iris gen --provider google --print

# Custom instructions
git-iris gen -i "Focus on security implications" --print

studio - Launch Iris Studio ​

bash
git-iris studio [OPTIONS]

Launch unified TUI for all operations.

Options:

FlagDescription
--mode <MODE>Initial mode: explore, commit, review, pr, changelog, release-notes
--from <REF>Starting ref for comparison
--to <REF>Ending ref for comparison

Unknown --mode values print a warning and fall back to auto-detect rather than erroring out.

Examples:

bash
# Auto-detect mode
git-iris studio

# Start in commit mode
git-iris studio --mode commit

# Start in PR mode with refs
git-iris studio --mode pr --from main --to feature-branch

# Start in release notes mode
git-iris studio --mode release-notes

review - Code Review ​

bash
git-iris review [OPTIONS]

Generate multi-dimensional code reviews with AI.

Options:

FlagShortDescription
--print-pPrint review to stdout
--rawOutput raw markdown without formatting
--include-unstagedInclude unstaged changes
--commit <HASH>Review specific commit
--from <REF>Starting branch for comparison
--to <REF>Target branch for comparison (alone, compares from main)
--github-reviewPublish review as a GitHub PR review comment
--pr <NUMBER>Target a specific GitHub pull request number
--github-inline-commentsAdd validated inline comments for findings in the PR diff
--github-review-event <EVENT>comment (default), request-changes, or approve
--criticEnable critic verification (default: on)
--no-criticDisable critic verification for this run

Plus all shared flags — --provider, --model, --instructions/-i, --preset, --gitmoji/--no-gitmoji, --repo/-r.

When --github-review is set, validated structured findings (with file/line locations) publish as inline review comments in the target PR; --github-inline-comments also opens individual line threads for each finding.

Examples:

bash
# Review staged changes
git-iris review

# Review specific commit
git-iris review --commit abc1234

# Review branch comparison
git-iris review --from main --to feature-branch

# Review everything from main to a target ref
git-iris review --to feature-branch

# Include unstaged changes
git-iris review --include-unstaged --print

# Publish review to the open GitHub PR for the current branch
git-iris review --github-review

# Target a specific PR with inline comments and request-changes
git-iris review --github-review --pr 123 \
  --github-inline-comments \
  --github-review-event request-changes

pr - Pull Request Descriptions ​

bash
git-iris pr [OPTIONS]

Generate pull request descriptions.

Options:

FlagShortDescription
--print-pPrint to stdout
--rawOutput raw markdown
--copy-cCopy raw markdown to clipboard
--from <REF>Starting ref (default: main)
--to <REF>Target ref (default: HEAD)
--updateUpdate the GitHub PR body (revises existing text, adapts to PR templates). Alias: --github-update
--pr <NUMBER>Target a specific GitHub pull request number when updating
--criticEnable critic verification (default: on)
--no-criticDisable critic verification for this run

Plus all shared flags — --provider, --model, --instructions/-i, --preset, --gitmoji/--no-gitmoji, --repo/-r.

Examples:

bash
# PR from main to current branch
git-iris pr

# PR from specific branch
git-iris pr --from develop --to feature-branch

# Single commit PR
git-iris pr --from abc1234

# Copy markdown to clipboard
git-iris pr --copy

# Print only
git-iris pr --print

# Update the GitHub PR body for the current branch
git-iris pr --update

# Update a specific PR number with explicit refs
git-iris pr --from main --to feature-branch --update --pr 123

changelog - Generate Changelog ​

bash
git-iris changelog --from <REF> [OPTIONS]

Generate changelog between Git references.

Options:

FlagRequiredDescription
--from <REF>YesStarting Git reference
--to <REF>NoEnding reference (default: HEAD)
--rawNoOutput raw markdown
--updateNoUpdate CHANGELOG.md file
--file <PATH>NoChangelog file path (default: CHANGELOG.md)
--version-name <NAME>NoExplicit version name
--criticNoEnable critic verification (default: on)
--no-criticNoDisable critic verification for this run

Plus all shared flags — --provider, --model, --instructions/-i, --preset, --gitmoji/--no-gitmoji, --repo/-r.

Examples:

bash
# Changelog from tag to HEAD
git-iris changelog --from v1.0.0

# Changelog between tags
git-iris changelog --from v1.0.0 --to v2.0.0

# Update CHANGELOG.md
git-iris changelog --from v1.0.0 --update

# Custom version name
git-iris changelog --from v1.0.0 --version-name "v2.0.0"

release-notes - Generate Release Notes ​

bash
git-iris release-notes --from <REF> [OPTIONS]

Generate detailed release notes.

Options:

FlagRequiredDescription
--from <REF>YesStarting Git reference
--to <REF>NoEnding reference (default: HEAD)
--rawNoOutput raw markdown
--updateNoUpdate the release notes file
--file <PATH>NoRelease notes file path
--version-name <NAME>NoExplicit version name
--criticNoEnable critic verification (default: on)
--no-criticNoDisable critic verification for this run

Plus all shared flags — --provider, --model, --instructions/-i, --preset, --gitmoji/--no-gitmoji, --repo/-r.

Examples:

bash
# Release notes from tag
git-iris release-notes --from v1.0.0

# Between tags
git-iris release-notes --from v1.0.0 --to v2.0.0

# Update RELEASE_NOTES.md
git-iris release-notes --from v1.0.0 --update

# Custom version
git-iris release-notes --from v1.0.0 --version-name "2.0.0-beta"

config - Configuration Management ​

bash
git-iris config [OPTIONS]

Configure global Git-Iris settings.

Options:

FlagDescription
--instructions <TEXT>Set default instructions across capabilities
--preset <NAME>Set default preset
--gitmojiEnable gitmoji
--no-gitmojiDisable gitmoji
--criticEnable critic verification
--no-criticDisable critic verification
--provider <NAME>Set default provider
--api-key <KEY>Set API key
--model <NAME>Set primary model
--fast-model <NAME>Set fast model
--subagent-model <MODEL>Set delegated analysis model
--token-limit <NUM>Set context-window metadata
--param <KEY=VALUE>Set additional parameters
--subagent-timeout <SECONDS>Set parallel subagent timeout (default: 120)
--subagent-max-turns <NUM>Set subagent turn budget (default: 20)

Examples:

bash
# Set provider and API key
git-iris config --provider openai --api-key sk-...

# Configure models
git-iris config --provider anthropic \
  --model claude-opus-5 \
  --fast-model claude-haiku-4-5-20251001

# Set token limit
git-iris config --provider openai --token-limit 8000

# Additional parameters
git-iris config --provider openai \
  --param reasoning='{"effort":"medium"}' \
  --param text='{"verbosity":"low"}'

project-config - Project Configuration ​

bash
git-iris project-config [OPTIONS]

Manage project-specific .irisconfig file.

Options:

FlagShortDescription
--provider <NAME>Set project provider
--instructions <TEXT>Set project instructions across capabilities
--preset <NAME>Set project preset
--gitmojiEnable gitmoji
--no-gitmojiDisable gitmoji
--criticEnable critic verification
--no-criticDisable critic verification
--model <NAME>Set project model
--fast-model <NAME>Set project fast model
--token-limit <NUM>Set project context-window metadata
--param <KEY=VALUE>Set project parameters
--subagent-timeout <SECONDS>Set parallel subagent timeout (default: 120)
--subagent-max-turns <NUM>Set subagent turn budget (default: 20)
--print-pPrint current project config

Examples:

bash
# Create project config
git-iris project-config --provider google

# Set project model
git-iris project-config --model gemini-3.8-flash

# View project config
git-iris project-config --print

list-presets - List Instruction Presets ​

bash
git-iris list-presets

Display all available instruction presets.

No options.


themes - List Themes ​

bash
git-iris themes

Display all available themes.

No options.


completions - Generate Shell Completions ​

bash
git-iris completions <SHELL>

Generate shell completion scripts.

Arguments:

ArgumentDescription
bashGenerate Bash completions
zshGenerate Zsh completions
fishGenerate Fish completions
elvishGenerate Elvish completions
powershellGenerate PowerShell completions

Examples:

bash
git-iris completions zsh >> ~/.zshrc
git-iris completions fish > ~/.config/fish/completions/git-iris.fish

hook - Manage Git Hooks ​

bash
git-iris hook <install|uninstall> [OPTIONS]

Install or uninstall the prepare-commit-msg hook.

Subcommands:

SubcommandDescription
installInstall the prepare-commit-msg hook
uninstallRemove the prepare-commit-msg hook

Options for install:

FlagDescription
--forceOverwrite an existing non-git-iris hook

Examples:

bash
git-iris hook install
git-iris hook install --force
git-iris hook uninstall

Common Workflows ​

First-Time Setup ​

bash
# Install
brew install hyperb1iss/tap/git-iris

# Configure
git-iris config --provider openai --api-key YOUR_OPENAI_API_KEY
git-iris config --provider anthropic --api-key YOUR_ANTHROPIC_API_KEY
git-iris config --provider google --api-key YOUR_GOOGLE_API_KEY

Daily Usage ​

bash
# Stage changes
git add .

# Generate commit (interactive)
git-iris gen

# Or auto-commit
git-iris gen --auto-commit

Code Review Workflow ​

bash
# Review staged changes
git add .
git-iris review

# Or review a PR branch
git-iris review --from main --to feature-branch --print

Release Workflow ​

bash
# Generate changelog
git-iris changelog --from v1.0.0 --update

# Generate release notes
git-iris release-notes --from v1.0.0 > RELEASE_NOTES.md

# Create PR description
git-iris pr --from main > pr_description.md

Debug and Troubleshooting ​

Enable Debug Logging ​

bash
# Basic logging
git-iris gen --log

# Custom log file
git-iris gen --log --log-file my-debug.log

# Color-coded agent debug
git-iris gen --debug

--debug surfaces every tool call Iris makes, including the newer code-archaeology helpers — git_blame, git_show, repo_map, and static_analysis — alongside the long-standing git_diff, file_read, code_search, workspace, project_docs, and parallel_analyze tools.

Test Configuration ​

bash
# Test with print (no commit)
git-iris gen --print

# Test specific provider
git-iris gen --provider openai --print

# Verify API key works
git-iris review --print

Remote Repository Testing ​

bash
# Test against remote repo
git-iris gen --repo https://github.com/user/repo --print

Exit Codes ​

CodeMeaning
0Success
1General error
2Configuration error
3Git error (not in repo, no staged changes)
4API error (authentication, rate limit)

Environment Variables ​

See Environment Variables for details.

VariablePurpose
OPENAI_API_KEYOpenAI authentication
ANTHROPIC_API_KEYAnthropic authentication
GOOGLE_API_KEYGoogle authentication
RUST_LOGLogging and debug output

Shell Aliases ​

Recommended aliases for common operations:

bash
# ~/.bashrc or ~/.zshrc

# Quick commit
alias gic='git-iris gen --auto-commit'

# Print commit message
alias gim='git-iris gen --print'

# Code review
alias gir='git-iris review --print'

# Launch studio
alias gis='git-iris studio'

Released under the Apache 2.0 License.