Bonus: Integrating with GitHub
Beads Meets GitHub
Beads is local-first. Your issues live in git, travel with your repo, and work perfectly without a GitHub account. But most teams use GitHub Issues for stakeholder visibility and PR reviews. This module bridges the two.
By the end you’ll be able to:
-
Configure Beads to know your GitHub org and repo
-
Push a Beads issue to GitHub Issues so teammates can see it
-
Link an open PR to a Beads issue so
bd showsurfaces it
What this is not:
-
Not a full two-way real-time sync — that’s a team Dolt remote feature and is out of scope here
-
Not a replacement for GitHub Issues — it’s a bridge
The pattern is: you own the issue in Beads, GitHub Issues gets a read-friendly copy, and PRs link back to both.
Prerequisites
Before you start, confirm you have:
-
GitHub CLI (
gh) installed and authenticated -
A GitHub repository you can push to
-
Beads initialized in a local clone of that repo
Check that gh is ready:
gh auth status
If you’re not authenticated yet:
gh auth login
Follow the prompts — gh will open a browser window and handle the OAuth flow. Come back here once gh auth status shows your username.
Configure Beads for GitHub
Tell Beads which repo to talk to:
bd config set github.org your-github-username
bd config set github.repo your-repo-name
Verify the config took effect:
bd config list
You should see github.org and github.repo in the output.
|
These settings are stored in |
Lab: Pushing Issues and Linking PRs
Use any GitHub repo you own, or fork one for this exercise. The steps below use placeholders — substitute your own values as you go.
Step 1: Configure GitHub integration
bd config set github.org <your-github-username>
bd config set github.repo <your-repo-name>
Step 2: Create a Beads issue to push
bd create --title="Add rate limiting to API endpoints" --description="Implement per-user rate limiting on all public API endpoints. Limit: 100 requests/minute. Return 429 with Retry-After header." --type=feature --priority=2
Note your issue ID from the output — it will look something like myproject-b7c.
Step 3: Push the issue to GitHub Issues
bd github push <your-issue-id>
This creates a GitHub Issue in your configured repo. Beads records the github.issue_number on the local issue so the two stay linked.
Step 4: View the linked issue
bd show <your-issue-id>
The GitHub Issue URL now appears in the output. Open it in the browser to confirm it landed:
gh issue view <github-issue-number> --web
Step 5: Create a branch and open a PR
git checkout -b feature/rate-limiting
git commit --allow-empty -m "WIP: rate limiting implementation"
git push -u origin feature/rate-limiting
gh pr create --title "Add rate limiting to API endpoints" --body "Implements #<github-issue-number>" --draft
Note the PR number from the output.
Step 7: Verify the two-way relationship
bd show <your-issue-id>
The output now shows both the GitHub Issue URL and the linked PR. On the GitHub side:
gh pr view <pr-number>
The PR description references the GitHub Issue number, creating the link GitHub’s UI understands — the issue gets a "linked pull request" badge automatically.
Working with bd and gh Together
A few guidelines to keep the two tools from stepping on each other:
-
bdmanages your local task graph;ghmanages GitHub state — they have different jobs -
Don’t use
gh issue closefor issues you track in Beads — close them withbd closeso the local graph stays consistent -
Use
gh prfreely — Beads tracks the PR link, not the PR state, so there’s no conflict
|
For a clean PR workflow, file the Beads issue first ( |
Check Your Understanding
A quick recap of what you configured and why:
-
bd config set github.org/github.repo— tells Beads which GitHub repo to talk to -
bd github push— creates a GitHub Issue from a Beads issue, recording the link in both directions -
bd github link-pr— connects a PR to a Beads issue for traceability across your task graph and GitHub’s code review UI -
bd show— surfaces the GitHub Issue URL and linked PR in a single view, so you don’t have to jump between tools to get the full picture
Exit outcome: you can surface Beads work in GitHub and link code reviews back to the issues that motivated them. Teammates and reviewers get GitHub visibility; you keep the local-first workflow.
You’ve completed the course. The core skills live in Modules 1 through 4 — come back to this bonus module when you’re ready to surface Beads work for teammates or code reviewers on GitHub.
Key resources:
-
Beads documentation: gastownhall.github.io/beads
-
GitHub CLI docs: cli.github.com/manual