---
title: "Slack"
description: "Connect your Slack workspace and optionally route channels to projects"
canonical_url: "https://hoplite.sh/docs/integrations/slack"
markdown_url: "https://hoplite.sh/docs/integrations/slack.md"
---

# Slack
URL: /docs/integrations/slack
LLM index: /llms.txt
Description: Connect your Slack workspace and optionally route channels to projects
Related: /docs/integrations, /docs/automations, /docs/threads

# Slack

Connect Slack to bring Hoplite into the channels where your team already works.

## Setup

1. **Install** — under **Settings → Integrations → Workspace**, connect your Slack workspace. This authorizes the Hoplite bot for every project in the Hoplite workspace and installs the scopes it needs to read channel lists and post messages.
2. **Optionally route a channel** — use the selected project's area of **Settings → Integrations** to choose a channel to route directly to a project. Channel selection is a picker over your actual Slack channels — no typing channel IDs by hand.

## How conversations route

Hoplite routes each new Slack conversation in a fixed order: an exact channel route, the requester's personal default, the workspace default, and then Luna. Luna compares the request and its Slack context with every accessible project; a confident match starts the real user turn immediately and streams that run back into the Slack thread without a confirmation step.

If none of those routes applies confidently, the requester opens a searchable Slack picker that can find every accessible project by project or repository name, including workspaces with more than Slack's 100-options-per-response limit. Each picker is bound to the Slack request that created it, so an older card or modal cannot accidentally start a newer pending request. README content, recent-thread evidence, and hidden Slack context remain available to the agent, but Hoplite does not copy that private routing evidence into the user-visible Slack response.

Existing Slack conversations remain linked to the project that started them even if their channel route or saved defaults are later changed or disabled.

## Continuing in the web app

When someone first continues a Slack-linked Hoplite [thread](/docs/threads) from the web app, Slack receives one handoff card with the generated thread title, project, effective model and effort, author, and an **Open in Hoplite** link. Later web messages stay in Hoplite without repeating that card, and the web prompt is never mirrored into Slack.

By default the initial run's final answer also stays in Hoplite; an authorized workspace member can select **Continue in thread** on that active run to opt in to its answer. The opt-in is durable, so a result that finished before the click is replayed safely, while duplicate clicks do not duplicate the Slack answer.

## Make the app available to your workspace

The Hoplite Slack app must have **unlisted distribution** enabled before it can be installed outside its Slack development workspace. In the Slack app dashboard, open **Manage Distribution**, complete the **Share Your App with Other Workspaces** checklist, then select **Activate Public Distribution**. Publishing in the Slack Marketplace is not required.

The Slack app's **Options Load URL** must point to the same `/api/slack/webhook` endpoint as its Interactivity Request URL. Slack sends search queries from Hoplite's project picker to that URL; without it, the picker opens but returns no projects.

If Slack shows `invalid_team_for_non_distributed_app`, the app has not yet been distributed (or distribution was disabled). An app owner must activate distribution, then start the connection again from Hoplite.

<Callout type="info" title="Reconnect after scope changes">
If the channel picker comes up empty on an older installation, reinstall the Slack app from workspace integrations — channel listing requires scopes that early installs may not have granted.
</Callout>

## Sitemap

See the full [sitemap](/docs/sitemap.md) for all pages.
Well-known sitemap: [/docs/.well-known/sitemap.md](/docs/.well-known/sitemap.md).
