Agent sessions
Send a coding agent to work on a repository, and approve what it pushes.
An agent session gives a coding agent a task and a copy of a repository. It works on your Mac, in a sandbox of its own, against your local model, and asks before anything leaves the Mac. You can start one from your phone, put the phone away, and come back to a pull request.
Before your first session
Sessions run in a disposable Linux virtual machine on your Mac, so the agent can’t touch anything else. That needs Apple’s container tool on macOS 26 or later:
brew install container
container system start
pallm sandbox check # is everything ready?
If you already use Docker or Podman, set provider = "docker" or "podman" under [sandbox] in ~/.pallm/config.toml instead.
Settings › Advanced › Agent sessions says Ready when everything is in place. The first session builds the agent’s image, which takes a few minutes once.
To work on GitHub repositories, connect an account in Settings › Advanced › GitHub with a fine-grained token. Give it only the repositories you choose, with Contents and Pull requests set to read and write. The token stays on your Mac, and the agent’s sandbox never sees it.
Start a session
Open Sessions in the sidebar and choose New Session:
- Repository: one of yours, or None for a scratch one.
- Base branch to start from.
- Task: what you want done, as you’d tell a colleague.
- Model and Agent. The default agent is pi.
The session shows the agent’s steps as it goes. Send a follow-up from the box at the bottom at any time.
Approving the result
When the agent has a commit ready, the session shows an approval card with the repository, the branch and the exact commit:
- Review Changes opens the diff, side by side or unified. Long-press a line (or right-click on a Mac) to comment on it.
- Request Changes sends your note and line comments back to the agent. Nothing is pushed.
- Deny ends it. Nothing is pushed.
- Approve pushes exactly that commit to a new
pallm/branch and opens a draft pull request. Nothing else is pushed, and never to your base branch.
You can answer from the notification too.
After the pull request
The session follows its pull request: checks, reviews and comments. When a check fails or a reviewer asks for something, Fix This sends it to the agent, with the end of the failing log.
From the Terminal
pallm session start -repo you/project "Fix the flaky date test"
pallm session ls
pallm session attach <id>
pallm session diff <id>
pallm session approve <id>