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

# Custom Messages

> Configure personalized start and end review messages for Kody

## Overview

Customize the messages that Kody sends at the beginning and end of code reviews. This feature allows you to personalize the communication style and add specific context or instructions for your team.

In the sidebar, open **Code review → What Kody writes**. The messages are in the **Comments during the review** section, with one tab per message: **Review starts**, **Review ends** and **Review fails**. Each tab has a **Message** box and a **Reset to…** menu (restore the inherited message, or the default message at Global).

## Default Behavior

When you haven't customized any messages, Kody works as follows:

1. **Initial Message**: Kody sends a standard start review message
2. **Suggestions**: Kody provides all code review suggestions
3. **Final Message**: Kody updates the initial message with a summary of the review

## Custom Message Behavior

Once you edit either the start or end review message for the first time, Kody's behavior changes to:

1. **Initial Message**: Kody sends your custom start review message
2. **Suggestions**: Kody provides all code review suggestions
3. **Final Message**: Kody sends your custom end review message (without updating the initial message)

This creates a complete timeline: **Initial Message → Suggestions → Final Message**

## Message Configuration Options

### Post this message

On the **Review starts** and **Review ends** tabs, use the **Post this message**
select to decide when Kody should post that message (each message has its own
setting):

* **Important:** Messages are only sent when a review actually runs.\
  If your review cadence is **Manual**, messages are posted only when someone runs `@kody start-review`.

* **On every push** (`every_push`): posted when the pull request opens and again
  after every new push **that triggers a review**. This happens automatically
  only when cadence is **Automatic** or **Auto-pause**.

* **Only when the PR opens** (`only_when_opened`): posted only once, right after
  the first review run. If cadence is **Manual**, the first review run is when
  you call `@kody start-review`. Future pushes just add review suggestions plus
  the usual reaction so authors know the review reran.

* **Never** (`off`): the message is not posted; the text is kept for later. Kody
  still runs the review and posts suggestions.

When a message is set to **On every push** or **Only when the PR opens**, Kody uses whichever
templates you have filled in. If you only customize the start message, only that
message is sent; same for the end message. This keeps the familiar timeline of
**Initial Message → Suggestions → Final Message** whenever the behavior allows
messages to be posted.

**Example (Manual cadence)**\
PR opened → no message yet\
`@kody start-review` → start message → suggestions → end message

## Dynamic Context

You can enhance your custom messages with dynamic context using the **Add context** menu next to **Message** (on the **Review starts** and **Review ends** tabs). This allows you to include:

### changedFiles

A summary of changed files, showing additions and deletions per file. This provides a detailed breakdown of what was modified in the pull request.

### changeSummary

A comprehensive summary of all changes in the pull request, giving an overview of the entire modification scope.

### reviewOptions

A reflection of the team's configured review settings, showing which review categories are enabled or disabled for the review.

### reviewCadence

Provides the exact follow-up review policy so authors know what happens after
the first automated review:

* **Automatic**: Kody re-reviews every push as soon as it lands.
* **Auto-pause**: Kody re-reviews pushes automatically, but if it detects a
  "push burst" (for example, 3 pushes within 15 minutes, based on your
  thresholds) it pauses follow-up reviews until you resume them. The cadence
  context includes the push and time limits so the team knows when the pause can
  be triggered.
* **Manual**: Kody waits for someone to run `@kody start-review` before doing
  another pass.

### reviewScope

Shows which configuration level — global, repository, or directory — was used to
review this pull request, so authors know which settings applied.

### agentPrompt

<Note>
  **End review message only.** It bundles the review's line-comment suggestions,
  which don't exist until the review has run — so it isn't offered on the start
  message.
</Note>

Bundles every suggestion from the review into a single, copy‑paste prompt block
(rendered as a collapsible **Open Agent Prompt**). Paste it into your coding
agent to apply all of the review's fixes at once.

<Info>
  These context variables will be automatically populated with the actual data
  from your pull request when Kody sends the message.
</Info>

<Note>
  In `kodus-config.yml` these are written with an `@` prefix — `@changedFiles`,
  `@changeSummary`, `@reviewOptions`, `@reviewCadence`, `@reviewScope`, `@agentPrompt` — placed
  anywhere inside the message `content`. The **Add context** menu inserts the same tokens for
  you in the web UI.
</Note>

## Error message

Separate from the start/end pair, you can append your own text to the comment Kody posts when a
review **fails** — for example when no BYOK provider is configured, or the provider rejected the
request. Write it on the **Review fails** tab.

There is no on/off setting for this message: the text itself is the switch.

* **Empty** (default) — Kody posts its standard error comment unchanged.
* **Filled in** — your text is appended below the standard error comment.

Use it to point people at the right internal owner or runbook instead of leaving them with a
generic failure:

```yaml theme={null}
customMessages:
    errorReviewMessage:
        status: 'active' # off | active
        content: |
            Reviews are failing? Ping #platform-eng — we own the Kodus API key.
```

Leaving `content` empty keeps the default error message unchanged.

## Comment visibility (global settings)

Two toggles that apply to every Kody comment, not just custom messages. They are in the
**Comment visibility** section of **What Kody writes**:

| Setting | Default | What it does |
| - | - | - |
| `hideComments` | `false` | Posts every review message as a hidden/minimized comment. Shown in the UI as **Post as hidden comment**. **GitHub only** — the toggle is hidden when no GitHub connection exists. |
| `suggestionCopyPrompt` | `true` | Adds the copy-as-prompt affordance to suggestions so you can paste them into a coding agent. Shown in the UI as **Add a copyable prompt to each suggestion**. **Not available on Bitbucket** — the toggle is hidden when Bitbucket is your only connected platform. |

```yaml theme={null}
customMessages:
    globalSettings:
        hideComments: false # GitHub only
        suggestionCopyPrompt: true # not available on Bitbucket
```

<Note>
  You can always revert to the default behavior by disabling both custom
  messages or clearing the message content.
</Note>

{" "}


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