qaml-ai/camelAI

camelAI — an AI coding assistant platform built on Cloudflare Workers and Durable Objects

camelAI – Cloudflare上で動作する永続的なAIコーディングワークスペース

概要 – camelAIは、チームがAIコーディングアシスタントとチャットできるフルスタックのWebプラットフォームです。各チャットスレッドは、Cloudflare Durable Object内で独自の「コーディングエージェント」を実行し、アシスタントにセッションをまたいで存続する永続的なワークスペース(ファイル、履歴、シークレット)を提供します。

主な機能

  • 永続的なチャットとプロジェクトファイル – 会話とソースファイルは、Durable Objectをバックエンドに持つSQLiteデータベース(小ファイル)とCloudflare R2(大ファイル)に保存されます。
  • ワークスペース対応コーディングエージェント – エージェントはプロジェクトのファイルを読み書きし、JavaScriptツールを実行し、短命のV8アイソレートまたはサンドボックスコンテナでコードを実行できます。
  • 統合機能 – API、データベース、電子メール、Slack、Discordなどへの組み込みコネクタがあり、エージェントがチャットから呼び出すことができます。
  • ビルドとデプロイ – プロジェクトはDockerベースのサンドボックスでビルドされ、Cloudflare Workers for Platformsとして公開され、ディスパッチャーワーカーがライブトラフィックをルーティングします。
  • 管理者機能 – 組織レベルの認証、請求、使用量クォータ、アプリコスト制御ポリシー。

仕組み

  1. フロントエンド – SSRでレンダリングされるReact-Router SPAで、Cloudflare Workerが配信します。
  2. メインワーカー – ChatThreadDO Durable Objectをホストし、エージェントループ(piエージェントフレームワークに基づく)を実行します。
  3. ワークスペースDO – プロジェクトのファイルシステム(SQLite + R2)を保存します。
  4. サンドボックスワーカー – 「コードモード」用のV8アイソレートと、ビルド、ノートブック分析、SQLクエリ用の個別のCloudflareサンドボックスコンテナ。
  5. ディスパッチャー – ユーザーが公開したアプリにリクエストをルーティングします。

はじめ方

  • Node 22+、Bun、Cloudflareアカウント、Docker(サンドボックス機能用)が必要です。
  • クローンし、bun installでインストールし、秘密鍵のサンプルファイルをコピーし、Cloudflare AI Gatewayトークンを追加(または後でAnthropic/OpenAIなどを設定)、bun run dev:local-authでローカル開発ユーザーをすばやくテストするか、bun run devで完全なOAuthフローを実行します。

自己ホスティング

  • 単一マシンのDocker-Composeセットアップで、スタック全体(Web UI、認証、モデルプロバイダー、Durable Objects、ビルド、ノートブック、SQLなど)をプライベートに実行できます。
  • 電子メール検証は意図的に省略されています。対象は社内利用または評価用です。

対象ユーザー

  • 永続的な状態を持つAI支援コーディング環境と、生成されたコードをプラットフォームから離れずにサーバーレスアプリとして展開できる機能を求める開発チーム。

ライセンス – MIT。


すべての詳細はリポジトリのREADMEから直接取得されています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • Dispatch