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

# Squasher Agent

> Talk to the Squasher Agent in Slack and the dashboard, and let it watch production, review pull requests, and alert you only when it matters.

The Squasher Agent is one agent for your project. You can ask it questions in Slack, in the
dashboard, with the CLI, or through MCP. It also watches your project and posts an alert only when
it confirms a problem that affects users.

## Talk to the agent in Slack

Connect Slack first. See [Connect a Slack workspace](/integrations/slack#connect-a-slack-workspace).

1. Invite the Squasher app to a channel.
2. Mention **@Squasher** with a question, for example "why are checkouts failing?".
3. Read the answer in the thread.

The agent is also in the Slack assistant pane. Open **Squasher** from the AI apps entry in the Slack
top bar or sidebar, then ask a question or select a suggested prompt.

The agent also answers direct messages. It follows a thread after you mention it, and it follows the
thread of every alert it posts. In a followed thread, it answers only when a message is for it.

To stop replies in a thread, write "be quiet" or "stop". Mention **@Squasher** again to turn replies
back on.

## Talk to the agent in other places

* **Dashboard**: open your project and select **Squasher Agent** in the sidebar.
* **CLI**: run `squasher ask "what failed in the last hour?"`.
* **MCP and API**: see [MCP](/integrations/mcp) and the [Agent API](/api-reference/agent).

Every surface uses the same agent, with the same memory, rules, and skills.

## What the agent watches

The agent wakes on these events in your project:

| Event | What the agent does |
| - | - |
| New production issue | Investigates the issue. See [AI triage](/features/ai-triage). |
| Monitor opens incident | Checks the impact and the likely cause. |
| Pull request | Reviews the change against production data. See below. |

Before the agent starts, a classifier checks each event. The agent skips noise, such as preview
environments, bot traffic, and browser extension errors. It attaches repeats of the same problem to
the work in progress. Monitor incidents in production always get an investigation.

## When the agent posts an alert

Silence is the default. The agent posts an alert only when it confirms a problem that affects users
now. Examples are a production outage, a failing checkout or login, or a change that breaks
production.

* Alerts go to the project's first Slack destination, or to the channel in `alert_channel_id`.
* By default, the agent posts only SEV-1 and SEV-2 findings. Other findings are kept for review.
* The agent posts at most 5 alerts per day. SEV-1 alerts are not counted.
* The agent does not post the same problem twice in 6 hours. When the problem gets worse, it posts
  in the thread of the first alert.
* React with :-1: on an alert to mark it as noise. The agent is stricter about that problem after.

Reply in the thread of an alert to ask the agent about it.

## Review pull requests

The agent reviews pull requests in repositories that are linked to your project. It needs the
[GitHub integration](/integrations/github).

* It reviews a pull request when it opens, becomes ready for review, or reopens.
* It reviews new commits at most once every 30 minutes.
* It skips draft pull requests and pull requests from bots.
* It compares the change with production data: the issues, traces, and incidents of the code that
  changed.
* It comments only when it finds a risk to production. A safe change gets no comment.

## Tell the agent how to work

Tell the agent your rules in plain words. For example:

* "Stop reviewing our pull requests."
* "Only ping this channel for real outages."
* "Never open fixes for the payments repo."
* "Checkout alerts are always SEV-1."

The agent saves each rule and follows it in every conversation. When a rule matches a setting, the
setting changes too, and Squasher enforces it.

| Setting | Values | Default |
| - | - | - |
| `proactive_alerts` | `all`, `important` (SEV-1 and SEV-2), `sev1_only`, `off` | `important` |
| `pr_review` | `comment_on_risk`, `off` | `comment_on_risk` |
| `auto_fix` | `project_policy`, `off` | `project_policy` |
| `reply_style` | `concise`, `detailed` | `concise` |
| `daily_alert_cap` | 0 to 50 | 5 |
| `alert_channel_id` | A Slack channel ID, or empty | Empty |

You can also read and change the settings with the [Agent API](/api-reference/agent).

## Memory

The agent keeps short notes for your project and your organization:

| Kind | Example | Limit per scope |
| - | - | - |
| Rule | "Never alert about the staging environment." | 40 |
| Preference | "Keep alerts to one line." | 40 |
| Fact | "Checkout runs on the orders service." | 150 |
| Incident | "Sept 12 checkout outage: a rotated webhook secret." | 100 |

Each note has at most 500 characters. Squasher refuses notes that contain a secret, such as an API
key or a token. Organization notes apply to every project in the organization.

To see or remove notes, ask the agent, or use the [Agent API](/api-reference/agent).

## Skills

A skill is a procedure that the agent loads when a task needs it. The agent has three platform
skills: `investigate`, `pr-review`, and `incident-response`.

You can add your own skills for a project or for the whole organization. A skill has a name, a
description that says when to use it, and instructions of up to 12,000 characters. It follows the
[Agent Skills](https://agentskills.io) format.

```bash theme={null}
curl -X POST "https://api.squasher.ai/v1/projects/$SQUASHER_PROJECT_ID/agent/skills" \
  -H "Authorization: Bearer $SQUASHER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "deploy-freeze",
    "description": "Use when someone asks whether they can deploy or ship a change.",
    "content": "Deploys are frozen during the quarter close. Link go/freeze for exceptions.",
    "scope": "organization"
  }'
```

Organization skills need the `project:write` permission. A skill cannot use the name of a platform
skill. Squasher refuses a skill that tries to change the agent's safety rules.

## Safety

* When the agent works on its own (events, schedules, and pull request reviews), it can only read.
* In a conversation, it changes data only when you ask for that exact change.
* It never deletes data, rotates secrets, deploys, rolls back, or merges unless you ask for that
  exact action.
* It treats error messages, logs, and pull request text as data, not as instructions.
* It never mentions `@channel`, `@here`, or user groups.

## Daily budget

Each project has a daily agent budget (UTC). Larger plans have larger budgets. The budget does not
add charges to your bill.

* At 70% of the budget, the agent stops automatic fixes.
* At 90%, the agent answers only direct questions from people.
* At 100%, the agent answers only direct questions from people until the next day (UTC).

To see today's use, call `GET /v1/projects/{project_id}/agent/usage`. See the
[Agent API](/api-reference/agent#activity).

## Next steps

<CardGroup cols={2}>
  <Card title="AI triage" icon="https://mintcdn.com/nextbigthingllc/eorsKshEMzXoeuUW/icons/document-magnifying-glass.svg?fit=max&auto=format&n=eorsKshEMzXoeuUW&q=85&s=74d83b9159bb0b52a6a980e72ff73bc3" href="/features/ai-triage" width="24" height="24" data-path="icons/document-magnifying-glass.svg">
    See how the agent investigates new issues.
  </Card>

  <Card title="Agent API" icon="https://mintcdn.com/nextbigthingllc/eorsKshEMzXoeuUW/icons/code-bracket.svg?fit=max&auto=format&n=eorsKshEMzXoeuUW&q=85&s=a55718acc02a4969cfc6033afceae7e4" href="/api-reference/agent" width="24" height="24" data-path="icons/code-bracket.svg">
    Manage settings, memory, and skills.
  </Card>
</CardGroup>
