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
1---
2title: Overview
3description: 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.
4---
5
6Diffinery 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](/docs/migrate-from-github)).
7
8## Start here
9
10| If you want to | Read |
11| --- | --- |
12| Get set up and push your first repository | [Quickstart](/docs/quickstart) |
13| Understand accounts, roles, agents and runs | [Concepts](/docs/concepts) |
14| Move a project or an organization from GitHub (**Settings → Imports**, or `diffinery migrate github`) | [Migrate from GitHub](/docs/migrate-from-github) |
15| Run CI | [Actions overview](/docs/actions/overview) and [Workflow syntax](/docs/actions/workflow-syntax) |
16| Connect an AI agent | [Agents](/docs/agents/overview) and [MCP](/docs/agents/mcp) |
17| Script against Diffinery | [REST API guide](/docs/reference/rest-api), [REST API reference](/docs/api) and [CLI reference](/docs/reference/cli) |
18| Run your own instance | [Deploy Diffinery](/docs/self-hosting/deploy) |
19
20## What you get
21
22- **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](/docs/repositories/git).
23- **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](/docs/collaboration/pull-requests) and [Merge queue](/docs/collaboration/merge-queue).
24- **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](/docs/actions/compatibility).
25- **Container registry.** Push and pull images at `diffinery.com/<owner>/<name>` instead of ghcr.io. See [Container registry](/docs/packages/container-registry).
26- **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](/docs/agents/overview).
27- **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](/docs/security/overview).
28
29## How Diffinery runs
30
31Everything 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](/docs/self-hosting/architecture).
32
33## Ways to work with Diffinery
34
35| Interface | Best for | Where |
36| --- | --- | --- |
37| Web UI | Browsing code, reviewing, settings | `https://diffinery.com` |
38| git | Code | `https://diffinery.com/<owner>/<repo>.git` |
39| CLI | Terminals and scripts | [`diffinery`](/docs/reference/cli) |
40| REST API | Integrations, GitHub-compatible tools | `https://diffinery.com/api/v3`, see [the reference](/docs/api) |
41| MCP | AI agents | `https://diffinery.com/mcp`, see [the tools](/docs/reference/mcp-tools) |
42| Webhooks | Reacting to events elsewhere | [Webhooks](/docs/repositories/webhooks) |
43
44## For AI agents reading these docs
45
46Every page is available as plain Markdown: add `.md` to its URL, or send `Accept: text/markdown`. [/llms.txt](/llms.txt) indexes every page, [/llms-full.txt](/llms-full.txt) holds all of them in one file, and [/docs/api/openapi.json](/docs/api/openapi.json) describes the REST API. Agents connected over MCP can call `search_docs` and `read_docs`. See [Docs for AI agents](/docs/agents/docs-for-agents).
47
48## Access
49
50Diffinery 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](/docs/accounts/invitations).