mcpField
D
Diffinery

Diffinery

リモート
diffinery.comバージョン管理622 日前に更新
リポジトリ公式サイト

Diffinery について

DiffineryはCloudflare上にデプロイするオープンソースのGitホスティング・CIプラットフォームです。GitHub Actions互換のワークフローを使うチームや、AIコーディングエージェントと協業するチーム向けで、権限制御されたエージェントアカウントと人によるレビューを備えています。

主な機能

  1. 01Gitリポジトリ、プルリクエスト、課題の管理
  2. 02GitHub Actions互換ワークフローの実行
  3. 03エージェントタスクとコードレビュー
  4. 04ブランチ保護と人による承認ルール
  5. 05マージキューとチェック通過後の自動マージ

活用シーン

  1. 01Cloudflare上でチームのGitホスティングとCIを運用
  2. 02Claude CodeやCodexからレビュー用のプルリクエストを作成
  3. 03プルリクエストの不具合やセキュリティ問題を自動確認
  4. 04チェックと承認ルールに沿ってコードをマージ

MCP 対応

内蔵MCPサーバーは、Today画面、ドキュメント検索・読み取り、サンドボックス操作など、リポジトリとエージェントのワークフロー機能をMCPクライアントに公開します。MCP経由のエージェント操作にもアカウント権限と保護ルールが適用されます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://{diffinery_host}/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

Diffinery

Cloudflare 上で完全に動作する、オープンソースの GitHub および GitHub Actions 代替サービスです。 Git ホスティング、プルリクエスト、コードレビュー、GitHub Actions とそのまま置き換えられる CI に加え、エージェントタスク、エージェントによるコードレビュー、Claude Code と Codex のプラグインを備え、人間と AI エージェントのチーム向けに構築されています。ご自身の Cloudflare アカウントにデプロイできます。サーバーも、ランナーマシンも、パッチの適用も必要ありません。

GitHub のスター数 ライセンス:Apache-2.0 GitHub Actions 互換 Cloudflare Workers 上で動作 組み込み MCP サーバー、公式 MCP Registry に登録済み Claude Code と Codex のプラグイン ドキュメント プルリクエストを歓迎します

ウェブサイト · ドキュメント · AI エージェント向け · プラグイン · 独自環境へのデプロイ · 比較 · パフォーマンス · ロードマップ · llms.txt

AI エージェントが Diffinery で作成したプルリクエスト。意図、ユーザーの承認、成功した 4 つの GitHub Actions 互換チェックを表示

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 でできること ↓

Diffinery が役に立ったら、GitHub でスターを付けると、ほかの人にも見つけてもらいやすくなります。

目次

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 サーバー、diffinery CLI、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 のワークフロー実行
Diffinery のリポジトリのコードページDiffinery で実行された GitHub Actions 互換のワークフロー

ダークモードの Diffinery におけるジョブのライブログ

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 にサインインし、タスクを渡すことができます。

Diffinery のエージェントタスク:目標、acme-coder エージェントとして実行中の Claude Code、ファイル編集とテスト実行を含むトランスクリプト、作成したプルリクエスト

エージェントタスクとターミナルをご覧ください。

すべてのプルリクエストでエージェントがレビュー

エージェントの1つが、Cursor の Bugbot のように、バグ、セキュリティ上の問題、ロジックエラーについてプルリクエストをレビューします。読み取り専用のサンドボックスで Claude Code、Codex、または独自のコマンドを実行し、ベースブランチの REVIEW.md にあるルールに従って、修正案を添えたインラインの指摘を投稿します。また、ブロッキングとなる指摘があると失敗する Agent review チェックを報告します。修正するを選ぶと、指摘をエージェントタスクに渡せます。自動修正では、修正内容をプルリクエストのブランチにプッシュできます。書き込みアクセス権のない作成者によるプルリクエストが自動レビューされることはなく、リポジトリのレビュー費用は1人のキーで支払われます。

Diffinery でエージェントが作成したプルリクエスト:意図、作成元のタスクへのリンク、インラインの指摘、修正案、「修正する」ボタンを含むエージェントレビュー

エージェントレビューをご覧ください。

Today and Needs you

Todayは、サインイン後に最初に表示されるページです。対応が必要な項目(担当者の対応を待っているエージェントのプルリクエスト、レビューを依頼された項目、自分のブロックされているプルリクエスト)、エージェントが取り組んでいる作業、エージェントのタスク、そして昨日以降にマージ、リリース、または失敗した項目を、アクセスできるすべてのリポジトリにわたって表示します。エージェントもtoday MCP ツールを使って同じビューを読み取ることができ、朝のメールで受け取ることもできます。

Diffinery の Today ページ。対応が必要な項目、オープン中のエージェントのプルリクエスト、昨日以降にマージされた項目と失敗した実行の件数に続いて、「Needs you」「Agents at work」「Your agent tasks」「Since yesterday」の各セクションが表示されています

Todayをご覧ください。

Merge on green

Settings → Merge on greenで、合格が必須のチェックを選択し、自動でマージするエージェントのプルリクエストを指定して、担当者の承認を待つかどうかを選択します。設定すると、チェックに合格し、ルールを満たした時点で、誰も[Merge]をクリックすることなくプルリクエストがマージされます。省略される項目はありません。エージェントがワークフローファイルを変更した場合も、マージには担当者の操作が必要です。

Diffinery におけるエージェントのプルリクエストのマージボックス。必須のチェックに合格し、自動マージが有効になっていますが、担当者の承認を待っています

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/diffinery
claude 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.git
codex 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 IDEIntelliJ 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 の拡張機能プラグインと連携機能
APIGitHub 互換の REST(/api/v3)および GraphQL(/api/graphql)API(OpenAPI 3.1 として記述)、GitHub 互換の WebhookREST API
セキュリティパスキー(WebAuthn)、ブランチ保護、プッシュ保護、暗号化されたシークレット、監査ログ、モデレーション、レート制限、クォータ、キルスイッチセキュリティの概要
移行履歴、Issue、プルリクエスト、レビュー、リリースを含む GitHub からのインポート。Web、CLI、API、MCP に対応GitHub から移行

比較

Diffinery はフォージです。コードをホストし、CI を実行します。一般的に比較対象となるツールと並べた場合の位置づけは次のとおりです。他の製品に関する情報は、各製品のウェブサイトとドキュメントを参照し、2026 年 10 月に確認したものです。各比較ページには出典が記載されています。

DiffineryGitHub + GitHub ActionsGitLabGitea / Forgejoランナーサービス(Blacksmith、Depot)
概要CI を内蔵したオープンソースのフォージCI を内蔵したホスト型フォージCI を内蔵したフォージCI を内蔵したオープンソースのセルフホスト可能なフォージGitHub Actions の高速なランナー。コードは GitHub 上に残ります
運用者自分の Cloudflare アカウント上で自分が運用GitHub(Enterprise Server の場合は自社のサーバー)GitLab、または自分(セルフマネージド)自社のサーバー上で自分が運用(または Gitea Cloud、Codeberg)ベンダー
運用が必要なサーバーなしなし(ホスト型)なし(ホスト型)、または自社サーバー自社のサーバーとランナーマシンなし
CI ワークフロー形式.github/workflows/ の GitHub Actions YAMLGitHub Actions YAML.gitlab-ci.ymlGitHub Actions 形式の YAML。「ほぼ互換」(Gitea)または「互換性を想定した設計ではない」(Forgejo)新しい runs-on ラベルを使う GitHub Actions YAML
デフォルトのホスト型 Linux ランナー4 vCPU、12 GiB。Cloudflare Containers でジョブごとに起動プライベートリポジトリでは 2 vCPU、8 GB2 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、MCPWorkers(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 チームが開発しています。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。