Slack

Connect Slack, answer @ellipsis mentions, and give sessions Slack tools.

Ellipsis answers @ellipsis mentions in Slack channels and gives sessions Slack tools.

Answer a mention

  1. Connect a workspace from Integrations > Slack in the dashboard.
  2. Invite Ellipsis to any private channel it should read or answer in.
  3. Mention @ellipsis with a question in a channel.

Agent access

A session gets Slack tools when its environment lists slack under mcp_servers, or when it starts from Slack. After you remove the connection, a session that lists slack fails at start.

Operations channel

Under Your channels, Operations Channel creates #ellipsis-operations. Ellipsis posts budget alerts there.

Mention routing

Mention @ellipsis in a channel or direct message to start a session in that thread. Without a slack.yaml, the built-in handler answers. To customize it, put slack.yaml at the root of your organization's .ellipsis repository:

1
ellipsis:
2
kind: slack
3
name: slack-helper
4
5
slack:
6
channels: ['#engineering', '#support']
7
direct_messages: ['*']
8
9
session:
10
codex:
11
model: gpt-6-sol
12
prompt: |
13
Read the code before answering. Cite the relevant files and
14
functions, and keep replies short.
15
environment:
16
repositories:
17
- name: api-repo
18
permissions:
19
github:
20
permissions: read_only
21
budget:
22
session: 2

This handler answers mentions in #engineering and #support, and all direct messages. Other channels use the built-in handler.

Set at least one of slack.channels or slack.direct_messages. Don't mix '*' with names in the same list. Names match regardless of case.

The default-branch version is live, and an invalid edit keeps the last valid one. Set ellipsis.enabled: false, or delete the file, to go back to the built-in handler. Only the copy in the .ellipsis repository counts.

A slack_channel trigger is different: it runs an agent when a channel is created.

Fields

Identifies the file.

Which conversations this handler answers. Set at least one of channels or direct_messages; don't mix '*' with names in the same list.

Works like an agent's session block.

On this page

Schedule a demo