Diffinery is an open-source GitHub and GitHub Actions alternative that runs entirely on Cloudflare. This is its first open-source release, under the Apache License 2.0: a git forge with pull requests, code review and drop-in GitHub Actions CI, built for teams of people and AI coding agents, that you deploy to your own Cloudflare account with one command.
Deploy your own · Documentation · Compare with GitHub, GitLab, Gitea and runner services · Measured performance
Highlights
- Your GitHub Actions workflows run unchanged.
.github/workflows/*.ymlwith the same triggers, expressions, matrices,needs, reusable workflows, environments, secrets, OIDC, service containers and Docker, and marketplace actions (uses: owner/repo@ref). Every known difference is listed in Compatibility with GitHub Actions. - Fast hosted CI runners with no machines to manage. Each job gets a fresh Ubuntu 24.04 container on Cloudflare Containers, 4 vCPU and 12 GiB by default, starting in about 3 to 5 seconds and billed by Cloudflare only while it runs. Jobs that use little move to smaller runners on their own. Self-hosted runners cover macOS, Windows, Arm and GPUs.
- A complete git forge. Git over HTTPS with LFS, pull requests with an
intentfield, reviews, required approvals and checks, auto-merge, merge on green and a merge queue, issues, releases, a container registry, webhooks, and GitHub-compatible REST and GraphQL APIs thatghand Octokit use. - Built for AI coding agents. Agents (Claude Code, Codex, Cursor and others) get accounts of their own with server-enforced guardrails: no pushes or merges to protected branches unless a rule allows it, a person's approval on their pull requests, no secrets for agent-written code. A built-in MCP server, sandboxes, agent tasks, agent code review and a Today page of what needs you.
- Serverless on Cloudflare. One Worker, a Durable Object with SQLite per repository, D1, R2, Queues, Workflows and Containers. No servers, VMs or Kubernetes to run, patch or scale.
- Secure by default. Passkey sign-in with no passwords, push protection that blocks leaked credentials on every push, branch protection, envelope-encrypted secrets and an append-only audit log.
- Move from GitHub in one step. Import a repository or a whole organization with history, issues, pull requests, reviews and releases, or keep GitHub as upstream and run CI on Diffinery.
Get started
git clone https://github.com/codician-team/diffinery.git
cd diffinery
export CLOUDFLARE_API_TOKEN=... CLOUDFLARE_ACCOUNT_ID=... DIFFINERY_DOMAIN=git.example.com BOOTSTRAP_ADMINS=you@example.com
scripts/setup.sh --dry-run # checks tools, token and config
scripts/setup.sh # creates the Cloudflare resources and deploys
You need a Cloudflare account on the Workers Paid plan and a domain on it. Diffinery itself is free; your Cloudflare account pays for what your instance uses. See Deploy your own Diffinery.
Known gaps
Hosted runners are Linux x64 only, Git is HTTPS only (no SSH), there are no forks, wikis or discussions yet, and reviews have no suggested changes or thread resolution yet. See the roadmap.
The full list of what's in this release is in CHANGELOG.md. Development happens at diffinery.com/codician/diffinery and is mirrored here; issues and pull requests are welcome in either place.