Isolated cloud execution
Every task runs in a fresh Fly Machine. No local setup, no state leaking between runs.
GitHub-native agents
Comment @porter on any GitHub issue. A Fly Machine spins up, runs your agent, and opens a PR.
Why Porter
Porter standardizes request, execution, and reporting flow across agents while keeping GitHub as your team interface.
Every task runs in a fresh Fly Machine. No local setup, no state leaking between runs.
Route issues to Opencode, Claude Code, or Amp. Switch agents without leaving GitHub.
API keys live in a private Gist you control. Porter reads them at runtime, never stores them.
You pay for Fly compute and model tokens. Porter takes nothing on top.
How it works
Add Porter to your repos. It gets just enough access to read issues and open PRs.
Porter can now watch for @porter mentions.
Create a private Gist with your Fly token and model provider keys.
Each task gets your credentials at runtime. Nothing is stored on our side.
Pick an agent — @porter opencode, @porter claude, or @porter amp.
Porter reads the issue, builds a prompt, and spins up a Fly Machine.
The agent clones your repo, does the work, and opens a pull request.
Full trail from issue to branch to PR, all in one thread.
Use cases
Trigger a fix directly from the incident issue and get a reviewable PR without switching tools.
@porter opencode reproduce and patch oauth callback mismatch from logs in issue bodyDrive architecture cleanups from an issue-scoped plan with one auditable thread from request to merged code.
@porter claude migrate legacy REST handlers to shared service layer and preserve existing contractsGenerate targeted tests around risky code paths before cutover windows or major dependency upgrades.
@porter amp add tests for checkout retry, timeout fallback, and webhook signature edge casesAutomate framework and package migrations with acceptance criteria defined in the issue.
@porter opencode upgrade to react 19, replace deprecated APIs, and include migration notes in PR