DOCS / INTEGRATIONS
Providers overview
Birch connects to six providers. Three are full git hosts — GitHub, GitLab, and Azure DevOps give you pull requests and issues — and three are issue trackers only: Jira, Linear, and YouTrack feed your Inbox with assigned tasks. All use personal tokens stored in your OS keychain, all support multiple accounts, and all but Linear work self-hosted.
Capability matrix
Section titled “Capability matrix”| Provider | Pull requests | Tasks in the Inbox | Self-hosted |
|---|---|---|---|
| GitHub | Yes | Assigned issues | GitHub Enterprise Server |
| GitLab | Yes (merge requests) | Assigned issues | Self-managed GitLab |
| Azure DevOps | Yes | Assigned work items | Azure DevOps Server |
| Jira | No | Assigned issues | Jira Server / Data Center |
| Linear | No | Assigned issues | No — cloud only |
| YouTrack | No | Assigned issues | YouTrack Server |
The three git hosts drive everything PR-related: the PR lists on the repository page, the workspace PR card, creating and managing pull requests, and AI code review. The three trackers only feed tasks — they have no pull requests and no git remotes, so Birch never tries to match them to a repository.
Cloud and self-hosted
Section titled “Cloud and self-hosted”Every connect form except Linear’s takes an instance URL:
- GitHub — leave the base URL empty for github.com; for GitHub Enterprise
Server enter the API root,
https://<host>/api/v3. - GitLab — leave the base URL empty for gitlab.com; for self-managed GitLab enter your instance’s root URL.
- Azure DevOps — the URL is always required:
https://dev.azure.com/your-org, or your collection URL on Azure DevOps Server. - Jira — the site URL is always required:
https://your-domain.atlassian.netfor Cloud, or your self-hosted Jira URL. Birch detects Cloud vs Server/Data Center automatically — see Jira. - YouTrack — the base URL is always required and is stored exactly as you type
it, including a context path like
/youtrack. One code path serves Cloud and Server alike. - Linear — there is no URL field. Linear is cloud-only.
How authentication works
Section titled “How authentication works”Open Settings → Integrations (⌘, / Ctrl+,), click a provider tile, and the
connect form expands below the tiles. Every provider authenticates with a personal
token — there is no OAuth sign-in flow:
- Click the Create a token … link in the form. It opens the provider’s token page in your browser, and it honors the self-hosted URL you typed — for example, a GitHub Enterprise base URL sends you to that instance’s token settings, not to github.com.
- Paste the token (plus the provider’s other fields) and click Verify & connect. Birch verifies the credential against the provider before storing anything — a bad token is rejected on the spot.
- On success the account appears above the form with a Connected badge, its
base URL, and a
Verified:timestamp, plus Sync now and Remove buttons.
As the pane itself says: “The token is stored in the system keychain and used for Git operations and Inbox sync.” Tokens live in your OS credential store, not in Birch’s database.
You can connect multiple accounts per provider — the connect form stays available after the first account, so a work and a personal GitHub account (or two Jira sites) coexist fine.
Provider tokens are a separate system from the git credentials used for push and pull over HTTPS/SSH — those are managed further down the same pane. See Git credentials.
What syncs, and when
Section titled “What syncs, and when”Birch’s background sync talks to your connected accounts roughly every 10 minutes (with a little jitter to spread requests out). Each cycle refreshes:
- pull request state for your repositories, including checks,
- review-requested PRs and activity on your own PRs, into the Inbox,
- PR comments,
- your assigned issues and work items, into the Inbox Tasks tab — including images from their descriptions, downloaded as thumbnails.
PR state also syncs once shortly after the app starts, so you are not waiting ten minutes after launch. Outside the schedule you can force a refresh with the per-account Sync now button in the Integrations pane, and entering a workspace refreshes that branch’s PR chip on the spot.
If automatic AI review is enabled, newly synced PRs can be reviewed as they arrive — an Anthropic API feature. Sync activity can also raise desktop, sound, and Teams notifications — see Notifications.
Issue status transitions
Section titled “Issue status transitions”When you start a workspace from a tracker task — and again when you create a PR from that workspace — Birch can move the issue through your workflow. The first time, an Update task status? dialog shows the issue, its current status, and a Move to picker; choose a status and click Change status, or Skip. Ticking Remember and don’t ask again makes Birch apply that same status automatically next time.
Settings → Tasks holds the per-account configuration: one row per tracker account and surface (workspace launch, PR created), each with a mode:
| Mode | Behavior |
|---|---|
| Ask each time | Show the status dialog (the default) |
| Change automatically | Apply the remembered status silently — offered only once a status has been remembered |
| Never offer | Do nothing, and stop asking |
Each row shows its Remembered status: and a Reset button. The dialog’s
“Don’t offer this anymore” link is a shortcut to Never offer.
What a “status” is depends on the provider: Jira offers its workflow transitions, Linear its workflow states, and YouTrack the values of its State field. On the git hosts: GitHub offers the Status field of the Projects v2 boards the issue is on (GitHub has no workflow on the issue itself), GitLab offers its Work Item statuses (a Premium/Ultimate feature on GitLab 18.4+ — on other instances no statuses are offered), and Azure DevOps offers the work item type’s own states.
Issue-only providers and the repository picker
Section titled “Issue-only providers and the repository picker”Jira, Linear, and YouTrack tasks carry no repository information Birch could match to a local clone — their URLs point at a tracker site, not a git remote. So when you click Start workspace on one of those tasks, Birch opens the Choose Repository dialog and asks you where the work should happen. That is the designed flow, not an error. See Start a workspace from a task.
Their issue identifiers (PROJ-123, ENG-123) are not numbers, so Birch labels
tasks and status prompts with the identifier itself rather than a #123-style
number.
Removing an account
Section titled “Removing an account”Click Remove on the account’s row in the Integrations pane. The account disappears from the pane and from Birch’s account pickers, and background syncing for it stops. To reconnect later, add the account again with a fresh token.