> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qodo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Chat with Qodo in pull requests

> Chat with Qodo to interact with Qodo directly inside pull requests.

export const AzureIcon = () => <svg className="azure-icon" viewBox="0 0 18 18" width="12" height="12" style={{
  display: "inline",
  verticalAlign: "middle",
  flexShrink: 0,
  background: "transparent"
}}>
    <defs>
      <linearGradient id="azure-gradient" x1="9" y1="16.97" x2="9" y2="1.03" gradientUnits="userSpaceOnUse">
        <stop offset="0" stopColor="currentColor" />
        <stop offset="0.16" stopColor="currentColor" />
        <stop offset="0.53" stopColor="currentColor" />
        <stop offset="0.82" stopColor="currentColor" />
        <stop offset="1" stopColor="currentColor" />
      </linearGradient>
    </defs>
    <path d="M17,4v9.74l-4,3.28-6.2-2.26V17L3.29,12.41l10.23.8V4.44Zm-3.41.49L7.85,1V3.29L2.58,4.84,1,6.87v4.61l2.26,1V6.57Z" fill="url(#azure-gradient)" />
  </svg>;

<div style={{ display: "flex", alignItems: "center", gap: "6px" }}>
  <Badge color="outline-purple" size="sm" shape="pill">Beta</Badge>
</div>

<Tip>Want to fix a finding without leaving the chat? Use Fix with Chat Agent to remediate issues while you chat with Qodo. Describe the change you want, iterate on the suggestion, and apply it directly to the PR.<br /> Available under Research Preview. [Learn more](/code-review/remediate-findings-in-prs)</Tip>

<Tip>The chat with Qodo is the evolution of the `/ask` command. It retains the simplicity of asking questions in your workflow while adding powerful new capabilities through advanced chat interactions and specialized commands.</Tip>

Chatting with Qodo makes pull request reviews interactive. Start a conversation by mentioning `@qodo`, `qodo`, or `/qodo` at the beginning of a PR comment, review comment, or inline code comment. You can also address Qodo with a greeting such as `Hey qodo`.

When chatting with Qodo, you can:

* Ask Qodo to explain a finding.

  <img src="https://mintcdn.com/qodo/00KIA1DBqT_iIM3q/images/code-review/conversational-chat-explain-a-finding.png?fit=max&auto=format&n=00KIA1DBqT_iIM3q&q=85&s=698c6887735e43ebc66f18cb0b0dd925" alt="Conversational Chat explain a finding" width="626" height="839" data-path="images/code-review/conversational-chat-explain-a-finding.png" />

* Dismiss a finding with a reason.

  <img src="https://mintcdn.com/qodo/00KIA1DBqT_iIM3q/images/code-review/conversational-chat-dismiss-a-finding-before.png?fit=max&auto=format&n=00KIA1DBqT_iIM3q&q=85&s=3f47b6d56a82e68a11c147000e98d326" alt="Conversational Chat dismiss a finding before" width="634" height="573" data-path="images/code-review/conversational-chat-dismiss-a-finding-before.png" />

  This is the view once dismissed.

  <img src="https://mintcdn.com/qodo/00KIA1DBqT_iIM3q/images/code-review/conversational-chat-dismiss-a-finding-after.png?fit=max&auto=format&n=00KIA1DBqT_iIM3q&q=85&s=1519883ce739d9c6ceb7ccb1071cc63c" alt="Conversational Chat dismiss a finding after" width="629" height="668" data-path="images/code-review/conversational-chat-dismiss-a-finding-after.png" />

* Discuss a suggestion or ask follow-up questions in natural language.

  <img src="https://mintcdn.com/qodo/00KIA1DBqT_iIM3q/images/code-review/conversational-chat-inline-chat.png?fit=max&auto=format&n=00KIA1DBqT_iIM3q&q=85&s=f36c17092bf9d1708c85b1e30a011d77" alt="Conversational Chat inline chat" width="607" height="399" data-path="images/code-review/conversational-chat-inline-chat.png" />

* Tell Qodo that the rule or repository relationship behind a finding is wrong, and get a link to fix it in the Qodo portal.

Qodo only responds when addressed, so reviewer discussions are never interrupted.

## Start the chat

Mention `@qodo` in any PR comment, review comment, or inline code comment. Place `@qodo`, `qodo`, or `/qodo` at the beginning of the comment, or precede it with a greeting such as `Hey qodo`.

Mention `@qodo` (or `/qodo` / `qodo`) each time you want Qodo to respond, including follow-up replies in a thread it has already participated in. Qodo replies only to messages that explicitly address it, so reviewer-to-reviewer discussion in a thread is never interrupted.

### Conversation context

Qodo uses the chat location to understand context for:

* **Inline code finding**: Scoped to the specific finding.

* **Inline code comment**: Scoped to the specific line.

* **PR comment**: Scoped to the entire PR and all findings.

If Qodo cannot determine which finding or PR element you mean, it asks a clarifying question.

## What you can ask Qodo to do

* **Explain a finding**\
  Ask why a finding was raised or how the suggested fix works. Qodo replies in natural language.

* **Dismiss a finding**\
  Tell Qodo a finding does not apply. Qodo marks it as dismissed with one of four reasons:

  * **False positive**: The finding is wrong or describes an issue that does not exist.
  * **Rejected**: The finding is incorrect or invalid.
  * **Deferred**: The finding is acknowledged, but will be handled outside this PR.
  * **Intentional**: The flagged behavior is intended (e.g., kept for backwards compatibility).

  When a finding is dismissed, Qodo updates the PR in three coordinated places so reviewers can see at a glance what is still actionable:

  * The **PR summary comment** strikes the finding through and tags it `✗ Dismissed`, so the open-vs-closed split is visible without scrolling through every thread.
  * The **inline review thread** is marked resolved and collapsed. It can be reopened at any time via **Unresolve conversation**.
  * The **inline finding comment** itself is rendered with strikethrough, signalling that the suggestion was acknowledged and closed without requiring a code change.

* **Discuss in natural language**\
  Ask follow-up questions, request more detail, or push back on a suggestion. Qodo responds conversationally with the PR diff and thread as context.

* **Report an incorrect rule or relationship**\
  In the thread of a rule violation or cross-repo conflict finding, tell Qodo that the rule or relationship behind it is wrong. Qodo replies with a link to that rule or relationship in the Qodo portal, where you can correct it so future reviews do not repeat the finding. For more information, see [Fix the source of a finding in the portal](#fix-the-source-of-a-finding-in-the-portal).

## Triggering Qodo

There are no fixed sub-commands inside the Chat. Qodo interprets your message in natural language. To address Qodo, start a message with any of:

| Trigger | Description |
| - | - |
| `@qodo …` | Standard mention. |
| `/qodo …` | Slash-style mention. |
| `qodo …` | Bare mention at the start of a comment. |

Address Qodo in every message you want it to act on, including follow-ups in a thread it has already replied to. Untagged replies are treated as reviewer discussion and left alone.

To dismiss a finding, just tell Qodo in plain language (e.g., *"@qodo this is intentional, we want to keep the legacy behavior"*). Qodo will record the dismissal with the appropriate reason.

## Fix the source of a finding in the portal

Some findings come from context that is configured in the Qodo portal, not only from the code in the pull request. Rule violations come from a [rule](/governance/rule-enforcement/generate-and-manage-rules) defined on the **Rules** page, and cross-repo conflicts come from a [repository relationship](/governance/cross-repo-code-review/repository-relationships) defined on the **Relationships** tab. When that context is wrong or outdated, dismissing the finding closes it in this PR, but the next review can raise it again. Qodo points you to the portal so you can fix the source.

This applies to inline finding threads only:

* **Cross-repo conflict**: When you say the relationship is wrong or outdated, such as the repositories no longer depending on each other, Qodo dismisses the finding and replies with a link to each relationship behind it. Links are labeled with the two repositories, such as `web-client -> api-server`, and open that relationship in the Relationships tab, where you can update or delete it. The thread stays open so the reply remains visible.
* **Rule violation**: When you dismiss the finding as a false positive or reject it, Qodo's reply includes a **View rule** link to the rule. On the rule's page, you can update the rule or its scope, or disable it.
* **Questions about the rule or relationship**: When you ask about the rule or relationship behind the finding, or question whether it applies, Qodo's answer includes the same link. Asking a question does not dismiss the finding.

Qodo never changes a rule or relationship itself. You make the change in the portal, subject to your portal permissions. If Qodo cannot identify the specific relationship, the link opens the Relationships tab instead.

## Example conversations

<AccordionGroup>
  <Accordion title="Asking for clarification">
    **Developer**

    ```text theme={null}
    @qodo I don't understand why this is flagged as a bug. The function looks correct to me.
    ```

    **Qodo**

    ```text theme={null}
    The returned object is an array, but the code accesses it as if it were a single value on line 42. That will throw a TypeError at runtime.
    ```
  </Accordion>

  <Accordion title="Dismissing a finding (intentional)">
    **Developer**

    ```text theme={null}
    @qodo This is intentional, we're keeping the legacy behavior for backwards compatibility.
    ```

    **Qodo**

    ```text theme={null}
    Got it. I've marked this finding as dismissed (intentional) and resolved the thread.
    ```
  </Accordion>

  <Accordion title="Dismissing a finding (deferred)">
    **Developer**

    ```text theme={null}
    @qodo Valid point, but we'll address this in a follow-up PR.
    ```

    **Qodo**

    ```text theme={null}
    Understood. I've dismissed this finding as deferred so it won't block this PR.
    ```
  </Accordion>

  <Accordion title="Reporting an outdated relationship">
    **Developer**

    ```text theme={null}
    @qodo shared-lib was archived last quarter. That relationship is outdated, nothing consumes this anymore.
    ```

    **Qodo**

    ```markdown theme={null}
    Got it. This cross-repo conflict has been dismissed. If the cross-repository relationship that produced it is incorrect or outdated, you can update or delete the corresponding relationship in the Qodo portal so future reviews use the right repositories: [web-client -> shared-lib](https://app.qodo.ai/management/relationships?repoId=8c1d2f6a-3e4b-4c5d-9a7e-1b2c3d4e5f60&relatedRepoId=2a9b7c4e-6d5f-4e3a-8b1c-0f9e8d7c6b5a&view=table).
    ```

    In the PR, the `web-client -> shared-lib` link opens that relationship in the Qodo portal.
  </Accordion>

  <Accordion title="Disputing a rule">
    **Developer**

    ```text theme={null}
    @qodo This rule does not apply here. Generated migration files are exempt from it.
    ```

    **Qodo**

    ```markdown theme={null}
    Dismissed as a false positive. If the rule is incorrect or no longer relevant, you can update the rule or its scope, or disable it in the Qodo portal: [View rule](https://app.qodo.ai/rules/5969?state=active).
    ```

    In the PR, the View rule link opens the rule in the Qodo portal.
  </Accordion>

  <Accordion title="Dismissing a finding (rejected)">
    **Developer**

    ```text theme={null}
    @qodo This suggestion is wrong, the field is already validated upstream.
    ```

    **Qodo**

    ```text theme={null}
    Thanks for the context. I've dismissed this finding as rejected.
    ```
  </Accordion>

  <Accordion title="Requesting a re-review">
    **Developer**

    ```text theme={null}
    @qodo I pushed fixes for the open findings, can you review this PR again?
    ```

    **Qodo**

    Qodo runs the review and posts the updated results in the PR.
  </Accordion>
</AccordionGroup>

## Guidelines for GitHub users

GitHub does not always update bot responses in real time.

After posting a message:

1. Refresh the page if you do not see the Qodo response indicator.
2. Refresh again after a few seconds if the full response does not appear.

If Qodo still has not responded after a minute or two, post the message again in the same thread.

## Disable Chat with Qodo

Chat with Qodo is enabled by default. To turn it off:

### Disable Chat with Qodo in the Qodo portal (Recommended)

1. Log in to the Qodo portal.
2. Navigate to **Configurations** > **Workflow** > **Chat agent**.
3. Disable the **Chat with Qodo** toggle.

For more information, see [Configure Workflow settings in the Qodo portal](/configuration/workflow#chat-agent).

### Disable Chat with Qodo in .pr\_agent.toml

```toml theme={null}
[chat_agent]
enabled = false
```

Default: `true`.

## Related resources

* [Anatomy of a Qodo Code Review](/code-review/comment-anatomy): The parts of the review comment and how to read them.
* [Remediate findings in pull requests](/code-review/remediate-findings-in-prs): Fix findings using chat or the remediation agent.
* [Dismiss a code review finding](/code-review/dismiss-a-finding): Close a finding without fixing it and record why.
* [Customize the code review experience](/configuration): What you can configure, and where to configure it.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.