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として公開され、ディスパッチャーワーカーがライブトラフィックをルーティングします。
- 管理者機能 – 組織レベルの認証、請求、使用量クォータ、アプリコスト制御ポリシー。
仕組み
- フロントエンド – SSRでレンダリングされるReact-Router SPAで、Cloudflare Workerが配信します。
- メインワーカー –
ChatThreadDODurable Objectをホストし、エージェントループ(piエージェントフレームワークに基づく)を実行します。 - ワークスペースDO – プロジェクトのファイルシステム(SQLite + R2)を保存します。
- サンドボックスワーカー – 「コードモード」用のV8アイソレートと、ビルド、ノートブック分析、SQLクエリ用の個別のCloudflareサンドボックスコンテナ。
- ディスパッチャー – ユーザーが公開したアプリにリクエストをルーティングします。
はじめ方
- 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