What you need
Before you start
- An admin has connected Slack under Platform > Agents > Channels. See Slack workspace.
- A model provider is enabled under Platform > AI governance > Models.
- You can push to the target GitHub repository.
1
Create the agent and pick a harness
Click New, open Harness and model in the composer, and pick Claude Code, Codex or OpenCode with a model. A choice made before the first conversation becomes the agent’s default.In Agent settings, under
PROMPT, write the rules for every ticket: the repository, base branch, branch and commit naming, and the checks to run before a pull request. Details: Create and customize an agent.2
Give the agent its computer
Under Agent settings > Advanced > Runtime environment, attach an environment with your toolchain and CLIs in Packages and team conventions in Context. The GitHub CLI,
gh, and a Chromium browser are already installed. Details: Runtime environments.3
Let the agent push to GitHub
The agent uses git and
gh, with access from one of:- The xpander GitHub App. Installed on the repository’s owner, it gives each push a one-hour token for that one repository, with nothing stored in the agent’s files. It covers only repositories the agent may use, and a self-hosted install may not offer it.
- Your own GitHub token. Add it under Settings > Connections as
GITHUB_TOKEN. It works in your own conversations only.
4
Gate the commands that need a person
Under Agent settings > Advanced > Gated commands, add each command that must wait, for example
git push origin main, gh pr merge or terraform apply, and name its approvers (the owner by default). Any shell command containing that text posts an approval card, in both permission modes and on schedules. With no decision within the hold window, four hours by default, the command does not run and the agent continues. Details: Approvals and Permissions.5
Route a Slack channel to the agent
In Agent settings, click Configure on the
CHANNEL row, then Add a channel to listen to, for example #eng-tickets. For a private channel, run /invite @xpander first. Under Rules, describe when the agent steps in, such as “A message that links a bug or feature ticket and asks for a fix”, and turn on Also engage in thread replies. Details: Agents in Slack.6
Post the first ticket
Post a small, well-defined ticket. The agent answers in a thread, works in its own sandbox and git working tree, and can run several tickets at once in separate conversations. Approval cards reach approvers in xpander Chat and Slack.
Check the result
- The thread: the agent’s questions, progress and the pull request link.
- The pull request on GitHub, pushed with the access from step 3.
- The task in xpander Chat: every action, each approval and who decided, and the cost. See Conversations and tasks.
Next steps
Approve an agent's actions
What waits and who decides.
Let an agent wait without holding capacity
Waiting for a pull request or reply.

