GitHub Integration

Braide integrates with GitHub to let you browse repository issues and pull requests, attach them to agent sessions, and start new sessions directly from either. This gives agents full context about the work you want done.

Prerequisites

  • Your project directory must be a Git repository with a GitHub remote
  • A GitHub token must be set as an environment variable:
export GITHUB_TOKEN=ghp_your_token_here
# or
export GH_TOKEN=ghp_your_token_here

The token needs read access to issues and labels for your repositories.

Opening the GitHub Panel

The GitHub panel is available from any view — the home screen, a new session, or an existing session. There are two ways to open it:

  1. Toggle button — Click the GitHub icon button (the Octocat logo) in the top-right area of the current view
  2. Edge hover — Move your cursor to the right edge of the view (within ~10 pixels of the edge) and the panel will slide open automatically

The panel animates open and closed with a smooth slide transition. When opened via edge hover, the panel overlays the content and closes automatically when you move the cursor away.

Browsing Issues and Pull Requests

The GitHub panel displays both issues and pull requests from the project's repository, interleaved in a single list sorted by most recently updated:

  • Filter by state — Toggle between Open and Closed using the filter buttons at the top of the panel. The filter applies to both issues and pull requests; merged PRs count as closed.
  • Search — Type in the search field to filter by title, number, label name, or body text
  • Row details — Each row shows its title, number, author, labels, comment count, and relative timestamps
  • Pull to refresh — Scroll up past the top of the list to trigger a refresh, or click the refresh button in the panel header
  • Infinite scroll — Additional pages load automatically as you scroll down
  • Caching — Results are cached for 5 minutes to prevent flickering when reopening the panel

Telling Issues and Pull Requests Apart

Pull requests appear in the same list as issues but are visually distinct so they can be identified at a glance:

KindLeading iconBadge
Open issueGreen open-circle
Closed issuePurple checkmark
Open pull requestGreen git-branchGreen PR pill beside the title
Merged pull requestPurple git-mergePurple PR pill beside the title
Closed (unmerged) pull requestRed cross-boxRed PR pill beside the title

The coloured PR badge that prefixes pull request titles uses the same open/merged/closed palette as the leading icon, so the state of a pull request is readable even in the compact panel width where labels are hidden.

Panel Width

The panel can be displayed in two widths:

WidthDescription
CompactA narrow sidebar (320px) showing issue titles and metadata
FullAn expanded view (50% of the viewport) that also displays issue labels

Click the expand/collapse chevron button in the panel header to toggle between widths. On narrow viewports (below 900px), the panel is forced to compact width.

Row Actions

Each row in the panel — issue or pull request — has a split button in the top-right corner that provides context-aware actions. The same attach and chat actions apply uniformly to issues and pull requests. The available actions depend on whether you have an active session.

With an Active Session

When you are in a session (new or existing), each issue shows:

  • Attach (paperclip icon) — Click to attach the issue to the current session. The issue appears as a pill in the session header and its content is included as context when you send your next prompt.
  • Chat (speech bubble icon, in dropdown) — Click the chevron to reveal a dropdown with the Chat option. This starts a brand new session with the issue pre-attached.

Once an issue is attached, the button changes to:

  • Detach (unlink icon) — Click to remove the issue from the current session. The Chat dropdown is hidden for attached issues since the issue is already part of the current session.

Without an Active Session (Home Screen)

When you are on the home screen with no session selected, each issue shows only:

  • Chat (speech bubble icon) — Click to create a new session with this issue automatically attached. You will be taken to the new session view where you can select an agent and begin working on the issue.

Tooltips

Hover over any button to see a tooltip describing its action:

ButtonTooltip
Attach (paperclip)"Attach to session"
Detach (unlink)"Detach from session"
Chat (speech bubble)"Start new session with this issue"
Chevron (dropdown)"Start new session with this issue"

Attached Issue Pills

Attached issues appear as pills in the session header, below the session title. Each pill carries a small GitHub mark icon, the issue number and title, and an X button (revealed on hover) to detach. Issue pills sit alongside any image attachment pills, which are color-coded differently so the two types are easy to tell apart.

You can attach multiple issues to a single session. When you send a prompt, all attached issues that haven't been sent previously are automatically included as context.

Issue Detail Popover

Clicking on an attached issue pill opens a popover with the full issue detail:

  • Header — Issue number, state badge (Open or Closed, color-coded), title, author, and opened/updated dates
  • Labels — Colored pills for each label applied to the issue
  • Description — The full issue body, rendered as Markdown
  • Pull Requests — An expandable list of PRs that reference or close the issue, showing state (open, closed, or merged), branch name, and merge date
  • Referenced Issues — An expandable list of other issues that cross-reference this one, with their state
  • Commits — An expandable list of commits linked to the issue, showing the SHA, message, author, and date
  • Comments — An expandable list of all comments with author and date, rendered as Markdown

The Pull Requests, Referenced Issues, and Commits sections only appear when there are items to display. Click outside the popover or press Escape to close it.

Information Included in Attached Issues

When an issue is sent to the agent, the following information is included:

FieldDescription
numberThe issue number
titleThe issue title
descriptionThe full issue body text
stateWhether the issue is open or closed
stateReasonWhy the issue was closed (completed, not_planned, or null if open)
authorThe GitHub username of the person who opened the issue
labelsAll label names applied to the issue
commentsEach comment's body text along with the author's GitHub username
commitsCommits referenced in the issue timeline, including SHA, message, author, and date
pullRequestsPull requests that reference or close the issue, including PR number, title, state (open, closed, or merged), branch name, and merge date
crossReferencesOther issues that reference this issue, including their number, title, and state
createdAtWhen the issue was created
updatedAtWhen the issue was last updated

This gives agents a comprehensive view of the issue — not just what the problem is, but who reported it, what work has already been attempted (via PRs and commits), and what related issues exist.

WIP Labels

Braide automatically manages a "wip" label on GitHub issues to signal whether work is in progress.

  • Added — When you attach an issue to a session, the "wip" label is added to that issue on GitHub.
  • Removed on archive — When a session is archived, the "wip" label is removed from all of its attached issues.
  • Removed on delete — When a session is permanently deleted, the "wip" label is also removed from all attached issues.
  • Removed on detach — If you detach an individual issue from a session, the "wip" label is removed from that issue.

Issues with the "wip" label appear dimmed in the GitHub panel, making it easy to see which issues already have an agent working on them.