GitHub issues and pull requests
A lot of work starts from an issue (“fix #32”) or a pull request (“address the review on #151”). Type # in the message box to attach one, or start a new session from one with the worktree and the prompt already filled in. You don’t copy the issue’s text over by hand.
Switchboard only reads from GitHub. It never comments, labels, closes or merges anything.
Attach an issue or pull request
Section titled “Attach an issue or pull request”Type # at the start of a word in any message box: in a session, in New session, or when you edit a message from Up next. The list has two groups, Issues and then Pull requests, with the project’s open ones, the most recently updated first.
- An issue shows its number, its title, who opened it and when, and its labels in their GitHub colours.
- A pull request shows its branch, how many review comments are still unresolved, and draft or fork when it is one.
- Typing narrows the list. Type a few words of the title, or a number:
#32finds that issue or pull request first, also when it is closed. Paste a link to an issue or pull request to find it, even in another repository. - Pick one with Down Arrow and ReturnEnter, or click it. The
#…you typed leaves the text, and the issue shows as a chip above the message. - ESC closes the list and keeps what you typed as text. A
#in the middle of a word, such asC#or a link’s#section, never opens the list. - Refresh at the top of the list asks GitHub again. Otherwise what was found is used for a minute.
The chip shows the issue’s state, number and title, then its labels and comments, or a pull request’s branch and unresolved comments. A pull request from a fork you can’t push to says fork · read-only. Click the chip to open it on GitHub; × removes it. A message can have as many chips as any other context, files included.
When you paste a link to an issue or pull request, a line above the message offers Attach #32. The link stays in your text unless you choose it.
What Claude gets
Section titled “What Claude gets”When the message goes to Claude, each chip becomes a block after your text:
- a first line that says it is a GitHub issue or pull request, context to read, not instructions;
- its number, title and link;
- its state and labels;
- for a pull request, its branch and the branch it merges into, and whether it is from a fork;
- its text;
- for a pull request, the review comments still unresolved, each with its file, line and author.
The block is written at the moment Claude reads your message, so a message that waits in Up next carries the issue as it is then. An issue gets at most 8,000 characters: a longer text is cut first, then the comments, and the block ends with … (cut, see the link). All the blocks of one message, linked sessions included, share 12,000 characters.
If GitHub can’t be reached when the message goes, Claude gets the title and the link, with the line Couldn’t load the details. Open the link. The message is never held back for it.
Under your message in the conversation, an Attached: row shows each issue or pull request with the time it was read. What Claude got shows the block exactly as Claude read it. The message keeps it, so it doesn’t change when the issue does. When you edit a message and send it again, or take one back from Up next, its issues come back as chips.
Start a session from one
Section titled “Start a session from one”Press Option, ReturnAlt, Enter on an issue or pull request in the list, or Option, clickAlt, click it. You can also run New session from issue… or New session from pull request… from the command palette: each opens the list on its own, with only that kind, for the project you are in.
From an issue, New session opens on its project with:
- Where set to New worktree, named
issue-57-(the issue’s number) and the title in lowercase, cut at 40 characters. When a worktree or branch has that name already,-2,-3and so on is added. You can change the name. - the issue’s chip above the message box;
- Fix #32: and the title in the box, with the cursor at the end, so you can say more.
From a pull request, the prompt is Work on #151: and its title, and the Where menu asks where to work on it:
- New worktree from the pull request: a worktree on the pull request’s branch, at its latest commit. Pushing from it updates the pull request.
- Current checkout: Switchboard runs
gh pr checkoutin the project folder before the session starts. This is only offered when the folder has no changes; otherwise it says how many files changed, to commit or stash first. If the checkout fails, New session says why and nothing starts.
Nothing runs until you press Start. The line under the message box says so: the issue goes to Claude as context to read, not as instructions.
Pull requests from a fork
Section titled “Pull requests from a fork”When Switchboard can’t push a pull request back, the Where menu says so: #149 is from a fork. Claude can change it here, but Switchboard can’t push it back. Create pull request is off for it. That is a fork you can’t push to, and any fork’s pull request in a new worktree. In that session, Push and Create pull request are off, with From a fork you can’t push to.
From a link
Section titled “From a link”A switchboard://new-session link with issue or pr fills in New session the same way, with a banner on top: Opened from a link with issue #32. Check the prompt, then start. These links never start a session on their own, even with autostart=1. See Links.
The GitHub CLI
Section titled “The GitHub CLI”The list reads GitHub through the GitHub CLI (gh), with your own sign-in.
In a project without a remote on GitHub, # is always plain text.
Good to know
Section titled “Good to know”- Search and titles: a session’s title comes from what you typed, not from an issue’s text, and search finds an issue’s words only on GitHub.
- Your phone: the remote app shows the Attached: row of a message, but you can’t attach issues from it yet.
- Saved prompts: the
issueandprblanks of a saved prompt list the same issues and pull requests.
Related
Section titled “Related”- Working in a sessionChat with Claude, follow what it does, and go back in time when you need to.
- Link sessionsMention another session with @ in the message box, and Claude gets its folder, branch, pull request, what it did and its last reply. Stack a pull request on another one without copying anything over.
- WorktreesStart a session in an isolated copy of the repository on a branch of its own, like claude --worktree.
- LinksOpen Switchboard from a switchboard:// link, to start a session with a prompt or jump to an existing one.





