Usage Guide
Customization
You can use Qodo Merge as is with its default configuration, or customize it according to your specific organization needs using the configuration file.
The configuration file enables you to:
Customize your Git UI's look and feel.
Automate PR reviews and tools usage.
Ignore unnecessary files, folders, or PRs.
Provide custom instructions to Commands.
See the configuration documentation to learn more.
Tools and Commands
Qodo Merge offers several tools to help developers save time, improve code quality, and make the PR review process quicker and hassle-free:
Describe: Generates PR descriptions with title, type, summary, and walkthrough
Review: Provides comprehensive PR feedback, security concerns, and review effort estimates
Improve: Suggests actionable code improvements with implementation options
Ask: Answers questions about the PR code changes
Implement: Convert code review discussions into ready-to-commit code changes.
Other tools include documentation generation, test creation, component analysis, and code search.
Usage
First, make sure you've set up Qodo Merge on your platform.
How to use Qodo Merge
Once set up, there are two ways to use Qodo Merge:
Trigger tools manually with PR comments
Just comment on any pull request with a command like:
/review /describe /ask "What's going on in this PR?"
The Qodo Merge bot will react with an 👀 emoji to indicate it has received your comment. This method of using Qodo Merge works immediately after setup.

Run tools automatically on PRs
When a PR is opened or updated, you can have Qodo Merge automatically run tools like
/review
,/describe
and others.Scroll down to learn how to configure that.

Customize Qodo Merge using the configuration file
You can customize Qodo Merge using the configuration file.
For example:
[pr_reviewer]
extra_instructions = "Answer in Japanese"
Now, when you run /review
, Qodo Merge will follow your custom instructions.
Learn more about different customization options in the configuration file documentation.
Run tools automatically for new PRs
You can trigger any Qodo Merge Tool to run automatically when a PR is opened:
[github_app] # Or [gitlab], [bitbucket_app], etc
# settings for "pull_request" event
handle_pr_actions = ['opened', 'reopened', 'ready_for_review']
pr_commands = [
"/describe --pr_description.final_update_message=false",
"/review",
"/improve",
]
Parameters
handle_pr_actions
: Sets PR actions that will trigger Qodo Merge's automatic run.pr_commands
: Defines the list of Tools that will be run automatically when a PR action happens.
In the example above, when a new PR is either opened, reopened or marked as ready for review
, Qodo Merge will run the describe
, review
and improve
tools.
Run tools automatically for open PRs
You can trigger any Qodo Merge Tool to run automatically when a commit is pushed to an open PR:
[github_app] # Or [gitlab], [bitbucket_app], etc
handle_push_trigger = true
push_commands = [
"/describe --pr_description.final_update_message=false",
"/review",
]
Parameters
handle_push_trigger
: Enables Qodo Merge to run tools when a commit is pushed to an open PR.push_commands
: Defines the list of tools that will be run automatically when a new commit is pushed to the PR.
In the example above, when new code is pushed to the PR, Qodo Merge will run the describe
and review
tools, with the specified parameters.
Customize automatic tools
You can customize how Qodo Merge tools behave when they run automatically.
How it works
You can pass custom settings directly in the pr_commands
or push_commands
list by using --<config_key>=<value>
right after the tool name.
Each tool has its own config keys. The available config keys for every tool can be found in our configuration file example.
For example, these are the config keys available for /update_changelog
:
[pr_update_changelog] # /update_changelog #
push_changelog_changes=false
extra_instructions = ""
add_pr_link=true
skip_ci_on_push=true
So if you'd like to configure update_changelog
to automatically run with some extra instructions, your configuration file would look something like this:
[github_app] # Or [gitlab], [bitbucket_app], etc
...
pr_commands = [ # Or push_commands
"/update_changelog --pr_update_changelog.extra_instructions='write changelog following the template...'",
"/improve",
]
GitHub Action
You can run Qodo Merge using GitHub Actions by setting environment variables in your workflow file .github/workflows/pr_agent.yml
.
Run tools automatically
Add these to the env
section:
env:
OPENAI_KEY: ${{ secrets.OPENAI_KEY }} # Make sure to add your OpenAI key to your repo secrets
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Make sure to add your GitHub token to your repo secrets
github_action_config.auto_review: "true" # enable\disable auto review
github_action_config.auto_describe: "true" # enable\disable auto describe
github_action_config.auto_improve: "true" # enable\disable auto improve
github_action_config.pr_actions: '["opened", "reopened", "ready_for_review", "review_requested"]'
github_action_config.auto_<toolname>
: Sets a tool to run automatically when a PR action happens.If no tools are set, all tools will run by default when a PR action happens.
github_action_config.pr_actions
: Sets PR actions that will trigger Qodo Merge's automatic run.If no PR actions are set, the default configuration is
["opened", "reopened", "ready_for_review", "review_requested"]
Output Handling
You can also configure Qodo Merge to output results (like review summaries) back into the GitHub Actions step output:
github_action_config.enable_output: "true"
The review output will be in JSON format at:
steps.<step-id>.outputs.review
The JSON structure matches what’s defined in pr_reviewer_prompts.toml
.
Customize automatic tools
To change default tool behavior, you can either:
Add more environment variables in your
.github/workflows/pr_agent.yml
file (e.g.pr_description.publish_labels=false
)Or use a configuration file in the root of your repository.
Example using the configuration file:
[pr_description]
publish_labels = false
This prevents the /describe
tool from posting PR labels.
The available config keys for every tool can be found in our configuration file example.
Last updated
Was this helpful?