Diffinery について
DiffineryはCloudflare上にデプロイするオープンソースのGitホスティング・CIプラットフォームです。GitHub Actions互換のワークフローを使うチームや、AIコーディングエージェントと協業するチーム向けで、権限制御されたエージェントアカウントと人によるレビューを備えています。
主な機能
- 01Gitリポジトリ、プルリクエスト、課題の管理
- 02GitHub Actions互換ワークフローの実行
- 03エージェントタスクとコードレビュー
- 04ブランチ保護と人による承認ルール
- 05マージキューとチェック通過後の自動マージ
活用シーン
- 01Cloudflare上でチームのGitホスティングとCIを運用
- 02Claude CodeやCodexからレビュー用のプルリクエストを作成
- 03プルリクエストの不具合やセキュリティ問題を自動確認
- 04チェックと承認ルールに沿ってコードをマージ
MCP 対応
内蔵MCPサーバーは、Today画面、ドキュメント検索・読み取り、サンドボックス操作など、リポジトリとエージェントのワークフロー機能をMCPクライアントに公開します。MCP経由のエージェント操作にもアカウント権限と保護ルールが適用されます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://{diffinery_host}/mcpclaude mcp add --transport http com-diffinery-diffinery https://{diffinery_host}/mcp{"mcpServers":{"com-diffinery-diffinery":{"type":"http","url":"https://{diffinery_host}/mcp"}}}Cursor で開く{"servers":{"com-diffinery-diffinery":{"type":"http","url":"https://{diffinery_host}/mcp"}}}VS Code で開く{"mcpServers":{"com-diffinery-diffinery":{"type":"http","url":"https://{diffinery_host}/mcp"}}}{"mcpServers":{"com-diffinery-diffinery":{"serverUrl":"https://{diffinery_host}/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Diffinery
Cloudflare 上で完全に動作する、オープンソースの GitHub および GitHub Actions 代替サービスです。 Git ホスティング、プルリクエスト、コードレビュー、GitHub Actions とそのまま置き換えられる CI に加え、エージェントタスク、エージェントによるコードレビュー、Claude Code と Codex のプラグインを備え、人間と AI エージェントのチーム向けに構築されています。ご自身の Cloudflare アカウントにデプロイできます。サーバーも、ランナーマシンも、パッチの適用も必要ありません。
ウェブサイト · ドキュメント · AI エージェント向け · プラグイン · 独自環境へのデプロイ · 比較 · パフォーマンス · ロードマップ · llms.txt
Diffinery は Git リポジトリ、レビューとマージキューを備えたプルリクエスト、イシュー、リリース、コンテナレジストリをホストし、既存の .github/workflows/*.yml ファイルをマーケットプレイスのアクションも含めて、そのまま実行します。Claude Code、Codex、Cursor などの AI コーディングエージェントは、サーバーが適用するガードレール付きで独自のアカウントを持ち、組み込み MCP サーバー、GitHub 互換の REST API と GraphQL API、git、または CLI を通じて作業します。すべてが Cloudflare 上で動作します。Workers、Durable Objects、D1、R2、Queues、Workflows、Containers を利用します。Apache License 2.0 のもとで提供される無料のオープンソースソフトウェアであり、ご自身の Cloudflare アカウントとドメインに独自のインスタンスをデプロイできます。
Diffinery は、エージェントとともにソフトウェアを開発する方法に合わせて構築されています。エージェントに目標を与えれば、Claude Code または Codex がサンドボックスで作業し、プルリクエストを返します。別のエージェントにすべてのプルリクエストのバグをレビューさせることもできます。毎朝 Today を開けば、対応が必要な項目を確認して承認し、チェックが成功したプルリクエストをマージできます。Claude Code と Codex のプラグイン、公式 MCP Registry に登録された MCP サーバー、エディター拡張機能、gh のサポートを通じて、普段使っているツールでこれらすべてを利用できます。エージェントが Diffinery でできること ↓
- ソース: 開発、CI、デプロイを行っている diffinery.com/codician/diffinery。github.com/codician-team/diffinery にミラーされています。
- ドキュメント: diffinery.com/docs。Markdown 版のほか、AI アシスタント向けの llms.txt と llms-full.txt もあります。
Diffinery が役に立ったら、GitHub でスターを付けると、ほかの人にも見つけてもらいやすくなります。
目次
- Diffinery の対象ユーザー
- Diffinery を選ぶ理由
- スクリーンショット
- AI コーディングエージェント向けに構築
- プラグインとインテグレーション
- 機能
- 比較
- 独自の Cloudflare アカウントでセルフホスト
- Cloudflare 上での実行方法
- ローカルでの開発
- リポジトリの構成
- Diffinery が(まだ)対応していないこと
- FAQ
- コントリビューション、セキュリティ、ライセンス
Diffinery の対象ユーザー
- ワークフロー YAML をそのまま使える GitHub Actions の代替を探しているチーム: Diffinery は
.github/workflows/を同じ構文で読み込み、デフォルトで 4 vCPU、12 GiB のランナー上で Marketplace のアクションを実行します。 - サーバーを運用せずにセルフホスト型の GitHub 代替を使いたいチーム。 Gitea、Forgejo、GitLab のように独自のインスタンスを運用できますが、VM や Kubernetes クラスターではなく、Cloudflare のサーバーレスプラットフォームにデプロイします。
- GitHub のプライベートリポジトリ向け標準 2 vCPU ランナーより高速な CI ランナーを、Blacksmith や Depot などの別のランナーサービスに料金を払わずに利用したいチーム。
- AI コーディングエージェント(Claude Code、Codex、Cursor など)が、
mainにプッシュするのではなく、人が承認するプルリクエストを作成する必要があるチーム。 - Durable Objects、SQLite、Containers、Workflows、Queues、R2 を使って構築された、実用的な大規模アプリケーションを探している Cloudflare 開発者。
Diffinery を選ぶ理由
- Git ホスティング、プルリクエスト、CI をひとつのサーバーレスアプリで。 ひとつの Cloudflare Worker が、ウェブ UI、HTTPS 経由の Git、GitHub 互換の REST API と GraphQL API、MCP サーバーを提供します。各リポジトリはそれぞれ専用の SQLite データベースを持つ Durable Object なので、リポジトリはひとつのデータベースサーバーを共有せずにスケールアウトできます。
- GitHub Actions のワークフローが変更なしで実行できます。 同じトリガー、式、マトリックス、
needs、出力、再利用可能なワークフロー、環境、シークレット、変数、OIDC、サービスコンテナ、Docker を利用できます。Marketplace のアクション(uses: owner/repo@ref)はダウンロードされ、実行されます。既知の相違点はすべてGitHub Actions との互換性に記載されています。 - ジョブの実行中だけ存在するランナー。 各ジョブには Cloudflare Containers 上の新しい Ubuntu 24.04 コンテナが割り当てられ、実行中のみ Cloudflare から課金されます。デフォルトサイズは 4 vCPU と 12 GiB メモリを備え、使用量の少ないジョブは自動的により小さなサイズに移行します。セルフホストランナーでは macOS、Windows、Arm、GPU に対応しています。
- 人間が関与しながら、AI エージェント向けに構築。 エージェントは個人または組織が所有するファーストクラスのアカウントで、それぞれ独自のトークンと制限を持ちます。ルールで許可されない限り、保護ブランチへのプッシュやマージはできません。また、設定を変更しない限り、プルリクエストには人間の承認が必要で、エージェントが作成するすべてのコミットには、誰の代理として動作したかが記録されます。さらに、エージェントタスク、エージェントによるコードレビュー、対応が必要な項目をまとめた Today ページ、成功時のマージも備えています。AI コーディングエージェント向けの構築をご覧ください。
- エージェントがすでに使っているツール向けのプラグイン。 Claude Code と Codex のプラグイン、Claude Code 用のライブ CI バンド、公式 MCP Registry に登録された MCP サーバー、
diffineryCLI、VS Code、Cursor、Windsurf、JetBrains IDE 向けの拡張機能、そして GitHub Enterprise と同じように動作するghを利用できます。プラグインとインテグレーションをご覧ください。 - デフォルトで安全。 パスワード不要のパスキーサインイン、招待制アカウント、ブランチ保護、漏えいした認証情報をブロックするプッシュ保護、エンベロープ暗号化されたシークレット、キルスイッチ、追記専用の監査ログを備えています。
- GitHub からの移行はワンステップ。 サーバー側のインポーターにより、履歴、イシュー、プルリクエスト、レビュー、リリースを含めて、リポジトリまたは組織全体を移行できます。また、
gh、Octokit、VS Code、JetBrains IDE は Diffinery で動作します。
スクリーンショット
Git ホスティングと CI の画面です。エージェント機能のスクリーンショットは、すぐ下のAI コーディングエージェント向けの構築にあります。
| クローン URL と、VS Code、Cursor、Windsurf、IntelliJ IDEA でワンクリックで開く機能を備えたリポジトリ | マトリックスと needs を含む、.github/workflows/ci.yml のワークフロー実行 |
|---|---|
![]() | ![]() |
AI コーディングエージェント向けの構築
すべてのエージェント機能はオプトインで、Git と CI のプラットフォーム上に構築されています。そのため、これらの機能を使わないチームは通常のコードホスティングサービスとして利用できます。モデルのキーやサブスクリプションは各自で用意します。Diffinery はモデルへのアクセスを販売も提供もしていません。以下のスクリーンショットは、scripts/agent-screenshots.mjs で実際のエージェントタスク、エージェントレビュー、CI 実行を行い、サンプルデータを使ってローカルの Diffinery から取得した実際のページです。
ガードレール付きのエージェントアカウント
エージェントは独自のアカウントであり、個人または組織が所有し、独自のトークンを持ちます。その役割は所有者の役割を超えることはなく、ウェブ UI にサインインできません。また、エージェントが行うすべてのコミットには、誰の代理として操作したかが記録されます。サーバーは、Git、REST API、MCP、サンドボックスで同じルールを適用します。
| ガードレール | 意味 |
|---|---|
| 保護されたブランチへのプッシュは禁止 | ブランチ保護ルールで許可されていない限り、エージェントは代わりにプルリクエストを作成します。 |
| エージェントのプルリクエストは人が承認 | ルールのないブランチでも、少なくとも1人の人による承認が必要です。エージェントによる承認はカウントされません。 |
| 保護されたブランチのマージは禁止 | ルールによって、CI と人の承認後にエージェントが自動マージで反映できる場合を除きます。 |
| エージェントは自分の CI を成功にできない | エージェントのチェック結果は、必須チェックを満たすものとして扱われません。 |
| エージェントが書いたコードにシークレットは渡されない | エージェントがプッシュしたコードのワークフロー実行に渡されるのは、そのジョブのトークンだけです。そのため、エージェントがシークレットを外部に送信するワークフローをプッシュすることはできません。 |
| シークレット、環境、ブランチ保護は変更できない | エージェントの役割にかかわらず変更できません。プッシュ保護を回避することもできません。 |
エージェントタスク:目標を入力し、プルリクエストを出力
エージェントに目標を与えます。Diffinery は、リポジトリをチェックアウトした状態で、そのエージェントとしてサンドボックスを起動し、Claude Code、Codex、または独自のモデルキーを使った任意のコマンドを実行します。トランスクリプトをタスクページにストリーミングした後、ブランチをプッシュし、目標を意図として記載したプルリクエストを作成します。API キーがサンドボックスに入ることはありません。各実行には、Diffinery のモデルプロキシだけが受け付けるトークンが付与されます。タスクでは、承認を求める先行プランニング、複数の試行を並行して実行するベスト・オブ・N、そして失敗したチェックを自ら修正し、人の承認後にマージする検証と反映が可能です。
API キーの代わりにClaude または ChatGPT のサブスクリプションを使うには、ターミナルを開きます。これは、リポジトリをチェックアウトした状態でブラウザー上から使えるシェルです。自分のプランで Claude Code または Codex にサインインし、タスクを渡すことができます。
すべてのプルリクエストでエージェントがレビュー
エージェントの1つが、Cursor の Bugbot のように、バグ、セキュリティ上の問題、ロジックエラーについてプルリクエストをレビューします。読み取り専用のサンドボックスで Claude Code、Codex、または独自のコマンドを実行し、ベースブランチの REVIEW.md にあるルールに従って、修正案を添えたインラインの指摘を投稿します。また、ブロッキングとなる指摘があると失敗する Agent review チェックを報告します。修正するを選ぶと、指摘をエージェントタスクに渡せます。自動修正では、修正内容をプルリクエストのブランチにプッシュできます。書き込みアクセス権のない作成者によるプルリクエストが自動レビューされることはなく、リポジトリのレビュー費用は1人のキーで支払われます。
エージェントレビューをご覧ください。
Today and Needs you
Todayは、サインイン後に最初に表示されるページです。対応が必要な項目(担当者の対応を待っているエージェントのプルリクエスト、レビューを依頼された項目、自分のブロックされているプルリクエスト)、エージェントが取り組んでいる作業、エージェントのタスク、そして昨日以降にマージ、リリース、または失敗した項目を、アクセスできるすべてのリポジトリにわたって表示します。エージェントもtoday MCP ツールを使って同じビューを読み取ることができ、朝のメールで受け取ることもできます。
Todayをご覧ください。
Merge on green
Settings → Merge on greenで、合格が必須のチェックを選択し、自動でマージするエージェントのプルリクエストを指定して、担当者の承認を待つかどうかを選択します。設定すると、チェックに合格し、ルールを満たした時点で、誰も[Merge]をクリックすることなくプルリクエストがマージされます。省略される項目はありません。エージェントがワークフローファイルを変更した場合も、マージには担当者の操作が必要です。
Merge on green automaticallyをご覧ください。
エージェント向けのプロジェクト、サンドボックス、ドキュメント
- **Projects:**各リポジトリには、エージェントのタスクボード、会話、プロジェクトの指示、すべてのタスクが読み取るメモリがあります。コーディネーターエージェントは、設定した制限の範囲内で、投稿をタスクに変換できます。
- **Sandboxes:**リポジトリがクローンされ、MCP または REST API 経由で操作できる短期間の Linux コンテナです。チャットアプリから作業するエージェントが、実際のマシンでビルドやテストを実行できます。
- **Docs for agents:**すべてのページを Markdown 形式で提供し、llms.txt、llms-full.txt、REST API の OpenAPI 3.1 記述、MCP 経由の
search_docsとread_docsを利用できます。
プラグインと連携
GitHub でトレーニングされたエージェントは、すでに Diffinery の使い方を知っています。これらを使えば、ほかのエージェントもお使いのツールから利用できます。ここにあるものはすべて、diffinery.com とデプロイしたあらゆるインスタンスで動作します。
| 連携 | 機能 | インストール |
|---|---|---|
Claude Code plugin (diffinery) | OAuth サインインに対応した MCP サーバー、ブランチ → プルリクエスト → CI → マージの流れと Diffinery のエージェントルールを教えるスキル、失敗したジョブのログ末尾を表示する /diffinery:pr-status、Claude に Diffinery リポジトリであることを伝えるセッションフック | claude plugin marketplace add codician-team/diffineryclaude plugin install diffinery@diffinery |
Claude Code のライブ CI (diffinery-ci) | ブランチのプルリクエストとチェックを表示するプロンプト上部の帯(✗ 1 failed · ● 3 running · ✓ 6)、CI を修正できる /diffinery-ci ペイン、ステータス行の項目、CI が落ち着いたときに Claude に知らせるメモ。クラウドセッションでも利用できます | claude plugin install diffinery-ci@diffinery |
Codex plugin (diffinery) | OpenAI の Codex CLI で使える、同じ MCP サーバー、スキル、セッションフック | codex plugin marketplace add https://diffinery.com/codician/diffinery.gitcodex plugin add diffinery@diffinery |
| MCP サーバー | diffinery.com 上の 52 個のツールです。コードの読み取り、コミット、プルリクエストの作成・レビュー・マージ、CI とジョブログの追跡、サンドボックスの実行、エージェントタスクとプロジェクトの追跡、Today の確認、リリースの公開、GitHub からのインポート、ドキュメントの検索ができます。Git と同じ権限およびガードレールのもとで動作します。公式 MCP Registry に com.diffinery/diffinery として登録されています | https://<your host>/mcp。ブラウザーでのサインイン(OAuth 2.1)またはエージェントトークンを使用します |
| Claude(claude.ai、Desktop、モバイル) | Diffinery をカスタムコネクターとして使用するか、プラグインをファイルとしてアップロードしてクラウドセッションやプロジェクトで使用できます | Settings → Connectors → Add custom connector、https://diffinery.com/mcp |
diffinery CLI | リポジトリ、--intent を指定したプルリクエスト、自動マージ、実行とログ、シークレット、ランナー、移行に対応します。diffinery setup を実行するとサインインし、git、gh、両方の Claude Code プラグインをまとめてセットアップします | curl -fsSL https://diffinery.com/install | bash |
GitHub CLI(gh) | Diffinery の GitHub 互換 REST API および GraphQL API を通じて、gh pr create、gh pr checks、gh pr merge などを実行できます。Claude Code では、ブランチのプルリクエストと CI のステータスが表示されます | diffinery auth setup-gh |
| VS Code、Cursor、Windsurf | パスキーでサインインして Diffinery からクローンできます。エディター内の Git では、そのサインインを使ってプッシュとプルを行います | diffinery.com/install-editor |
| JetBrains IDE | IntelliJ IDEA、PyCharm、WebStorm などで、パスキーでサインインして バージョン管理から取得できます(2024.3 以降) | プラグインリポジトリ https://diffinery.com/-/jetbrains/updatePlugins.xml |
プラグインのソースは plugins/、拡張機能のソースは apps/vscode と apps/jetbrains、CLI のソースは apps/cli にあります。Claude、Claude Code、Codex、Cursor、VS Code などのアプリ向けの手順ガイドは、AI アプリを接続するをご覧ください。
特徴
| 領域 | 利用できる機能 | ドキュメント |
|---|---|---|
| Git | トークンを使用した HTTPS 経由のクローン、フェッチ、プッシュ;シャロークローン、Git LFS、refs/pull/<n>/head と /merge;大規模なプッシュは R2 から分割して展開 | HTTPS 経由の Git |
| プルリクエスト | ドラフト PR、行コメント付きレビュー、必須の承認とチェック、マージ、スカッシュ、リベース、オートマージ、merge_group 実行を伴うマージキュー、変更の目的をレビュー担当者に伝える intent フィールド | プルリクエスト |
| Issue とリリース | Issue、ラベル、マイルストーン、リアクション、メンション、アセットと自動生成されたリリースノートを含むリリース | コラボレーション |
| Actions(CI/CD) | Cloudflare Containers 上のホスト型ランナー、またはセルフホスト型ランナーで実行する GitHub Actions 互換のワークフロー;キャッシュ、アーティファクト、シークレット、環境、OIDC、Docker、サービスコンテナー、同時実行グループ、スケジュール実行 | Actions の概要 |
| コンテナレジストリ | ghcr.io の代わりに、<your host>/<owner>/<name> で OCI イメージをプッシュおよびプル | コンテナレジストリ |
| エージェント | サーバー側で適用されるガードレールを備えたエージェントアカウント、Claude Code または Codex を使ったエージェントタスク(まず計画を立て、N 個の候補から最善のものを選び、検証して反映)、インライン指摘と Agent レビューチェックを含むエージェントコードレビュー、お客様自身の Claude または ChatGPT プランを使うブラウザターミナル、コーディネーターと共有メモリを備えたプロジェクト、サンドボックス、対応が必要な項目をまとめた Today ページ | エージェント |
| 成功時にマージ | 必須チェックに合格し、ブランチのルールを満たすと、人とエージェントのプルリクエストが自動でマージされます。数回のクリックで設定できます | 成功時にマージ |
| プラグインと連携機能 | Claude Code と Codex のプラグイン、Claude Code 用のライブ CI バンド、公式 MCP Registry の MCP サーバー、diffinery CLI、gh のサポート、VS Code、Cursor、Windsurf、JetBrains の拡張機能 | プラグインと連携機能 |
| API | GitHub 互換の REST(/api/v3)および GraphQL(/api/graphql)API(OpenAPI 3.1 として記述)、GitHub 互換の Webhook | REST API |
| セキュリティ | パスキー(WebAuthn)、ブランチ保護、プッシュ保護、暗号化されたシークレット、監査ログ、モデレーション、レート制限、クォータ、キルスイッチ | セキュリティの概要 |
| 移行 | 履歴、Issue、プルリクエスト、レビュー、リリースを含む GitHub からのインポート。Web、CLI、API、MCP に対応 | GitHub から移行 |
比較
Diffinery はフォージです。コードをホストし、CI を実行します。一般的に比較対象となるツールと並べた場合の位置づけは次のとおりです。他の製品に関する情報は、各製品のウェブサイトとドキュメントを参照し、2026 年 10 月に確認したものです。各比較ページには出典が記載されています。
| Diffinery | GitHub + GitHub Actions | GitLab | Gitea / Forgejo | ランナーサービス(Blacksmith、Depot) | |
|---|---|---|---|---|---|
| 概要 | CI を内蔵したオープンソースのフォージ | CI を内蔵したホスト型フォージ | CI を内蔵したフォージ | CI を内蔵したオープンソースのセルフホスト可能なフォージ | GitHub Actions の高速なランナー。コードは GitHub 上に残ります |
| 運用者 | 自分の Cloudflare アカウント上で自分が運用 | GitHub(Enterprise Server の場合は自社のサーバー) | GitLab、または自分(セルフマネージド) | 自社のサーバー上で自分が運用(または Gitea Cloud、Codeberg) | ベンダー |
| 運用が必要なサーバー | なし | なし(ホスト型) | なし(ホスト型)、または自社サーバー | 自社のサーバーとランナーマシン | なし |
| CI ワークフロー形式 | .github/workflows/ の GitHub Actions YAML | GitHub Actions YAML | .gitlab-ci.yml | GitHub Actions 形式の YAML。「ほぼ互換」(Gitea)または「互換性を想定した設計ではない」(Forgejo) | 新しい runs-on ラベルを使う GitHub Actions YAML |
| デフォルトのホスト型 Linux ランナー | 4 vCPU、12 GiB。Cloudflare Containers でジョブごとに起動 | プライベートリポジトリでは 2 vCPU、8 GB | 2 vCPU、8 GB | 自分でインストールするランナー | 複数のサイズがあり、分単位で課金 |
| ホスト型 macOS および Windows | なし(セルフホスト型ランナー) | あり | ベータ版 | 自分でインストールするランナー | あり |
| AI エージェント向けのガードレール | すべてのエージェントアカウントに組み込み済み | ルールセットとトークン権限を自分で設定 | 承認ルールとサービスアカウントを自分で設定 | 対応なし | 該当なし |
| 組み込み MCP サーバー | あり。/mcp から利用可能 | あり | あり | Gitea:別途 MCP サーバーが必要 | 該当なし |
| ライセンス | Apache-2.0 | プロプライエタリ | オープンコア | MIT(Gitea)、GPL v3+(Forgejo) | プロプライエタリ |
詳細はこちらをご覧ください:Diffinery と GitHub の比較 · GitLab との比較 · Gitea および Forgejo との比較 · Blacksmith との比較 · Depot との比較 · CircleCI との比較 · Buildkite との比較 · Bitbucket との比較 · GitHub Actions の代替製品一覧 · Cloudflare 上のその他の Git および CI プロジェクト
Cloudflare アカウントでセルフホストする
Diffinery は、誰でも自分の Cloudflare アカウントとドメインにデプロイできるように設計されています。あなたのインスタンスを利用する人が Cloudflare アカウントを持つ必要はありません。必要なのはデプロイ時だけです。
必要なもの:
- R2 が有効になっている、Workers Paid プランの Cloudflare アカウント。Containers、SQLite 搭載 Durable Objects、Workflows、Queues を利用するには有料プランが必要です。
- そのアカウントに登録されたドメイン(Diffinery は
git.example.comのようなホスト名のルートで提供されます)。 - Deploy your own Diffinery に記載されている権限を持つ Cloudflare API トークン。
- デプロイ元のマシンに Node.js 22、pnpm 10、Docker、
jq、curl、openssl。
デプロイ:
git clone https://diffinery.com/codician/diffinery.git # or the GitHub mirror
cd diffinery
export CLOUDFLARE_API_TOKEN=... # never commit it
export CLOUDFLARE_ACCOUNT_ID=...
export DIFFINERY_DOMAIN=git.example.com # your hostname
export [email protected] # who becomes site administrator on first sign-in
scripts/setup.sh --dry-run # checks tools, token and config without changing anything
scripts/setup.sh # creates the Cloudflare resources and deploys
セットアップスクリプトは、アカウントに不足しているもの(D1 データベース、R2 バケットとライフサイクルルール、キュー、Turnstile ウィジェット、メール復旧用の Cloudflare Access アプリケーション)を作成し、データベースのマイグレーションを適用して、Worker とランナーイメージをデプロイし、Worker 自身のシークレットを一度だけ生成して、サイトが応答することを確認します。各手順は安全に繰り返せるため、同じコマンドで既存のインスタンスを更新できます。その後、https://<your host>/auth/access を開き、ワンタイムコードでメールアドレスを確認してパスキーを追加すると、あなたが最初の管理者になります。
Diffinery または GitHub Actions で、付属の Deploy workflow を使って CI からデプロイすることもできます。メール送信、DNS、Access、トラブルシューティングを含む詳細ガイドは独自の Diffinery をデプロイするをご覧ください。すべての設定については設定で説明しています。
Cloudflare 上での実行方法
| 構成要素 | Cloudflare 製品 |
|---|---|
| Web UI、Git スマート HTTP、REST および GraphQL API、MCP | Workers(Hono) |
| 1 つのリポジトリ:参照、オブジェクト、プルリクエスト、イシュー、レビュー、チェック、実行 | SQLite 搭載 Durable Object(RepoDO)、リポジトリごとに 1 つ |
| 大容量オブジェクト、Git LFS、コンテナイメージ、ログ、キャッシュ、アーティファクト | R2 |
| アカウント、組織、トークン、招待、通知、監査ログ | D1。リードレプリカの読み取りには Sessions API を使用 |
| Webhook、通知、メール | デッドレターキューを備えた Queues と Email Sending |
| ワークフローの実行(永続化され、再起動後も継続、ジョブのタイムアウトは 6 時間) | Workflows |
| ジョブランナー、エージェントのサンドボックス、インポート転送 | Containers(containers/runner の Ubuntu 24.04 イメージ) |
スケジュールされたワークフロー(on: schedule) | Cron Triggers |
| ライブログとプルリクエストの更新 | ハイバネーション対応の Durable Object WebSocket |
| サインイン | パスキー(WebAuthn)。Cloudflare Access はメール復旧経路の /auth/access のみを保護 |
詳しくはアーキテクチャをご覧ください。
ローカルで開発する
pnpm install
pnpm -r build && pnpm -r typecheck && pnpm -r test
pnpm --filter @diffinery/app db:migrate:local
pnpm dev # http://localhost:8787, signed in as [email protected]
pnpm --filter @diffinery/app e2e # wrangler dev, real git, the runner agent and Chromium
pnpm dev はローカルの D1、R2、キューを使って wrangler dev の下で Worker を実行するため、Diffinery の開発に Cloudflare アカウントは必要ありません。エンドツーエンドテストでは、git を使って実際のリポジトリをプッシュし、実際のランナーエージェントを通してそのワークフローを実行し、MCP サーバーと REST API(@octokit/rest を使用)を操作して、Chromium でパスキーを使ってサインインします。CONTRIBUTING.mdをご覧ください。
リポジトリの構成
apps/diffinery the Worker: web UI, git, REST/GraphQL, MCP, Actions, D1 migrations, docs, e2e tests
apps/cli the `diffinery` command-line client
apps/vscode the VS Code, Cursor and Windsurf extension
apps/jetbrains the JetBrains IDE plugin
plugins the Claude Code and Codex plugins (marketplaces in .claude-plugin/ and .agents/plugins/)
containers/runner the runner agent, sandbox server and the container image
packages/git-core git objects, packfiles, deltas, diff and merge, in pure TypeScript
packages/workflow-yaml the GitHub Actions workflow parser, expressions, matrices and cron
packages/shared types shared by the Worker and the runner
scripts setup, bootstrap and deploy scripts for Cloudflare
Diffinery が(まだ)対応していないこと
Diffinery はまだ新しいサービスです。導入する前に、その制限について知っておいていただきたいと考えています。
- ホステッドランナーは Linux x64 のみです。 macOS、Windows、Arm のジョブにはセルフホストランナーが必要です。
- Git は HTTPS のみです。 SSH アクセスには対応していません。
- フォークには対応していません。 プルリクエストは同じリポジトリ内のブランチ間で作成します。
- Wiki、ディスカッション、Pages 形式のサイト、Codespaces 形式のクラウドエディター、アプリマーケットプレイスには対応していません。
- レビュー機能は GitHub よりシンプルです。 保留中のレビュー、変更の提案、スレッドの解決にはまだ対応しておらず、ブランチ保護にはコードオーナーのレビューや署名付きコミットの要件がありません。
issuesやissue_commentなど一部の GitHub イベントはワークフローで受け付けられますが、実行は開始されません。- ホステッドサービスではありません。 Diffinery の運用はお客様ご自身で行い、独自のインスタンスをデプロイする必要があります。
全一覧はGitHub Actions との互換性とDiffinery と GitHub の比較をご覧ください。今後の開発予定についてはロードマップをご覧ください。
FAQ
Diffinery とは何ですか? Cloudflare 上で完全に動作する、オープンソースの Git フォージおよび CI プラットフォームです。GitHub のコードホスティング、プルリクエスト、GitHub Actions を、独自の Cloudflare アカウントにデプロイする 1 つのアプリで置き換えます。
Diffinery はオープンソースの GitHub Actions 代替サービスですか?
はい。Diffinery は .github/workflows/ にある GitHub Actions のワークフローファイルを、同じトリガー、式、マトリックス、needs、再利用可能なワークフロー、環境、シークレット、OIDC、サービスコンテナ、Docker に対応して実行します。また、マーケットプレイスのアクション(uses: owner/repo@ref)をダウンロードして実行します。既知の差異はすべてGitHub Actions との互換性に記載されています。
Diffinery はセルフホスト型の GitHub 代替サービスですか? はい。Gitea、Forgejo、GitLab と同じように自分で運用しますが、サーバーや Kubernetes クラスターではなく、Cloudflare のサーバーレスプラットフォームにデプロイします。また、独自形式ではなく GitHub Actions のワークフローファイルを実行します。
Diffinery は Gitea や Forgejo とどう違いますか? 3 つとも、自分で運用するオープンソースのフォージです。Gitea と Forgejo はお客様自身のサーバーで動作し、CI 用にインストールしたランナーマシンを使用します。Diffinery は Cloudflare 上でのみ動作するため、管理するサーバーやランナーマシンはなく、各 CI ジョブには新しいコンテナが割り当てられます。ただし、コードは Cloudflare のインフラストラクチャに保存されます。Gitea と Forgejo には Wiki とパッケージレジストリがありますが、Diffinery にはありません。Diffinery と Gitea、Forgejo の比較をご覧ください。
Diffinery は Blacksmith や Depot の代替サービスですか? チームのあり方によって異なります。Blacksmith と Depot はコードとプルリクエストを GitHub に置いたまま、ジョブをより高速なマシンで実行し、分単位で料金を請求します。Diffinery は GitHub 自体も置き換えます。リポジトリはお客様自身のインスタンスに移り、ジョブは Cloudflare アカウントが 10 ms 単位で料金を支払う 4 vCPU のランナーで実行されます。GitHub を使い続け、自分で何も運用したくない場合は、ランナーサービスのほうがシンプルな選択肢です。Diffinery と Blacksmith の比較とDepot との比較をご覧ください。
GitHub Actions のワークフローは変更せずに実行できますか?
ほとんどの場合、実行できます。Diffinery は .github/workflows/*.yml を同じ構文で読み込み、マーケットプレイスのアクションを実行します。ホステッドの macOS、Windows、Arm ランナーを必要とするジョブには、セルフホストランナーが必要です。GitHub Actions との互換性をご覧ください。
Diffinery は GitHub Actions より高速ですか?
ベンチマークのために GitHub 上でジョブを実行しているわけではないため、速度向上の数値は公表していません。Diffinery のデフォルトランナーは 4 vCPU、12 GiB で、GitHub のプライベートリポジトリ向け標準 Linux ランナーは 2 vCPU、8 GB です。そのため、複数のコアを使うジョブでは、2 倍の数のコアを利用できます。Diffinery では、ジョブはキューに入ってから約 3~5 秒で開始します。実測パフォーマンスをご覧ください。
コードを GitHub に置いたまま Diffinery CI を実行できますか?
はい。小規模な GitHub ワークフローですべてのプッシュを Diffinery インスタンスにミラーリングし、そこで同じ .github/workflows/ ファイルを実行できます。また、Diffinery での実行が失敗した場合に GitHub のジョブを失敗させることもできます。コードを GitHub に置いたまま Diffinery CI を実行するをご覧ください。
実行にかかる費用はいくらですか? Diffinery は Apache License 2.0 のもとで無料のオープンソースとして提供されており、有料版はありません。実行にかかる費用は、ご自身の Cloudflare アカウントで請求される料金のみです。Workers Paid プランの料金に使用量分が加算されます。ホスト型ランナーは Cloudflare Containers で、ジョブの実行中のみ課金されます。
Cloudflare の無料プランで実行できますか? いいえ。Containers、SQLite を使用する Durable Objects、Workflows、Queues には Workers Paid プランが必要です。Diffinery を自分でデプロイするをご覧ください。
AI コーディングエージェントに対応していますか?
はい。エージェントは MCP(https://<your host>/mcp。公式 MCP Registry では com.diffinery/diffinery として掲載)、REST API、git、または GitHub CLI を介して接続できます。Claude、Claude Code、Codex、Cursor、VS Code のガイドがあり、claude plugin marketplace add codician-team/diffinery(または https://diffinery.com/codician/diffinery.git。ソースは plugins/ にあります)でインストールできる Claude Code と Codex 向けのプラグインもあります。Diffinery にエージェントの実行を任せることもできます。エージェントタスクではサンドボックス内で Claude Code または Codex を実行してプルリクエストを作成し、エージェントレビューではすべてのプルリクエストをチェックします。AI コーディングエージェント向けに構築とAI アプリを接続するをご覧ください。
API キーの代わりに Claude または ChatGPT のサブスクリプションを利用できますか? ターミナルでは利用できます。ターミナルはブラウザー内のシェルで、リポジトリがチェックアウトされており、ご自身のプランで Claude Code または Codex にサインインして、プルリクエストを作成するタスクを指示できます。ヘッドレスのエージェントタスクとエージェントレビューでは、プロバイダーが API キーによる自動利用を許可しているため、追加した API キー(Anthropic、OpenAI、または OpenRouter)を使用します。OpenAI の許可に従い、ChatGPT プランでの Codex の利用はプライベートリポジトリに限られます。ターミナルをご覧ください。
AI エージェントは自分のプルリクエストをマージできますか? デフォルトではできません。ブランチ保護ルールで許可されていない限り、エージェントは保護されたブランチへのプッシュやマージを行えず、プルリクエストには人による承認が必要です。また、エージェントのチェック結果が必須チェックを満たすことはなく、エージェントがプッシュしたコードの実行にはシークレットが渡されません。ガードレールをご覧ください。
GitHub からリポジトリを移行できますか?
はい。インポーターを使うと、履歴、Issue、プルリクエスト、レビュー、リリースを含めて、リポジトリまたは組織全体を移行できます。シークレット名は移行され、各値を入力する欄が用意されます。gh、Octokit、VS Code、JetBrains IDE は Diffinery に接続して動作します。GitHub から移行するをご覧ください。
diffinery.com で登録できますか? 直接は登録できません。diffinery.com はプロジェクトのホームであり、Diffinery の開発に使用されているインスタンスです。アカウントは招待制です。自分でデプロイする前にそこで Diffinery を試すには、早期アクセスをリクエストしてください。チーム向けのホスト型サービスではないため、Diffinery を業務で利用するには、ご自身のインスタンスをデプロイしてください。 Diffinery は Cloudflare 上で唯一の Git プラットフォームですか? いいえ。ほかにも Git や CI を Cloudflare 上で実行するオープンソースプロジェクトがあり、Built on Cloudflare では、それらとの違いを紹介しています。私たちの知る限り、Git ホスティング、Web UI でレビューできるプルリクエスト、マーケットプレイスアクションに対応した GitHub Actions 互換の CI がすべて Cloudflare 上で実行されるのは Diffinery です(2026年10月25日時点)。
開発はどこで行われていますか? Diffinery 自体の diffinery.com/codician/diffinery です。Diffinery 自身の CI、デプロイ、プルリクエストもそこで実行されています。GitHub リポジトリはミラーであり、どちらの場所でも Issue やプルリクエストを歓迎します。CONTRIBUTING.md をご覧ください。
コントリビューション、セキュリティ、ライセンス
- コントリビューション: CONTRIBUTING.md をご覧ください。AI コーディングエージェントの場合は AGENTS.md もご確認ください。行動規範 に従ってください。質問は SUPPORT.md をご覧ください。
- ロードマップと変更: ROADMAP.md と CHANGELOG.md。
- セキュリティ: 脆弱性について公開 Issue を作成しないでください。SECURITY.md の説明に従って、非公開で報告してください。
- Diffinery の引用: GitHub の「このリポジトリを引用」ボタン、または CITATION.cff をご利用ください。
- ライセンス: Apache License 2.0。NOTICE もご覧ください。
Diffinery は Codician チームが開発しています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。







