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.
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.
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:
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.
The GitHub panel displays both issues and pull requests from the project's repository, interleaved in a single list sorted by most recently updated:
Pull requests appear in the same list as issues but are visually distinct so they can be identified at a glance:
| Kind | Leading icon | Badge |
|---|---|---|
| Open issue | Green open-circle | — |
| Closed issue | Purple checkmark | — |
| Open pull request | Green git-branch | Green PR pill beside the title |
| Merged pull request | Purple git-merge | Purple PR pill beside the title |
| Closed (unmerged) pull request | Red cross-box | Red 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.
The panel can be displayed in two widths:
| Width | Description |
|---|---|
| Compact | A narrow sidebar (320px) showing issue titles and metadata |
| Full | An 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.
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.
When you are in a session (new or existing), each issue shows:
Once an issue is attached, the button changes to:
When you are on the home screen with no session selected, each issue shows only:
Hover over any button to see a tooltip describing its action:
| Button | Tooltip |
|---|---|
| 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 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.
Clicking on an attached issue pill opens a popover with the full issue detail:
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.
When an issue is sent to the agent, the following information is included:
| Field | Description |
|---|---|
| number | The issue number |
| title | The issue title |
| description | The full issue body text |
| state | Whether the issue is open or closed |
| stateReason | Why the issue was closed (completed, not_planned, or null if open) |
| author | The GitHub username of the person who opened the issue |
| labels | All label names applied to the issue |
| comments | Each comment's body text along with the author's GitHub username |
| commits | Commits referenced in the issue timeline, including SHA, message, author, and date |
| pullRequests | Pull requests that reference or close the issue, including PR number, title, state (open, closed, or merged), branch name, and merge date |
| crossReferences | Other issues that reference this issue, including their number, title, and state |
| createdAt | When the issue was created |
| updatedAt | When 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.
Braide automatically manages a "wip" label on GitHub issues to signal whether work is in progress.
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.