Cursor Origin
Will Cursor Origin Work With GitHub? Mirroring & Interop
Yes, and since August 17, 2026 it is a documented feature rather than a git trick. Origin's early beta can sync a GitHub repo, keep it updated in real time, sync pull requests both ways and leave GitHub as the source of truth until you detach. Plain git mirroring still works too. What does not move is issues, Actions workflows, secrets and branch protections.

On this page
Will Cursor Origin work with GitHub?
Cursor's docs now say so directly. Sync from GitHub at cursor.com/codebase copies a GitHub repository into Origin and keeps it updated as the GitHub repo changes; pull requests on a synced repo work on Origin and sync back to GitHub within seconds; pushes pass through to GitHub, which the docs call the source of truth for anything started there; and Detach from GitHub turns the Origin copy into a standalone Origin-hosted repo. The prerequisites are a paid plan with Origin access, the Cursor GitHub app connected to the owning org, and GitHub admin rights on the repo. Under that sits the structural reason this was always going to be possible: Origin is a git forge, and git was designed so that no host owns a repository.
So the repo layer between GitHub and Origin is a two-way door, and Origin holds it open for you. You can evaluate Origin on real work with GitHub still authoritative, and walk back by stopping the sync or simply never detaching. This page covers the documented sync first, the plain-git mechanics you can run on any host second, and then the part every mirroring guide undersells: the host data that never travels.
There is a floor under that, and it does not depend on what Cursor intends. Any host speaking the git protocol has already handed you the export, since clone and push are, after all, the same operations a mirror runs on, and Origin's docs give you an HTTPS clone URL on origin.cursor.com from the green Code button. Origin would have to stop being a git forge to close that door. The sync feature is a convenience on top of that floor, and it is the convenience most teams will actually use.
This is covered hands-on in Cursor Compile 2026 — 1 short Unit, free to read.
Rather do it than read about it? Run 11 interactive Cursor walkthroughs in a simulated editor. Free, no account needed.
How do you mirror a repo between GitHub and Origin?
Two standard patterns cover almost every case, and both are plain git, nothing vendor-specific. They matter for a repo created directly on Origin, which the sync does not cover, and for a standing copy in the other direction after a detach. The commands below use a placeholder Origin URL; the documented format is https://origin.cursor.com/{owner}/{repo}.git, with credentials from origin auth login.
Pattern 1: one remote, two push URLs
Give your existing remote a second push URL. Per git's own docs, pushing affects every defined push URL, so each ordinary git push lands on both hosts, while fetches keep coming from the first URL. Nobody on the team changes their workflow.
git remote set-url --add --push origin git@github.com:acme/app.git git remote set-url --add --push origin <origin-remote-url>
One catch before you pick that pattern. Remote configuration lives in each clone's own .git/config, so a second push URL is a per-machine setting rather than a property of the repository. Set it on your laptop and your pushes reach both hosts. Everyone else's pushes still reach one, and the mirror falls behind by however much the rest of the team merged that week. Nothing warns you, and the drift usually surfaces on the day somebody clones the mirror and finds it a month stale.
A push to two URLs is two pushes. If the second is rejected the first has already landed, so a failed git push and an unchanged pair of hosts are not, in fact, the same event. Read the output, not only the exit code.
Pattern 2: a full mirror push
For a complete copy, including every branch, tag and ref at once, clone with --mirror and push with --mirror. Git's definition is exact: all refs under refs/ are mirrored to the remote, new refs are created, changed refs are force-updated, and refs you deleted locally are deleted on the target.
git clone --mirror git@github.com:acme/app.git cd app.git git remote add origin-mirror <origin-remote-url> git push --mirror origin-mirror
A mirror push makes the target match your local refs exactly, including removing branches that don't exist locally. Point it only at a remote that is dedicated to being a mirror, never at a host where someone may have pushed work you don't have.
The two-URL trick is the tidier of the two, and it is still not the one I would run for a team. A mirror push from one machine on a schedule is uglier and it has an owner, which means there is somewhere to look when the copy goes stale. Keep pattern 1 for a solo repo, or for the two weeks you are running a trial. Past a couple of people, put the mirror push on a job.
What does not mirror between GitHub and Origin?
Everything the host stores outside the repository. Git carries the code and its history; the collaboration record around it lives in each host's own database, and no git command touches it. This is the line between "git-compatible" and "drop-in GitHub replacement", and it is worth reading slowly before you rely on a mirror as an exit.
- Asset
- Commits, branches, tags
- Carried by git mirroring?
- Yes. They are the repository; a mirror push carries every ref.
- Asset
- CI workflow files (.github/workflows)
- Carried by git mirroring?
- Yes, as files. But nothing on the other host executes them; see Origin and CI/CDContinuous Integration / Continuous Delivery. The automated pipeline that builds, tests and ships code so changes reach production safely and often. Press Enter for the full definition..
- Asset
- Pull requests and review threads
- Carried by git mirroring?
- Not by git. Origin's GitHub sync does carry them, both ways, on a synced repo; a plain mirror push leaves them behind.
- Asset
- Issues, labels, milestones
- Carried by git mirroring?
- No. Host data, and the sync docs list GitHub Issues as not included; an API export is the best you get.
- Asset
- Branch protections and required checks
- Carried by git mirroring?
- No. Host settings, re-created by hand in Origin's Rules and Protections tab.
- Asset
- Webhooks, secrets, integrations
- Carried by git mirroring?
- No. Actions workflows and secrets are listed as not synced; apps are reconnected from Origin's Apps tab.
| Asset | Carried by git mirroring? |
|---|---|
| Commits, branches, tags | Yes. They are the repository; a mirror push carries every ref. |
| CI workflow files (.github/workflows) | Yes, as files. But nothing on the other host executes them; see Origin and CI/CDContinuous Integration / Continuous Delivery. The automated pipeline that builds, tests and ships code so changes reach production safely and often. Press Enter for the full definition.. |
| Pull requests and review threads | Not by git. Origin's GitHub sync does carry them, both ways, on a synced repo; a plain mirror push leaves them behind. |
| Issues, labels, milestones | No. Host data, and the sync docs list GitHub Issues as not included; an API export is the best you get. |
| Branch protections and required checks | No. Host settings, re-created by hand in Origin's Rules and Protections tab. |
| Webhooks, secrets, integrations | No. Actions workflows and secrets are listed as not synced; apps are reconnected from Origin's Apps tab. |
The same asymmetry applies in both directions, Origin to GitHub included, except that Origin's sync adds pull requests to the carried column.
An API export is the usual consolation for the right-hand column, and it helps to be exact about what it buys. What you get is records, a file of comment bodies with a timestamp and an author on each. What nobody gets from it is a live review thread on the new host, sitting against the diff it was written about, with someone who can still reply. That satisfies an audit request. It does not give anyone something to keep working in, which is why the old host tends to stay readable for a while instead of being imported.
Pull requests are the one row Origin's sync moves out of the right-hand column, and it is a live sync rather than an export: comment in Cursor and it posts to GitHub, reply on GitHub and it shows in Cursor. Issues, workflows and secrets stay where they were, and no importer for them is announced. Plan on the git layer and the pull requests being portable and everything else being manual until Cursor documents otherwise.
How do risk-averse teams keep the door open?
The strategy is the same whichever host you consider primary: never let either one become the only copy of your history, and be deliberate about where the unportable collaboration record accrues.
- 1While evaluating: sync from GitHub and leave it authoritative, which is the sync's default. Run real review and merge on Origin for one non-critical repo, and judge the product on that work.
- 2If you adopt Origin and detach: keep a standing push back to GitHub (or any second host), so your history always has a live copy outside Cursor. Detaching does not delete the GitHub repo, so it is the obvious target.
- 3Test the exit, don't assume it. Clone fresh from the mirror and compare refs with git ls-remote against the primary; a mirror you've never restored from is a hope, not a plan.
- 4Decide consciously where reviews happen. Review threads, stacks and merge history accumulate on whichever host runs them, and that record is the part no mirror will ever carry.
A mirror is only as current as its last push, so settle what current has to mean before anyone leans on it. Daily is plenty for an exit plan, since a day of commits still exists on somebody's laptop and in somebody's branch. Hourly starts to matter, though, once the mirror is also your answer to the primary host having a bad afternoon. Those are two different requirements that get bundled into one word, and only the second one costs anything to run.
Mirroring guarantees you can always leave with your code and history intact. It does not preserve the reviews, discussions and settings that explain the history. That collaboration record is the real lock-in on any forge, GitHub and Origin alike, and it starts accruing on day one wherever you review.
Frequently asked questions
Can I use GitHub and Cursor Origin at the same time?
Yes, and it is the documented default. Sync from GitHub at cursor.com/codebase keeps a live copy on Origin with GitHub as the source of truth, pull requests syncing both ways and pushes passing through to GitHub. Plain git also lets one repo push to multiple remotes, which covers repos created on Origin or kept after a detach.
Does mirroring copy my pull requests and issues?
Plain git mirroring does not: pull requests, issues and settings are host database records, invisible to git. Origin's GitHub sync does carry pull requests, both ways, on a synced repo. Issues are documented as not included, along with Actions workflows and secrets, and no importer for them is announced.
Has Cursor announced a GitHub import or sync feature for Origin?
Yes. The August 17, 2026 changelog and cursor.com/docs/origin/mirror-github document Sync from GitHub: real-time updates, two-way pull-request sync, GitHub as source of truth, and a Detach from GitHub that makes the Origin copy standalone. It needs the Cursor GitHub app on the owning org and GitHub admin rights on the repo.
Is git push --mirror safe to run?
It is safe against a dedicated mirror remote and dangerous anywhere else. A mirror push force-updates changed refs and deletes refs that don't exist locally, so it will happily erase work someone pushed only to the target. Use it for mirrors; use normal pushes for shared remotes.
Sources & last verified
- Git: git push docs (--mirror, pushurl)
- Git: git remote docs
- Cursor: Origin
- Cursor Docs: Mirror a GitHub repository
- Cursor Changelog: Origin Code Hosting (Aug 17, 2026)
- eesel: What is Cursor Origin?
Cursor ships frequently. Last updated August 22, 2026.