Sakana AI(chat.sakana.ai)向けのアカウント自動登録ツールと、OpenAI 互換ローカルプロキシをまとめたプロジェクトです。
主な対象モデル: sakana/namazu-v6.3(Namazu)
SAKANAAI/
├── sakana/ # アカウント自動登録(Python)
└── sakanaproxy/ # OpenAI 互換プロキシ(TypeScript / Node.js)
| ディレクトリ | 役割 |
|---|---|
sakana/ |
ブラウザ自動化で Sakana アカウントを登録し、sakana-chat Cookie を取得 |
sakanaproxy/ |
取得した Cookie を使い、Sakana Chat を OpenAI API 互換で公開 |
sakana(自動登録)
↓ sakana-chat Cookie を生成
sakanaproxy(プロキシ)
↓ OpenAI 互換 API を提供
アプリ / SDK / 各種クライアント
Python 製の CLI です。一時メール API とブラウザ自動化を使い、Sakana AI アカウントを登録してセッション Cookie を保存します。
| ファイル | 説明 |
|---|---|
main.py |
CLI エントリポイント |
register.py |
登録フロー |
browser.py |
ブラウザ自動化 |
mail.py |
メール(認証コード)取得 |
config.json |
設定 |
cookies.txt |
取得した Cookie の保存先 |
- Python 3.x
- 依存関係は
pyproject.tomlを参照
cd sakana
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e .
cp .env.example .env
# .env に秘密情報を記入秘密情報は .env に置く(.env.example を参照)。
非秘密の運用設定は config.json に置く。
優先順位: 環境変数 > .env > config.json
| 変数 | 説明 |
|---|---|
CLOUDFLARE_API_BASE |
一時メール API のベース URL |
CLOUDFLARE_API_KEY |
一時メール API キー |
CLOUDFLARE_AUTH_MODE |
認証方式(例: x-admin-auth) |
DEFAULT_DOMAINS |
メールドメイン |
PROXY |
ブラウザプロキシ(任意) |
SAKANAPROXY_URL |
Cookie 送信先プロキシ URL(任意) |
SAKANAPROXY_TOKEN |
プロキシ管理トークン(任意) |
| キー | 説明 |
|---|---|
register_count |
デフォルト登録数 |
concurrent_count |
同時実行数 |
browser_restart_every |
ブラウザ再起動間隔 |
log_level |
ログレベル |
cloudflare_path_* |
一時メール API パス |
# 設定どおりに 1 件(または register_count 件)登録
python main.py
# 5 件登録
python main.py --count 5
# 出力先を指定
python main.py --count 3 --output ./my-cookies.txt成功した Cookie は cookies.txt(または指定ファイル)に追記されます。
.env に SAKANAPROXY_URL と SAKANAPROXY_TOKEN がある場合は、プロキシの管理 API へ自動追加します。
Hono + Node.js 製のローカル API です。Sakana Chat のセッション Cookie を使い、OpenAI 互換エンドポイントを提供します。
- OpenAI API 互換 —
/v1/chat/completions、/v1/modelsなど - マルチアカウント — Round-robin と自動クールダウン
- ブラウザ不要 — 認証は
sakana-chat=UUIDCookie のみ - SQLite 保存 — Cookie は AES-256-GCM で暗号化して保存
- Reasoning 対応 — Namazu の思考モードをサポート
- ストリーミング — Sakana の NDJSON を OpenAI SSE に変換
- ツール実行 — ローカル tool 実行(
<tool_call>形式) - 監視 — Health check、Prometheus メトリクス、Watchdog
- Docker 対応
| 依存 | 最低バージョン |
|---|---|
| Node.js | v20.x |
| npm | v9.x |
| Docker(任意) | v24.x |
cd sakanaproxy
npm install
cp .env.example .env
# 必要に応じて .env を編集| 変数 | 説明 | デフォルト |
|---|---|---|
PORT |
待ち受けポート | 3000 |
HOST |
待ち受けホスト | 0.0.0.0 |
API_KEY |
/v1/* 保護用 API キー(空なら認証なし) |
(空) |
SAKANAPROXY_SECRET |
SQLite 内 Cookie 暗号化キー | (要変更) |
ADMIN_ENABLED |
管理パネル有効化 | false |
ADMIN_TOKEN |
管理トークン(16 文字以上推奨) | (空) |
SAKANA_DEFAULT_MODEL |
デフォルトモデル | sakana/namazu-v6.3 |
METRICS_ENABLED |
Prometheus メトリクス | true |
LOG_LEVEL |
ログレベル | info |
- ブラウザで https://chat.sakana.ai/ にログイン
- DevTools(
F12)→ Application → Cookies →https://chat.sakana.ai sakana-chatの値(UUID)をコピー
または sakana/ の自動登録で取得した Cookie を使います。
npm run login対話メニュー:
- [A] アカウント追加(Cookie を貼り付け)
- [L] 一覧
- [R] 削除
- [T] テスト(
/api/userで検証) - [Q] 終了
受け付ける形式:
- UUID のみ:
f52850d0-515e-445c-8b83-c3b22c0e49c5 - Cookie ヘッダ全体:
sakana-chat=UUID; Path=/; ... - ブラウザ拡張の JSON エクスポート(
name="sakana-chat"を含む配列)
# ローカル
npm start
# Docker
docker compose up -dデフォルト: http://localhost:3000
| ルート | メソッド | 説明 |
|---|---|---|
/v1/chat/completions |
POST | チャット補完(ストリーム / 非ストリーム) |
/v1/chat/completions/stop |
POST | 生成中断 |
/v1/models |
GET | モデル一覧 |
/v1/models/:model |
GET | モデル詳細 |
/v1/accounts |
GET | アカウント一覧(Cookie はマスク) |
/health |
GET | ヘルスチェック |
/metrics |
GET | Prometheus メトリクス |
import OpenAI from 'openai'
const openai = new OpenAI({
baseURL: 'http://localhost:3000/v1',
apiKey: process.env.API_KEY || 'sk-no-key-required',
})
const completion = await openai.chat.completions.create({
model: 'sakana/namazu-v6.3',
messages: [{ role: 'user', content: 'Sakana AI について説明して。' }],
})
console.log(completion.choices[0].message.content)ストリーミング:
const stream = await openai.chat.completions.create({
model: 'sakana/namazu-v6.3',
messages: [{ role: 'user', content: 'こんにちは' }],
stream: true,
})
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content || '')
}sakanaproxyを起動し、必要なら管理トークンを有効化sakana/.envにSAKANAPROXY_URL/SAKANAPROXY_TOKENを設定sakanaでアカウントを自動登録(Cookie がプロキシへ投入される)- クライアントから
http://localhost:3000/v1を OpenAI 互換エンドポイントとして利用
手動運用する場合:
sakanaで Cookie をcookies.txtに保存sakanaproxyでnpm run loginして Cookie を登録npm startで API を公開
| 領域 | 技術 |
|---|---|
| 自動登録 | Python、ブラウザ自動化、一時メール API |
| プロキシ | TypeScript、Node.js 20+、Hono、better-sqlite3、Zod |
| 永続化 | SQLite(WAL)、AES-256-GCM |
| デプロイ | Docker / docker-compose |
- Sakana Chat の利用規約・利用条件を確認したうえで使用してください
- 秘密情報(API キー、トークン、Cookie、サーバー IP など)は
.envにのみ置き、リポジトリにコミットしないでください sakana/.env、sakanaproxy/.env、sakanaproxy/deploy/.env、cookies.txt、SQLite DB は.gitignore済み- 本番では
SAKANAPROXY_SECRETとADMIN_TOKENを必ず変更してください - 自動登録・大量アカウント運用は ban や制限のリスクがあります
sakanaproxy は ISC ライセンスです。詳細は sakanaproxy/LICENSE を参照してください。