# Slack

> Hand work to your assistants and approve it from Slack threads. Coming soon: connect Slack with two tokens from a ready-made app.

Status: Coming soon

Slack is a place to hand work to your assistants without leaving the tool your team already uses. Message the StellarFirm app directly, or mention it in a channel. It replies in the thread, posts progress there, and shows **Approve** and **Reject** buttons when work needs you.

> [!SOON]
> Slack is Coming soon. Chat and Approvals work today inside the StellarFirm app at [stellarfirm.ai/app](https://stellarfirm.ai/app). See [Delegate work](/docs/ceo/delegate-work) for every place you can hand work over.

## At a glance

| | |
| --- | --- |
| Category | Chat |
| Status | Coming soon |
| Used by | Every assistant (the Coder is available now; others Coming soon) |
| Connect in | The StellarFirm desktop app, under Integrations |
| What you paste | Two tokens from your own Slack app: one starting with `xoxb-`, one with `xapp-` |

## What assistants can do

| Ability | How it runs |
| --- | --- |
| Receive direct messages, and mentions in channels it was invited to | Reads on its own |
| Reply and post progress in the same thread | Reads on its own |
| Ask you to Approve or Reject work, with buttons in the thread | Reads on its own (it only asks; the decision stays with you) |

## How delegating in Slack works

- **Direct message** the StellarFirm app, or **mention it** in a channel with `@StellarFirm`. In a channel, every message it should read needs the mention, replies in a thread included. Messages without one are not sent to your assistants.
- **Invite it first.** The app only hears mentions in channels it belongs to. Type `/invite @StellarFirm` in the channel.
- **Name the Coder when you have several.** Start with its chat handle, such as `@api-coder`, or its name, such as "API Coder,". With no name, the Coder whose focus or repository fits takes the work.
- **Answer in the thread.** Press **Approve** or **Reject**, or reply `approve` or `reject` when only one of your requests is waiting there. Only the person who asked can decide. The same request also waits on the [Approvals page](https://stellarfirm.ai/app/approvals).

## Setup (when it opens)

1. In Slack, open the apps page at api.slack.com/apps and choose **Create New App**, then **From a manifest**.
2. Pick your Slack workspace, paste the ready-made StellarFirm manifest from stellarfirm.ai/slack-app-manifest.json, and choose **Create**.
3. Under **Basic Information**, **App-Level Tokens**, choose **Generate Token and Scopes**. Add the `connections:write` scope, generate it, and copy the token that starts with `xapp-`.
4. Under **Install App**, choose **Install to Workspace** and allow it. Copy the OAuth token that starts with `xoxb-`.
5. In the StellarFirm desktop app, open **Integrations** and pick **Slack**. Paste the `xoxb-` token into **Workspace token** and the `xapp-` token into **App token**, and press **Connect**.
6. Invite the app to the channel you will use: `/invite @StellarFirm`.

## Permissions

The ready-made manifest asks Slack for three permissions and nothing else:

| Permission | Why |
| --- | --- |
| `app_mentions:read` | Read messages that mention the app in channels it belongs to |
| `im:history` | Read direct messages sent to the app |
| `chat:write` | Reply and post progress |

It also turns on **interactivity**, so the Approve and Reject buttons work, and **Socket Mode**, so the app connects out to Slack and needs no public address on your side. It cannot read channels it is not mentioned in.

## Good to know

- **Anyone in your Slack workspace can message the app.** There is no list of allowed people yet. Install it in a workspace where you trust every member, and remember that approvals still belong only to the person who asked.
- Slack does not change what needs your Approve. Anything that sends, deploys, charges, publishes, or creates still waits for you, or for what your [house rules](/docs/ceo/house-rules) allow.
- The desktop app keeps both tokens on your computer and never shows them back. The card shows only that Slack is connected.
- Start with a private channel for your assistants so your team sees only what you intend.
- Until Slack opens, do the same things in the StellarFirm chat and on the [Approvals page](https://stellarfirm.ai/app/approvals).

## Prompts

```prompt title="Hand over a ticket"
@StellarFirm Coder, pick up the top ticket on [repository] and keep me posted in this thread. Wait for my Approve before you push anything.
```

```prompt title="Ask for a review"
@StellarFirm Coder, review pull request [number] on [repository] and reply here with what you would change.
```

```prompt title="Send work to one Coder"
@StellarFirm @api-coder add [endpoint] to [repository], run the tests, and open a pull request for review once I Approve.
```

---

Source: https://stellarfirm.ai/docs/integrations/slack
