@embedder on a GitHub issue or pull request, or message @Embedder in Slack, and a background daemon running on your own hardware picks up the request, executes it, and reports back — as a pull request, a GitHub comment, or a Slack reply.
The three pieces
The GitHub App is the foundation: Slack requests also run against repositories you connect through it, so set up GitHub first.
How a request becomes a result
1
Someone triggers work
A teammate comments
@embedder fix the flaky I2C init on a pull request, or asks the same in a Slack channel.2
The backend queues a work item
Embedder resolves which repository the request targets and which project is mapped to it, then queues a work item for that repository. Repositories are mapped to Embedder projects in the dashboard — unmapped repositories are ignored.
3
Your daemon claims it
Any online daemon whose user has access to the mapped team claims the item. On GitHub, the triggering comment gets a 🚀 reaction; in Slack, the thread shows Working on it.
4
The daemon executes on your machine
The daemon fetches the repository into an isolated git worktree, selects the mapped team and project (so the agent has your hardware context — datasheets, peripherals, board configuration), and runs the agent with tool confirmations auto-approved. Slack requests stream progress into the thread as the agent works.
5
Results flow back
When the agent finishes, the daemon commits and pushes a branch, and the backend opens or updates the pull request and posts the completion comment or Slack reply. If the agent needs input instead, it asks a follow-up question in the same GitHub thread or Slack thread, and resumes when you reply.
What runs where
Headless work executes on your machine, not on Embedder’s servers:- The daemon makes outbound connections only — a WebSocket to the Embedder backend plus HTTPS polling. It listens on no ports.
- Repositories are fetched with short-lived, per-work-item GitHub tokens minted by the backend. The daemon machine needs no GitHub credentials, no
ghCLI, and no pre-existing clone of the repository. - Each work item runs in a fresh, isolated git worktree under
~/.embedder— your local checkouts are never touched. - Because the daemon runs on your hardware, headless work has access to your connected devices: it can build, flash, and verify firmware over serial while executing a GitHub issue or Slack request.
Embedder Agent <bot@embedder.dev>.
Set it up
GitHub integration
Install the GitHub App and map repositories to Embedder projects.
Slack integration
Connect your Slack workspace so anyone can start work from a thread.
Run the daemon
Start and monitor the daemon that executes the work.
Headless server mode
Drive Embedder programmatically over JSON-RPC instead.
