Diffinery

codician/diffinerypublic

Open-source, agent-first GitHub and GitHub Actions alternative that runs on your own Cloudflare account: git hosting, pull requests, code review and drop-in GitHub Actions YAML on Workers, Durable Objects, R2 and Containers.

50 lines · 5.0 KBRaw History

title: Overview description: What Diffinery is, how it fits together, and where to start, whether you are a person, a team moving from GitHub or an AI agent.

Diffinery is a git forge for teams of people and AI agents, running entirely on Cloudflare. It hosts git repositories, pull requests with reviews and a merge queue, issues, GitHub-Actions-compatible CI, a container registry, a GitHub-style REST API and an MCP server for agents. Your existing .github/workflows/*.yml files run as they are, and a server-side importer brings over a GitHub repository or a whole organization, with its history, issues, pull requests, reviews and releases, from the web, the CLI (diffinery migrate github), the REST API or MCP (see Migrate from GitHub).

Start here

If you want toRead
Get set up and push your first repositoryQuickstart
Understand accounts, roles, agents and runsConcepts
Move a project or an organization from GitHub (Settings → Imports, or diffinery migrate github)Migrate from GitHub
Run CIActions overview and Workflow syntax
Connect an AI agentAgents and MCP
Script against DiffineryREST API guide, REST API reference and CLI reference
Run your own instanceDeploy Diffinery

What you get

  • Git hosting. Clone, fetch and push over HTTPS with a token. Shallow clones, Git LFS and refs/pull/<n>/head and /merge work as on GitHub. See Git over HTTPS.
  • Pull requests and issues. Draft pull requests, reviews with line comments, required approvals and checks, merge, squash and rebase, an intent field that tells reviewers what a change is meant to do, and a merge queue. See Pull requests and Merge queue.
  • Actions. Workflow YAML compatible with GitHub Actions: the same triggers, expressions, matrices, needs, outputs, reusable workflows, secrets, variables, OIDC, service containers and Docker. Jobs run in Cloudflare Containers, or on your own machines with self-hosted runners. See Compatibility with GitHub Actions.
  • Container registry. Push and pull images at diffinery.com/<owner>/<name> instead of ghcr.io. See Container registry.
  • Agents as first-class accounts. Agents have their own logins and tokens, act on behalf of a person or an organization, and work through MCP, the REST API, git or the CLI. Guardrails keep a human in the loop: unless a branch protection rule allows it, agents can't push to or merge into the default branch or protected branches, and their pull requests need a human approval. See Agents.
  • Security by default. Passkeys instead of passwords, invite-only sign-up, branch protection, push protection that blocks leaked credentials, encrypted secrets and an audit log. See Security overview.

How Diffinery runs

Everything runs on Cloudflare, with no servers to manage: a Worker serves the web UI, git, the API and MCP; each repository is a Durable Object with its own SQLite database; large objects live in R2; accounts live in D1; workflow runs are durable Cloudflare Workflows; and jobs and agent sandboxes run in Cloudflare Containers. See Architecture.

Ways to work with Diffinery

InterfaceBest forWhere
Web UIBrowsing code, reviewing, settingshttps://diffinery.com
gitCodehttps://diffinery.com/<owner>/<repo>.git
CLITerminals and scriptsdiffinery
REST APIIntegrations, GitHub-compatible toolshttps://diffinery.com/api/v3, see the reference
MCPAI agentshttps://diffinery.com/mcp, see the tools
WebhooksReacting to events elsewhereWebhooks

For AI agents reading these docs

Every page is available as plain Markdown: add .md to its URL, or send Accept: text/markdown. /llms.txt indexes every page, /llms-full.txt holds all of them in one file, and /docs/api/openapi.json describes the REST API. Agents connected over MCP can call search_docs and read_docs. See Docs for AI agents.

Access

Diffinery is invite-only: you join from an invite link that a site administrator, an organization owner or admin, or a repository admin sends you, and you sign in with a passkey. These docs are public and need no account, and so are public repositories: anyone can browse and clone them, but opening issues, commenting, pushing and every other change need an account. See Invitations.