Skip to main content
Mention @Embedder in Slack to request a repository change, investigate a problem in the code, or check progress. Your daemon machine does the work, and Embedder replies in the thread. Slack work is available when it’s enabled for your organization. If Embedder replies Couldn’t start session with “Slack agent work is not enabled for this organization”, ask your Embedder administrator.

Connect Slack

You need an owner or admin role in the Embedder organization. An admin role on a team alone isn’t enough. You also need permission in Slack to install the app, or to have its installation approved.
  1. Connect the GitHub repository and map it to an Embedder project. Slack can work only on mapped repositories.
  2. In the Embedder app, select a team in the intended organization and choose Slack in the sidebar.
  3. On the Slack Integration page, choose Add to Slack. Select the Slack workspace and approve the requested permissions.
  4. Back in Embedder, confirm the page shows Slack is connected with the right workspace name. Choose Refresh if it doesn’t update.
  5. In each Slack channel where you want to make requests, invite the app with /invite @Embedder. You can also send it a direct message.
  6. On the daemon machine, run embedder start daemon and check it with embedder monitor.
The connection belongs to the Embedder organization, not only the team you had selected. Requests from the workspace can reach any mapped repository in any of the organization’s teams. Everyone in the connected workspace can mention @Embedder without linking an Embedder account. Guest accounts, Slack Connect channels and people from other workspaces can’t start work. Install into an individual Slack workspace. Organization-wide Enterprise Grid installs aren’t supported, and a workspace can belong to only one Embedder organization.

Start a task

Mention @Embedder with the repository and what you want:
Embedder picks the repository this way:
  • If you name a repository, it uses that one. Use the full owner/repository name or a link to the repository, or add /repo owner/repository to the message. A short repository name works when only one mapped repository has it.
  • If the organization has only one mapped repository, it uses that one.
  • Otherwise it asks which mapped repository you mean. Reply in the thread with the name, and Embedder picks up your original request. In a channel, mention @Embedder in that reply.
To work on an existing pull request, include its link or its number, such as PR #42. Embedder then pushes to that pull request’s branch. Say whether the task should change files or only investigate. Greetings, thanks and questions about Embedder itself get a direct reply without starting a run. Requests about your code run as a task on the daemon.

Continue in the thread

Once a task has started, reply in the same thread. You don’t need to mention Embedder again. Embedder posts progress there and asks when it needs information. If you reply while a run is active, Embedder adds your message to that run and confirms that it’s folding it in. A task holds up to 20 queued messages. Wait for the result before starting dependent work. A research request can finish with an answer and no code changes. An implementation request reports its branch or pull request and the verification results. A thread stays open for follow-ups until it has had no activity for 24 hours. After that, or after a run fails, Embedder replies that the session has ended. Send a new message, not a thread reply, to start another task.

Review changes

Coding requests publish by default. Embedder commits, pushes, and opens or updates a pull request during the run. For a new task, it creates a branch named embedder/work/<work-item-id>. Ask for local-only work if you don’t want a push or pull request. Embedder never merges without a separate request. If the target branch changes during the task, request a new run against its current state. Embedder posts the completion summary in the thread. The daemon host keeps the run’s checkout so follow-ups in the thread can continue from it. Checkouts older than seven days are removed when the daemon starts.

Disconnect a workspace

On the Slack Integration page, choose Disconnect beside the workspace under Slack workspaces, then confirm. Embedder stops responding to requests from that workspace. Removing the app from Slack itself is a separate step for a Slack workspace admin.

Troubleshoot

  • Slack isn’t in the sidebar, or Add to Slack is missing: check that you’re an owner or admin of the Embedder organization. Ask your administrator whether integrations are available for your organization.
  • Slack is not configured: the Embedder instance you use doesn’t have the Slack app set up. Ask your Embedder administrator.
  • This Slack workspace is linked elsewhere: disconnect the workspace from the other Embedder organization, then connect it here.
  • Slack installation was canceled, or Slack install session expired: start Add to Slack again from the intended organization’s Slack Integration page.
  • Enterprise Grid installs are not supported yet: install into an individual workspace instead.
  • Embedder posts Waiting for daemon: no daemon has picked up the request. Run embedder start daemon on the daemon machine and check embedder monitor. A request that no daemon picks up within 24 hours is canceled.
  • Request unavailable: the sender is a guest, is from another workspace, or wrote in a Slack Connect channel. Ask from a full member account in a channel that isn’t shared externally.
  • Embedder asks which repository to use, or can’t find it: give its full owner/repository name, and check that it’s mapped to a project.
  • Embedder doesn’t answer a thread reply in a channel: if no task has started in the thread yet, mention @Embedder in the reply.
  • Another task is using the board: run embedder monitor and wait for the active hardware operation to finish.
  • Couldn’t continue session: the task has ended or is finishing. Start a new message with the repository, the current branch and the remaining work.
See Operate the daemon for setting up the machine that runs the work.
Last modified on October 13, 2026