Continuous organization mirroring

Your GitHub org,
somewhere else.
Continuously.

Every repository. Every new repo. Branches, tags, issues, labels, milestones, PR conversations, and review context—kept usable on your forge and in a portable archive.

Open source · One binary · No telemetry · Tokens stay local

Two pale ceramic repository vessels connected through an archive tile by a precise cobalt path.
GitHub orgJSON archiveYour forge
allnew repositories discovered
1→1stable ID mappings
3target forge families
0tracking calls

A living copy, not a cold backup

One path through three durable layers.

01 / discover

GitHub organization

Pagination and conditional requests catch private, archived, and newly created repositories without burning the rate limit.

02 / preserve

Local state + JSON

SQLite keeps idempotent mappings and an audit trail. Forge-neutral snapshots are committed to your own Git archive.

03 / mirror

Forgejo · Codeberg · GitLab

Missing projects are created, every ref is mirror-pushed, and discussions arrive with author and source links intact.

What survives the crossing

Code is only half the project.

forge-sync keeps the social record readable even when the target cannot model a GitHub object exactly.

Start safely

Make a config. Keep secrets out of it.

This local builder never asks for tokens and sends nothing anywhere.

forge-sync.toml

Then validate without writing:forge-sync doctor --config forge-sync.toml

Designed for unattended runs

Quiet when healthy. Specific when not.

mirror-host
$ forge-sync sync --config forge-sync.toml
 discovered     48 repositories
 mirrored       48 ref sets
 synchronized   5,184 issues · 13,902 comments
 archived       commit 8e10f4a

Completed in 01:42 · 0 failed

Retry-safe. Stable source IDs prevent duplicates after interruption.

Partial-failure aware. One broken repo is audited while the rest continue.

Scriptable. Every operational command can emit JSON and meaningful exit codes.

Fair, legible pricing

The mirror is free. The cutover kit saves a weekend.

Community

$0 forever

  • Unlimited repositories and metadata
  • All target adapters
  • Portable archive and audit log
  • Docker and single binary
Get the source

Sociobot/Dodo is the merchant of record. Refunds are handled there and revoke the license automatically. Terms · Privacy

The sharp edges, stated plainly

Before you point it at production.

Does it recreate pull requests?

It preserves pull-request descriptions, reviews, discussion comments, and inline file/line anchors in a labeled target issue. This remains valid after merge, branch deletion, or cross-fork work.

Does it sync changes back to GitHub?

Not in v1. The experimental relay flag records intent but sends nothing. Reliable bidirectional identity and review-anchor mapping needs more real-world validation.

Where do tokens and data go?

Tokens stay in environment variables. Metadata goes only to your chosen target, local SQLite state, and your local JSON archive. The documentation site never receives it.

Keep the exit open

Your forge should be a choice,
not a single point of memory.

Build your config