Use Slack with Evergreen
Start and steer sessions from Slack with the Evergreen app, and connect your own Slack so the agent can search and read it as you.
Slack shows up in Evergreen in two separate ways, and they’re set up in different places.
| What it does | Where you set it up | |
|---|---|---|
| Evergreen in Slack | The Evergreen app lives in your Slack workspace. You start sessions with it, and it posts plan cards, questions, and progress where your team can see them. | Workspace settings › Integrations, the Slack row’s left half, Add Evergreen to Slack |
| Slack integration | Your own Slack connection. The agent searches and reads Slack as you while it works on a task, and posts there when you ask it to. | Workspace settings › Integrations to install it, and Settings › Integrations to connect |
You can use either one without the other. The app is the bot you see in channels. The integration is you, signed in, and isn’t a bot. Both live on the one Slack row of Workspace settings › Integrations: the left half adds the bot, the right half, Connect Slack as yourself (MCP), sets up and connects the integration.
Evergreen in Slack
What the app does
- Starts sessions. Type
/evergreen, mention@Evergreenin a channel, send the bot a direct message, or use the Send to Evergreen shortcut on any message. - Gives each session a place to talk. By default a session gets a private channel of its own. Evergreen opens it, invites the people on the session, and archives it after the session has ended and the channel has gone quiet. If you’d rather keep a session in the thread where you asked, you can switch to that, as described below.
- Mirrors the session. Each agent turn is posted in the session’s room along with a progress card that updates as the run works.
- Asks you in Slack. A plan card has Approve plan and Send back. A question has a button for each answer. A request to run a command has Allow and Deny. You can also answer in your own words by replying in the card’s thread. See Plans and asks for what each one means.
- Talks to the running agent. While a session runs, anything a participant posts in its own channel goes to the agent as its next message.
- Unfurls session links. A session link you post in Slack turns into a card with the title, status, and pull requests, as long as you could find that session in Evergreen yourself.
- Closes sessions. The progress card has a Close session button, and the
/evergreen closecommand does the same.
A session you start on the web has no Slack room yet. Choose Continue in Slack on the session page to open one.
Add Evergreen to your Slack workspace
An Owner or Admin does this once for each Slack workspace.
-
Find the Slack row
Go to Workspace settings › Integrations and find Slack. Its left half is Add Evergreen to Slack. If that half says Evergreen in Slack isn’t available yet, the Evergreen app hasn’t been set up for your Evergreen. Ask whoever runs your Evergreen.
-
Choose Add Evergreen to Slack
Slack asks you to pick a workspace and approve what the app can do. If your Slack requires admin approval for apps, a Slack admin has to approve it before you can finish. Slack sends you back to the integrations list, which says how it went.
-
Check your workspaces
The same half lists each workspace you’ve added. The first is the Primary workspace, and posts that belong to the whole workspace, like a new session’s channel, go there. To change it, choose Make primary on another one.
A Slack workspace belongs to one Evergreen workspace. If it’s already connected to another, the sign-in comes back with a message saying so. To add another workspace, choose Add another workspace. Remove takes Evergreen out of a Slack workspace.
People need an Evergreen account to use the app, and Evergreen matches them by the email on their Slack profile.
Commands
Type these in any channel, or in a session’s own channel. Where a command takes a session, it uses the session the channel belongs to unless you give a session ID or paste a session link.
| Command | What it does |
|---|---|
/evergreen |
Opens a menu. Start a session opens a short form with the task, repositories, model, and mode, such as Plan or Auto, and More options adds the rest of what the New page on the web offers. My sessions lists your sessions that are still moving. |
/evergreen start <task> |
Starts a session right away in your project’s mode, else your own default, else Auto. A session that starts in Plan brings the plan back for you to approve. |
/evergreen start owner/repo <task> |
The same, in the repositories you name. You can name several, separated by spaces or commas. |
--no-plan |
Add it anywhere in a start line to skip plan approval for that one session. It matters only when the session would start in Plan, and your own default doesn’t change. |
--validation <tier> |
Add it anywhere in a start line to set the validation tier the session starts at, such as ci. A tier your workspace can’t run is refused. |
--budget <usd> |
Add it anywhere in a start line to cap what the session can spend, such as 5 or 12.50. When the session reaches the cap it stops, and its branch and pull requests stay. |
/evergreen status |
Lists your sessions that are still moving. |
/evergreen projects [name] |
Lists the projects you can file a session under. A name narrows the list. |
/evergreen close [session-id] |
Ends a session. A session still in progress is abandoned. One whose work has merged is signed off as completed. Either way its Slack channel is archived. |
/evergreen shepherd [autopilot|approve-to-merge|manual] [session-id] |
Sets how far Evergreen goes once the pull request is open. With no mode, it tells you the current one. |
/evergreen validation [tier] [session-id] |
Sets the validation tier the merge waits for. With no tier, it tells you the current one. |
/evergreen handoff slack <session-id> |
Opens the session’s Slack channel, the same as Continue in Slack. |
/evergreen help |
Shows the list of commands. |
Here are a few to copy.
/evergreen start acme/web add a GET /healthz endpoint and a test for it
/evergreen start acme/web fix the flaky login test --validation ci --budget 5
/evergreen start acme/web rename the user_id field --no-plan
/evergreen statusIn a session’s channel, these two work without a session ID.
/evergreen shepherd autopilot
/evergreen closeThe three shepherd modes are:
autopilotfixes CI, reviews, and conflicts, then merges once checks pass.approve-to-mergefixes CI and reviews on its own, and a person approves the merge.manualasks before each CI fix and review reply, and a person merges.
You can also talk to the app in plain words. Outside a session’s channel, a mention starts a session.
@Evergreen migrate the crm service to node 24, skip the planInside a session’s channel, a mention goes to that session.
@Evergreen also update the README
@Evergreen shepherd autopilot
@Evergreen fork add a dark mode toggleWhen you start a session this way, name a repository if you can, and say how it should run in your own words, such as whether to plan first or which validation to use. On a merged session, a mention continues the work, and fork starts a follow-on session instead. A direct message to the bot starts a session the same way, without the @Evergreen.
You can say it instead of typing it. Mention @Evergreen, or open your direct message with the bot, and record a voice note with Slack’s microphone button. Slack only writes out a voice note when you ask, so choose Generate transcript on it (on a phone, press and hold the voice note). Evergreen reads the transcript as if you’d typed it, and it waits up to 15 minutes for you to generate one. If you also type something in the same message, Evergreen sends what you typed straight away instead of waiting.
Choose where sessions talk
Each person decides this for themselves in Settings › Defaults, under Slack.
| Setting | What it does |
|---|---|
| Conversations | Choose In a new private channel or In the thread where you asked. The choice applies to the sessions you start from a mention in a channel. Sessions that are already open keep the room they have. |
| Start every session in Slack | Sessions you start outside Slack get a Slack conversation right away. |
| Add people from the thread | When you tag @Evergreen in a thread, everyone who posts there joins the session as a collaborator. |
A private session always gets a private channel of its own, even when you start it from a thread. If a session in a thread is made private, it moves to a new private channel and leaves a line in the thread saying where it went.
In the thread mode, Evergreen is a guest. It doesn’t open a channel, invite anyone, or archive anything. People talk to each other in the thread, and the card buttons are how the session gets answered. To get a direct message when a session is waiting on you, go to Settings › Notifications.
Start sessions from Slack messages automatically
An automation can start a session when someone posts in a Slack channel the Evergreen app is in, and the session replies in that message’s thread. See Start sessions automatically to set one up. If an automation reads Not wired up, the app isn’t in the channel yet. Choose Join channel for a public channel, or invite the app to a private one.
Let the agent use your Slack
The Slack integration lets the agent work in Slack as you. It uses your own permissions, so it sees the conversations you can see.
What the agent can do
- Search messages, channels, people, and files you can see.
- Read channels, threads, profiles, files, and canvases.
- Send, draft, or schedule messages and add reactions when you ask.
- Create and update canvases and Slack lists.
- Use Slack’s own search and messaging skills, which guide how it looks things up and writes messages.
What it posts goes out as you. It’s told to send, schedule, or change something only when the task asks for it, and to leave a draft in your Slack drafts when it isn’t clear you want a message sent. It’s also told to cite the messages it relied on and to keep secrets out of anything it posts.
Who can connect it
Owners and Admins install it for the workspace. Then each person connects their own Slack account. Slack asks for a lot of access on your behalf, and the agent can’t go beyond what your account can do.
Install it
-
Open Integrations
Go to Workspace settings › Integrations, find Slack, and choose Install.
-
Create your Slack app, if the install asks
Slack’s own MCP server works with apps that are internal to a Slack workspace or listed in Slack’s marketplace. Until Evergreen’s app is listed, the install shows Create your Slack app. Choose Create the app in Slack, which opens Slack with Evergreen’s manifest filled in. You can also choose Copy manifest and paste it into Slack’s app console. A Slack admin may need to approve the app before people can sign in. Then copy the client ID and client secret from the app’s Basic Information page and paste them into the install.
If your Evergreen already has a Slack app for this, the step asks Choose which Slack app to use instead. Sign in with Evergreen’s Slack app goes straight to the sign-in, and Use your workspace’s own Slack app walks the steps above. You can switch to your own app later from Manage.
-
Sign in
Choose Sign in as yourself. Slack opens, you approve the request, and you come back to Evergreen. This becomes your own connection.
-
Choose who can use it
Pick Everyone, Selected audiences, or Only me, then choose Turn on for your workspace.
Slack’s consent page names the app Evergreen Integrations. That’s the app your workspace created from Evergreen’s manifest, or Evergreen’s own app for this. It isn’t the Evergreen bot you see in channels.
Connect it yourself
Open Settings › Integrations, find Slack, and choose Connect. Slack keeps each workspace separate, so you connect each Slack workspace you want the agent to reach. Once you’ve connected one, the row’s button reads Add workspace, and the Slack card’s reads Connect another Slack workspace. Either one adds the next. Disconnect removes a connection, and Test connection checks that it still works.
If the agent can’t find a channel or thread, it may be in a Slack workspace you haven’t connected. The agent asks you to connect it rather than guessing.
What it asks before changing things
While a session is in Plan, the agent only reads. Posting, scheduling, reactions, and canvas changes become available once you approve the plan, or from the start if you skip the plan. Owners and Admins can block any tool for everyone from the Tools tab in Manage, for example to stop the agent from sending messages at all.
Limits
- The agent sees what you can see in Slack, so it can read private channels and direct messages you’re in.
- While anyone is connected, Manage refuses to change or clear your workspace’s own Slack app credentials, and it tells you how many people have to disconnect first. A connection works only with the app that granted it.
- Slack limits how quickly search can run, so the agent searches to find a conversation and then reads it.
- Slack connections last as long as Slack allows, and Evergreen refreshes them for you. If one lapses, the card shows Reconnect.
Troubleshooting
| What you see | What to do |
|---|---|
/evergreen says it doesn’t know who you are |
Sign in to Evergreen once with the account that uses your Slack email, then try again. |
| Evergreen in Slack isn’t available yet | The Evergreen app hasn’t been set up for your Evergreen, so the Slack row’s left half has nothing to add. Ask whoever runs your Evergreen. |
| The sign-in says that workspace already belongs to another organization on Evergreen | A Slack workspace can be connected to one Evergreen workspace. Try again with a different Slack workspace. |
| A Slack automation reads Not wired up | Choose Join channel on the automation, or invite the Evergreen app to the channel. |
| A reply in a session’s thread didn’t reach the agent | In a thread mode session, replies are people talking to each other. Use the card buttons, or mention @Evergreen with what you want. |
| Slack says an admin has to approve the app | A Slack admin approves it in Slack’s app management, and then you can finish the sign-in. |
| Slack connection failed and the sign-in was canceled or took too long | Try again and finish the sign-in in the same tab. |
| The Slack card shows Reconnect | Your authorization lapsed. Choose Reconnect to sign in again. |
| There’s no Install button | Only Owners and Admins install integrations. Ask one of them, or choose Request. |
Last updated