<public-url> below for your stable public Roomote URL.
Session path
Open/setup and complete the short account and inference bootstrap. In the
setup conversation, choose GitHub in the source-control card, open its
configuration dialog, and click Create GitHub App. Roomote sends GitHub a
manifest with the callback, webhook, permissions, and events preconfigured.
After GitHub redirects back, Roomote saves the generated app ID, app slug,
OAuth client credentials, webhook secret, and private key, then sends you to
install the app on repositories. You pick the account or organization to
install on during that install step.
By default the app is created on your personal GitHub account and marked as
installable on any account, so you can install it on any organization you
belong to. If your organization should own the app instead, click Show
advanced config and enter the organization name before clicking Create
GitHub App.
Use the manual steps only when you already have a GitHub App or want to manage
these values in deployment environment variables yourself.
Manual GitHub App setup
- Go to GitHub App settings. For an organization-owned app, use the organization’s Developer settings > GitHub Apps > New GitHub App page.
- Set GitHub App name to a unique name.
- Keep Identifying and authorizing users enabled.
- Set Homepage URL to
<public-url>. - Set Setup URL to:
- Check Redirect on update.
- Set Callback URL to:
- Enable Expire user authorization tokens.
- Set Webhook URL to:
- Generate a webhook secret and save the same value in Roomote:
- Under Where can this GitHub App be installed?, choose Any account if you want to install the app somewhere other than the account that owns it. Only on this account also works when the owning account is where you will install it.
Permissions and events
Grant these repository permissions:- Actions: Read and write
- Checks: Read and write
- Contents: Read and write
- Commit statuses: Read-only
- Deployments: Read-only
- Dependabot alerts: Read-only
- Code scanning alerts: Read-only
- Issues: Read and write
- Merge queues: Read-only
- Metadata: Read-only
- Organization projects: Read and write
- Pull requests: Read and write
- Workflows: Read and write
- Check run
- Check suite
- Commit comment
- Create
- Delete
- Dependabot alert
- Deploy key
- Deployment
- Deployment protection rule
- Deployment review
- Deployment status
- Fork
- Gollum
- Installation target
- Issue comment
- Issue dependencies
- Issues
- Label
- Merge group (merge queue entry)
- Meta
- Milestone
- Public
- Pull request
- Pull request review
- Pull request review comment
- Pull request review thread
- Push
- Release
- Repository
- Repository dispatch
- Security advisory
- Star
- Status
- Sub issues
- Watch
- Workflow dispatch
- Workflow job
- Workflow run
installation and installation_repositories
events automatically; you do not need to subscribe to them in the app form.
Roomote uses the Repository and installation_repositories events to
pick up newly created or newly granted repositories without a manual refresh.
If your app was created before the Repository event was part of the
manifest, confirm it is enabled under the app’s Permissions & events page
— GitHub has no API to update an app’s event subscriptions.
Save credentials
Copy these values into the source-control card’s configuration dialog, deployment env vars, or your local.env.local:
R_GITHUB_APP_SLUG is required when your GitHub App slug is not
roomote; Roomote uses it for GitHub mentions and bot-authored PR detection.
If trusted review or notification activity can also come from other Roomote
GitHub Apps, list their exact slugs in R_GITHUB_ADDITIONAL_APP_SLUGS:
.pem file. Convert it to an escaped single-line value before
saving it in an env var:
Public GitHub reads
An eligible deployment GitHub App installation with an active connected repository is required to mint the scoped installation token used by the GitHub tools, including public reads. With that connection, active Roomote members can inspect any publicgithub.com repository in a session without
connecting the public target or linking a personal GitHub account. The same
reads are available in coding tasks, including automated tasks without a human
driver. No clone or personal access token is needed.
Use the existing GitHub tools for files and directories, code search, issues,
and pull requests. Tool discovery supplies their native descriptions and
argument schemas. Searches use GitHub’s own query syntax; adding a
repo:owner/name or org: qualifier, for example
Hello repo:octocat/Hello-World, keeps results focused. GitHub’s tool
availability, permissions, rate limits, pagination, and search-index limits
apply; partial or empty search results are not proof of absence.
Native reads of unconnected repositories are limited to 2 MiB of response
bytes and a 15-second upstream deadline, including JSON or SSE body reads.
Oversized, timed-out, or failed reads are not retried through another path.
These additional limits do not apply to connected repository calls.
Unconnected reads use the token of the deployment’s first installation, which
covers the repositories connected on that installation. GitHub denies private
repositories outside that token’s scope.
Private reads and all writes still require an eligible connection to the
target repository. Connected access keeps its existing authorization; Roomote
does not retry lookup or authorization failures through another credential.
The coding-task GitHub MCP remains read-only; writes use the existing
authorized coding-task source-control workflow. Other source-control providers
are unchanged.
Multiple installations and searches
GitHub tool discovery supports multiple installations of the configured GitHub App. Connected repository reads and supported writes use the installation connected to the requested active repository, with one token covering every repository connected on that installation. Suspended installations, inactive or disconnected repositories, and installations of a different app are not eligible. Personal GitHub account linkage is not required for these deployment-connected tools; coding-run tokens remain read-only on this MCP path. Identify the repository withowner and repo for repository tools. Code,
pull request, and repository searches accept GitHub’s query syntax as written,
including searches that span several repositories. Each call runs under one
installation’s credential, covering every repository connected on that
installation plus public repositories: the installation that owns the
repository named by owner/repo or a repo:owner/name qualifier, otherwise
the deployment’s first installation. With more than one installation, scope a
search to the organization or repository you mean so it runs under the right
one.
Daily GitHub management
Roomote can use GitHub’s native tools directly, without starting a coding task: pull request and issue edits, comments, replies and reactions, reviews, labels, branches, and small file changes. Their discovered descriptions and schemas define the supported arguments. These actions use the deployment GitHub App, require an active Roomote member, and run under a token that reaches only the repositories connected on that installation, the same boundary a coding task has. What the token may do there is set by the App’s permissions on GitHub. No personal GitHub OAuth connection is required. Ask for the specific change and identify the repository and target issue, pull request, or comment. Every call appears in the session transcript with its inputs and result. For example, ask Roomote to:- mark PR #42 in
example/repoready for review - request a review from
octocaton that PR - merge PR #42 after its required checks and reviews pass
- enable auto-merge on PR #42 so it merges once its checks and reviews pass
- add a thumbs-up reaction to an existing comment, providing its GitHub URL
- list, create, edit, delete, and apply labels to issues or pull requests
- create, update, delete, and report progress for milestones; assign issues to milestones
- list accessible GitHub Projects V2, inspect an issue or pull request’s Status, and update an existing project item’s single-select Status field
Start work from issues and pull requests
Once the app is installed and the repository is synced:- mention
@roomote(or your deployment’s GitHub App slug) in a pull request comment, review comment, or review to talk to Roomote about that pull request - mention the same handle in a GitHub issue comment, or in a new issue body, to talk to Roomote about that issue
- link your GitHub account under Settings -> Linked Accounts so Roomote can run the conversation as you
@roomote review this) and
Roomote runs the Review Code automation’s structured review on the current
head, posts the findings on the pull request, and reports back in the same
discussion.
Review Code does not require the repository to be mapped to an environment.
When an environment includes the repository, the review runs there; otherwise,
Roomote uses a plain checkout of the active synced repository. Other coding work
still requires a suitable environment when it needs environment-specific setup.
To request a fresh review through GitHub, use Re-run on the Roomote code
review check for the pull request’s current head. Roomote ignores rerun events
for stale commits and checks that were not created by the configured Roomote
GitHub App.
Roomote only responds to comments that @mention it, including replies inside
a review thread it opened, so people can discuss a finding among themselves
without summoning it. On a pull request that a Roomote task opened, replies in
its review threads are collected as review feedback for the owning session,
described below.
A pull request that a Roomote task opened already belongs to the session that
started the work, for example the Slack thread where the task was requested.
Mentions on that pull request join that session instead of opening a second
one: Roomote answers on the pull request and in the session’s home surface,
and any work it delegates runs on the pull request’s branch from the same
session.
When a Roomote task opens a pull request, actionable review feedback returns to
the owning session and appears in both session and standard web task transcripts.
Use Resolve these issues to address the current feedback, Auto-resolve on
this PR to handle later actionable feedback automatically, or Dismiss to
take no action.
Failed GitHub checks also return to every Roomote task linked to the pull
request and to the conversation that started the work. Roomote consolidates a
burst of failures into one actionable notification with the check names and
links. It suppresses failures from an outdated head commit and stays silent for
successful or non-failing conclusions. Keep the Checks permission and
Check run event enabled so these notifications reach Roomote, including for
pull requests opened from forks.
Verify setup
- connect GitHub in setup or Settings
- install the app on at least one repository
- create or update an environment from that repository
- start a small task and confirm Roomote can clone the repository
- finish the task and confirm Roomote can push a branch or open a pull request
- optionally mention Roomote on a test issue and confirm a reply with a task link