ctonew-proxy — cto.new互換のAPIプロキシ(Deno Deploy対応)
Tool
概要
ctonew-proxyは、cto.newの非公式APIを、OpenAI/Claude互換のREST API形式で利用できるように変換する軽量プロキシです。TypeScriptで実装され、Deno環境(特にDeno Deploy)でのワンボタンデプロイを想定しています。ストリーミングレスポンスやCORS、簡易的な認証機能を備え、サーバーやデータベースを用意せずに個人や小規模プロジェクトで利用できます。利用するにはcto.newのブラウザクッキー(__client)の値を取得してAPIキー代わりに設定します。
リポジトリの統計情報
- スター数: 7
- フォーク数: 16
- ウォッチャー数: 7
- コミット数: 4
- ファイル数: 3
- メインの言語: TypeScript
主な特徴
- Deno Deployでのワンボタンクイックデプロイに最適化された設計
- OpenAI / Anthropic Claude風のAPIインターフェース互換(リクエスト/レスポンス変換)
- ストリーミング応答対応(リアルタイムでのチャット的利用が可能)
- 簡易認証(cto.newの__clientクッキーを用いる)およびCORS設定をサポート
技術的なポイント
本プロジェクトはDenoランタイム上で動作するTypeScriptサーバー(server.ts)を中心に構成されています。キーとなる技術は以下です。
- Deno Deploy向け実装: Denoの標準API(fetch、Request/Responseオブジェクト、ストリーム処理)を活用し、追加のランタイム依存を排除。これによりデプロイが簡単で、外部パッケージに依存しないシンプルさを保っています。
- API互換レイヤー: OpenAI/Claude互換のエンドポイント仕様をフロントに置き、内部でcto.newの非公式APIへ変換してリクエストを中継します。既存のクライアント(OpenAI互換クライアントやツール)をほぼそのまま使える点が利点です。
- ストリーミング処理: サーバーはバックエンドからのストリーミングをクライアントへ中継するため、ReadableStreamやテキストストリームを透過的に扱えるように設計されています。これによりチャットや長文生成の逐次表示が可能です。
- 認証とセキュリティ: cto.new側の認証情報はブラウザのCookieに格納されている__clientの値を用いる仕様で、READMEにある手順に従って取得・設定します。プロキシ自体はその値をAPIキーの代わりに扱うため、運用時はキーの管理(Deno Deployのシークレット機能等)やアクセス制御を適切に行う必要があります。
- CORSと軽量性: ブラウザから直接呼び出すユースケースを想定し、CORSヘッダーの制御を含めて実装。サーバーサイドの複雑なインフラを不要にするため、ステートレスでファイル数も少なくまとめられています。
実運用ではcto.new側の仕様変更やレート制限、クッキーの有効期限・取り扱い、法的・利用規約面での注意が必要です。コード自体はシンプルなので、必要に応じてログ、エラーハンドリング、レートリミット回避ロジック、認証強化(APIキー発行やIP制限)などを追加して拡張するのが現実的です。
プロジェクトの構成
主要なファイルとディレクトリ:
- LICENSE: file
- README.MD: file
- server.ts: file
まとめ
Denoで軽量にcto.newをOpenAI互換として扱えるプロキシ。手軽に試せる点が魅力。