Skip to main content
With the Slack integration connected, anyone in your Slack workspace can hand Embedder work by mentioning @Embedder in a channel or sending it a direct message. The request runs on your daemon against one of your organization’s linked GitHub repositories, streams progress into the Slack thread, and links the resulting pull request when it pushes changes.

Before you begin

Make sure you have:
  • Owner or admin access to your Embedder organization to install the app.
  • The GitHub integration set up with mapped repositories. Slack requests run against the repositories your organization has connected and mapped — without them, Slack work has nowhere to run.
  • A running daemon to execute the work.

Connect the workspace

1

Add Embedder to Slack

In the dashboard, select your team in the sidebar, then open Slack and select Add to Slack. Approve the installation on Slack’s consent screen.
The dashboard confirms with Slack workspace connected, and the workspace appears under Slack workspaces with a Connected badge.
The connection is workspace ↔ organization: everyone in the connected Slack workspace can start work across all of the organization’s linked repositories. A Slack workspace can belong to only one Embedder organization, and Enterprise Grid installs are not supported yet.
2

Invite the bot to a channel

In any channel where people should be able to use Embedder:
Direct messages to the bot work without an invite.
3

Link your Slack identity

The first time you send Embedder a request, it asks you to connect your Slack account to your Embedder account and replies with a link. Select Connect Slack, then return to Slack and send the request again. This is a one-time step per user.
4

Make a request

Mention the bot and name the repository you want it to work in:
The thread shows Working on it once a daemon claims the request, streams progress while the agent works, and finishes with Done and a pull request link if the work pushed changes.
Slack thread where a user asks Embedder for a live temperature plot, the bot picks the session back up, and replies Done with a repository link, a summary of changes, and serial output verified on hardware

A thread request completing with a summary of the changes, verified on the attached hardware

How requests are routed to a repository

Embedder picks the target repository from your message:
  1. An explicit name always wins. Write owner/repo or the repository’s name anywhere in the request.
  2. A close match works too — “the sensor-hub repo” matches a linked repository named sensor-hub.
  3. If your organization has exactly one linked repository, it is used by default and you don’t need to name it.
  4. If the repository is ambiguous or missing, the bot asks in the thread and lists the candidates. Reply with the name, and it picks up the request from there.
To work on a specific pull request, reference it in the message — pr 13 or the PR’s URL — and Embedder checks out that PR’s branch instead of the default branch.

Working in a thread

A Slack thread is a session: it keeps its repository checkout and conversation state, so you can iterate.
  • Reply in the thread to continue. After a task completes, a reply picks the same session back up in the same working state — “now also update the changelog” continues where the last run finished.
  • Replies while it’s working are folded in. If you add a message mid-run, the bot acknowledges it and incorporates it into the run in progress.
  • The agent can ask questions. When it needs input it posts One question before I continue and pauses — reply in the thread to resume. While paused, your daemon is free to pick up other work.
  • Not every request needs code. Questions like “how does the OTA update flow work in firmware-nrf9160?” complete with an answer in the thread and no pull request.
  • Sessions expire. A session closes after 24 hours of inactivity; send a new root message to start a fresh one.

If no daemon is online

Slack requests queue until a daemon claims them. If nothing picks the request up within about 45 seconds, the thread shows Waiting for daemon with a hint to start one. The request stays queued and runs as soon as a daemon comes online — or expires with the session after 24 hours.

Troubleshooting

Invite it with /invite @Embedder. If it isn’t in the workspace at all, an organization owner or admin needs to connect the workspace from the dashboard’s Slack page.
The repository you named isn’t connected, or isn’t mapped to a project. Connect and map it on the dashboard’s GitHub page — see GitHub integration.
Your organization has no linked repositories yet. Set up the GitHub integration first.
Name the repository explicitly as owner/repo in your request — an explicit name always takes priority over fuzzy matching.
A Slack workspace can belong to only one Embedder organization. Disconnect it from the other organization first.
The session completed, failed, or expired after 24 hours of inactivity. Send a new root message (not a thread reply) to start a new session.

Next steps

Run the daemon

Start the daemon that executes Slack requests.

GitHub integration

Connect and map the repositories Slack work runs against.
Last modified on July 31, 2026