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キー代わりに設定します。

GitHub

リポジトリの統計情報

  • スター数: 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互換として扱えるプロキシ。手軽に試せる点が魅力。