Works with GitHub
Build a pull request bot, a code reviewer, an issue sorter or a repo dashboard on a repo someone connects in one click — or show each visitor's GitHub profile next to what they add.
What you can build
Apps that work on a real repo: a bot that answers every new pull request, a reviewer that reads the diff and leaves comments, an issue sorter that labels what comes in, a dashboard of a repo's commits and open issues. The person who connects a repo picks exactly which repos your app gets, and GitHub's events for those repos arrive at your app as they happen. Apps that just want to know who someone is on GitHub can show each visitor's profile — name, avatar, bio — next to what they add.
How it connects
There are two lanes, and an app can use both side by side.
- Repos ride the vibes.diy GitHub App. Your app shows a Connect link; the
person reads your app's one-sentence reason on a vibes.diy consent page,
signs in to GitHub, and ticks the repos this app gets. The platform's GitHub
App holds the credential, so your app carries no GitHub key. Your
backend.jsdeclares the permissions it uses, calls the repo withctx.github.fetch, and hears events at its/_api/github-webhookroute. - A profile rides a connection. Each visitor links their own GitHub account
in one click, and your backend reads their profile through
@vibes.diy/social. See Connect accounts.
Public data nobody signs in for — the stars or releases of a public repo — is an ordinary fetch from your backend, with no connect step at all.
What it can read and do
| Lane | Your app can read | Your app can do |
|---|---|---|
| GitHub App (repos) | Code, commits, branches, releases, pull requests and their files, issues and labels, commit statuses and check results, Actions runs | Comment on and review pull requests, label and comment on issues, mark commits passing or failing, post check results, change code and merge, each only when declared |
| Connection (profile) | The visitor's login, name, bio, avatar and profile link | Show who they are next to their entries |
The consent page lists every permission your app declares in plain words, so the person sees exactly what it will do in their repos before they connect.
See it working
Rules Bag Reviewer: connect a repo, and each new pull request gets an automatic review against a shared set of coding rules, posted as comments on the pull request.
Starter prompts
- Build a GitHub bot that leaves a friendly note on each new pull request saying how big the change is.
- Make an issue sorter for my GitHub repo that suggests a label for each of its open issues and applies it with one tap.
- Make a guestbook where visitors sign in with GitHub and their avatar and bio show next to their note.
Good to know
- The person connecting a repo can push to it. The repo picker offers the repos they can write to; someone with read access can ask a maintainer to connect it.
- Each app gets the repos chosen for it. Connecting a repo to one app leaves every other app as it was, and pressing Connect again is how someone adds or removes a repo.
- The repo's team comes first. A bot that acts on its own starts by answering the repo's owners, members and collaborators, with a two-choice control that opens it to anyone.
- Profile connections read the profile. Anything that changes a repo goes through the GitHub App lane, where the person picks the repos.
Go deeper
- The GitHub skill — the builder's own recipe:
permissions, the Connect link,
ctx.github.fetchand webhooks. - Connect accounts — the profile connection, end to end.
- Your app has a backend — webhook delivery,
retries and the
fetchhandler. - All integrations