GitHub-native agents

Turn GitHub issues into pull requests with one comment

Comment @porter on any GitHub issue. A Fly Machine spins up, runs your agent, and opens a PR.

porter — zsh
> GitHub issue #42: Fix auth redirect bug
@porter opencode fix auth redirect
Spawning Fly Machine...
Cloning repo...
Running opencode agent...
Found bug in auth.ts:134
Created PR #423: Fix auth redirect
Machine destroyed ($0.03)
$

Why Porter

One orchestrator, zero lock-in

Porter standardizes request, execution, and reporting flow across agents while keeping GitHub as your team interface.

Isolated cloud execution

Every task runs in a fresh Fly Machine. No local setup, no state leaking between runs.

Any agent, same workflow

Route issues to Opencode, Claude Code, or Amp. Switch agents without leaving GitHub.

You own your credentials

API keys live in a private Gist you control. Porter reads them at runtime, never stores them.

No platform fee

You pay for Fly compute and model tokens. Porter takes nothing on top.

How it works

Porter runs where your code already lives

01

Install the GitHub App

Add Porter to your repos. It gets just enough access to read issues and open PRs.

Porter can now watch for @porter mentions.

02

Add your API keys

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.

03

Comment @porter on an issue

Pick an agent — @porter opencode, @porter claude, or @porter amp.

Porter reads the issue, builds a prompt, and spins up a Fly Machine.

04

Review the PR

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

Real workflows, real issues

Bug triage to patch

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 body

Large refactors

Drive 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 contracts

Test coverage before release

Generate 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 cases

Dependency upgrades

Automate 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