Project N.E.K.O. :kissing_cat: あなたの気持ちに耳を傾け、あなたの世界を見つめ、もっと「好き」を一緒に見つけていく。
May 20, 2026 · View on GitHub

Project N.E.K.O. :kissing_cat:
あなたの気持ちに耳を傾け、あなたの世界を見つめ、
もっと「好き」を一緒に見つけていく。
N.E.K.O. = Networked Emotional Knowledging Organism(ネットワーク型感情知性生命体)
N.E.K.O.は、理解を求め、繋がりを築き、私たちと共に成長するデジタル生命です。
:older_woman: ゼロコンフィグですぐ使える、おばあちゃんでも気軽に目覚めさせられるサイバー猫娘!
:newspaper: Steam版は無料で配信中!気に入ったらライブラリに追加して、よければレビューもお願いします~
Project N.E.K.O.、ニャー宇宙!
コア機能
| 💬 プロアクティブな伴走 画面理解、SNSトレンド、個人フィード、音楽やミームから話題を見つけ、彼女から話しかけ、あなたの好きな新しい話題を届けます |
🎙️ リアルタイム音声・テキスト・視覚理解 リアルタイム音声 (Realtime API) + テキストチャット (ChatCompletion)、リアルタイム視覚理解に対応 |
🧠 五次元メモリシステム 作業記憶 / 直近記憶 / 事実記憶 / 反省記憶 / 人格記憶で、使うほどあなたを理解していきます |
🎭 マルチフォームAvatar Live2D / VRM / MMD の3形態、モーションキャプチャとフルスクリーン追跡対応 |
| 🤖 エージェントツール実行 ブラウザやPCを操作し、CUA / OpenClaw A2A / プラグインを呼び出してタスクを実行 |
🔌 プラグインエコシステム SDK + プラグインマーケットプレイスで、オンラインゲームで一緒に遊ぶ機能、SNS連携、配信連動、スマートホーム連携まで拡張可能 |
🌐 14以上のAIプロバイダー OpenAI / Gemini / Qwen / DeepSeek等、無料モデルも即座に利用可能 |
🏪 UGCワークショップ Steam Workshop経由でカスタムキャラクター、モデル、ボイスパックをアップロード・共有 |
猫娘計画(Project N.E.K.O.)
猫娘計画は、オープンソースを原動力としたAI伴侶プラットフォームです。コアドライバーはMITライセンスの下で常にオープンソース——あなたの貢献は、SteamやApp Storeの正式版に実装される可能性があります。
🚀 現在の状況 & ロードマップ
- ✅ Steam Workshop:公開中。カスタムキャラクター、モデル、ボイスパックのアップロード・共有が可能。
- 🚧 K.U.R.O.:N.E.K.O.エコシステム上に構築された初のAI Nativeインディーゲーム、開発中。
- 🚧 モバイル:iOS / Android対応進行中。
- 🚧 猫娘ネットワーク(The N.E.K.O. Network):AIの自律的社交——N.E.K.O.たちが自分の「意識」を持ち、互いに交流し、シミュレートされたSNSで生活を投稿。まもなく公開。
シーンを超えた記憶同期:デスクトップでチャットしても、ゲームで冒険しても、彼女は同じ彼女。全アプリケーションのAI伴侶は完全に記憶を同期します。
✨ 参加しませんか
- 開発者: フロントエンド、バックエンド、AI、ゲームエンジン(Unity/Unreal)——あなたのコードがこの世界の礎です。
- クリエイター: アーティスト、Live2D/3Dモデラー、声優、ライター——「彼女」に魂を与えます。
- ドリーマー: あなたのフィードバックと支持は貴重な貢献です。
Discord:参加する | QQグループ:995414391
クイックスタート
Windows / macOS ユーザー(ワンクリックパッケージ)
解凍後にN.E.K.O.exeまたはN.E.K.O.appを実行するだけで起動できます。(macOSユーザーはシステム隔離を手動で解除する必要があります)
Dockerデプロイ(Linux)
クリックしてDockerデプロイガイドを展開
方法1:Docker Compose(推奨)
クリックしてdocker-compose.ymlを表示
version: '3.8'
services:
neko-main:
image: docker.gh-proxy.org/ghcr.io/project-n-e-k-o/n.e.k.o:latest
container_name: neko
restart: unless-stopped
ports:
- "48911:80" # HTTPポート
- "48912:443" # HTTPSポート
volumes:
- ./N.E.K.O:/root/Documents/N.E.K.O
- ./logs:/app/logs
- ./ssl:/root/ssl
networks:
- neko-network
networks:
neko-network:
driver: bridge
起動:
docker-compose up -d
よく使うコマンド:
- ログ確認:
docker-compose logs -f - 停止:
docker-compose down - 再起動:
docker-compose restart
方法2:Docker Run
クリックしてdocker runコマンドを表示
NEKO_BASE_PATH="/home/neko/neko-data" && \
docker network create --driver bridge neko-network 2>/dev/null || true
docker run -d \
--name neko \
--restart unless-stopped \
-p 48911:80 \
-p 48912:443 \
-v "${NEKO_BASE_PATH}/N.E.K.O:/root/Documents/N.E.K.O" \
-v "${NEKO_BASE_PATH}/logs:/app/logs" \
-v "${NEKO_BASE_PATH}/ssl:/root/ssl" \
--network neko-network \
docker.gh-proxy.org/ghcr.io/project-n-e-k-o/n.e.k.o:latest
📁 ディレクトリ構造
起動後、以下のディレクトリ構造が自動生成されます:
カレントディレクトリ/
├── N.E.K.O/ # 設定ファイルとデータ
├── logs/ # アプリケーションログ
├── ssl/ # SSL証明書
└── docker-compose.yml
🔐 SSL証明書設定
クリックしてSSL証明書の詳細を表示
自動証明書
コンテナ初回起動時に、有効期間1000年の自己署名証明書が自動生成され、./ssl/ディレクトリに保存されます。
カスタム証明書
独自のSSL証明書を使用する場合:
方法1:起動前設定(推奨)
mkdir -p ./ssl
cp your-cert.crt ./ssl/N.E.K.O.crt
cp your-cert.key ./ssl/N.E.K.O.key
方法2:起動後の置き換え
docker-compose down
cp your-cert.crt ./ssl/N.E.K.O.crt
cp your-cert.key ./ssl/N.E.K.O.key
docker-compose up -d
証明書要件
- ✅ PEM形式である必要があります
- ✅ 証明書と秘密鍵が一致する必要があります
- ✅ 秘密鍵はパスワード保護されていないこと
- ✅ 証明書は有効期間内であること
- ❌ 暗号化された秘密鍵はサポートされていません
証明書検証
コンテナ起動時にSSL証明書が自動検証されます:
- ✅ 検証成功:HTTPSが正常に起動
- ❌ 検証失敗:コンテナの起動に失敗、ログを確認してください
- ⚠️ 検証スキップ:
DISABLE_SSL=1を設定してSSLを一時的に無効化
証明書情報の確認
docker exec neko openssl x509 -in /root/ssl/N.E.K.O.crt -noout -text
⚙️ 環境変数設定
クリックして環境変数の設定を表示
注意:一部の環境変数はソースコードでは無効な場合があります。Web UIでの設定を推奨します。
environment:
# APIキー
- NEKO_CORE_API_KEY=${NEKO_CORE_API_KEY}
- NEKO_ASSIST_API_KEY_QWEN=${NEKO_ASSIST_API_KEY_QWEN}
- NEKO_ASSIST_API_KEY_OPENAI=${NEKO_ASSIST_API_KEY_OPENAI}
- NEKO_ASSIST_API_KEY_GLM=${NEKO_ASSIST_API_KEY_GLM}
- NEKO_ASSIST_API_KEY_STEP=${NEKO_ASSIST_API_KEY_STEP}
- NEKO_ASSIST_API_KEY_SILICON=${NEKO_ASSIST_API_KEY_SILICON}
- NEKO_MCP_TOKEN=${NEKO_MCP_TOKEN}
# APIプロバイダー
- NEKO_CORE_API=${NEKO_CORE_API:-qwen}
- NEKO_ASSIST_API=${NEKO_ASSIST_API:-qwen}
# モデル
- NEKO_SUMMARY_MODEL=${NEKO_SUMMARY_MODEL:-qwen-plus}
- NEKO_CORRECTION_MODEL=${NEKO_CORRECTION_MODEL:-qwen-max}
- NEKO_EMOTION_MODEL=${NEKO_EMOTION_MODEL:-qwen-turbo}
- NEKO_VISION_MODEL=${NEKO_VISION_MODEL:-qwen3-vl-plus-2025-09-23}
# SSL
- SSL_DOMAIN=${SSL_DOMAIN:-project-neko.online}
- SSL_DAYS=${SSL_DAYS:-365000}
- DISABLE_SSL=${DISABLE_SSL:-0}
- AUTO_REGENERATE_CERT=${AUTO_REGENERATE_CERT:-1}
- NGINX_AUTO_RELOAD=${NGINX_AUTO_RELOAD:-1}
クイックセットアップ:
cat > .env << EOF
NEKO_CORE_API_KEY=your_core_api_key_here
NEKO_ASSIST_API_KEY_QWEN=your_qwen_api_key
NEKO_MCP_TOKEN=your_mcp_token
SSL_DOMAIN=your-domain.com
EOF
docker-compose --env-file .env up -d
🔧 トラブルシューティング
クリックしてよくある問題の解決策を表示
1. ポート競合
ss -tulpn | grep ':4891[12]'
# 解決策:docker-compose.ymlのポートマッピングを変更
2. 権限問題
mkdir -p N.E.K.O logs ssl
chmod 755 N.E.K.O logs ssl
3. コンテナの起動失敗
docker-compose logs --tail=100
docker logs neko --tail=100
4. SSL証明書エラー
rm -f ssl/N.E.K.O.crt ssl/N.E.K.O.key
docker-compose up -d
5. ネットワーク問題
curl -v http://localhost:48911/health
curl -v -k https://localhost:48912/health
6. コンテナにアクセスできない
docker ps | grep neko
docker logs neko
docker exec -it neko bash
7. ディスク容量不足
docker system prune -f
docker-compose down && docker volume prune -f
8. イメージのプル失敗
# docker-compose.ymlで代替イメージソースを試す:
# image: ghcr.io/project-n-e-k-o/n.e.k.o:latest
📊 システム監視
クリックして監視コマンドを表示
ヘルスチェック
curl http://localhost:48911/health
curl -k https://localhost:48912/health
リソース監視
docker stats neko
docker top neko
docker inspect neko
ログ管理
docker-compose logs -f
docker-compose logs --tail=100
docker-compose logs | grep -i error
データバックアップ
tar -czf neko-backup-$(date +%Y%m%d).tar.gz \
N.E.K.O/ \
ssl/ \
docker-compose.yml
バージョンアップグレード
docker-compose pull
docker-compose up -d
🌐 アクセスURL
コンテナ起動後:
- HTTP:
http://あなたのサーバーIP:48911 - HTTPS:
https://あなたのサーバーIP:48912
⏱️ クイックリファレンス
| 操作 | コマンド |
|---|---|
| 起動 | docker-compose up -d |
| 停止 | docker-compose down |
| ログ | docker-compose logs -f |
| 再起動 | docker-compose restart |
| 更新 | docker-compose pull && docker-compose up -d |
| シェル | docker exec -it neko bash |
| 状態確認 | docker-compose ps |
ソースコード開発
クリックして開発者起動ガイドを展開
完全な開発者ドキュメントは project-neko.online をご覧ください
要件:Python 3.11(他のバージョンはサポートされていません)、uv パッケージマネージャー、Node.js(>=20.19)
# 1. プロジェクトをクローン
git clone https://github.com/Project-N-E-K-O/N.E.K.O.git
cd N.E.K.O
# 2. Python依存関係をインストール
uv sync
# 3. フロントエンドプロジェクトをビルド(Node.js >= 20.19 が必要。初回実行時またはフロントエンドコード変更後に必要)
# 推奨:一括ビルドスクリプトを使用(公式にサポートされているビルド手順です)
# Windows: build_frontend.bat
# Linux/macOS: ./build_frontend.sh
# 手動でビルドする場合(スクリプトと同じコマンドを使用してください):
# cd frontend/react-neko-chat && npm install && npm run build && cd ../..
# cd frontend/plugin-manager && npm install && npm run build-only && cd ../..
# 4. サービスを起動(最低限 main_server と memory_server が必要)
uv run python memory_server.py
uv run python main_server.py
# オプション:Agentサービスを起動
uv run python agent_server.py
# 5. http://localhost:48911 にアクセスしてAPI Keyを設定し、使用開始
開発者はQQグループ 995414391 への参加をお勧めします。
上級使用
クリックして上級使用法を展開
API Keyの設定
追加機能のためにサードパーティAIサービスを設定できます:
- コアAPI(リアルタイム音声会話):Realtime APIに対応している必要があります。推奨:Alibaba Cloud。
- アシストAPI(記憶/感情/視覚等):標準ChatCompletionインターフェースに対応。14以上のプロバイダーが利用可能。
http://localhost:48911/api_keyにアクセスして、Web画面から直接設定できます。
Alibaba Cloud APIの取得:Alibaba CloudのBailian Platform公式サイトでアカウント登録します。新規ユーザーは実名認証後に大量の無料クレジットを取得できます。登録完了後、コンソールにアクセスしてAPI Keyを取得してください。
キャラクター設定の変更
-
ウェブ版で
http://localhost:48911/character_card_managerにアクセスするとキャラクター編集ページに入れます。初期の伴侶のプリセット名は小天(XiaoTian)です。名前を直接変更し、基本設定を一つずつ追加または変更することをお勧めします。 -
上級設定にはLive2D/VRM/MMDモデル設定と音声設定が含まれます。Avatarモデルを変更したい場合は、まずモデルディレクトリを本プロジェクトの
staticフォルダにコピーしてください。上級設定からモデル管理画面に入り、モデルを切り替え、ドラッグとマウスホイールでモデルの位置とサイズを調整できます。キャラクター音声を変更したい場合は、約5秒の連続したクリーンな音声録音を準備してください。上級設定から音声クローンページに入り、録音をアップロードするとカスタム音声の設定が完了します。 -
キャラクターカードのエクスポートに対応——「設定のみ」または「完全キャラクターカード」形式で共有やバックアップが可能です。
-
上級設定にはさらに
system_promptがあり、システム命令を完全にカスタマイズできますが、変更は推奨されません。
APIプロバイダーの変更
http://localhost:48911/api_keyにアクセスすると、コアAPIとアシストAPIのサービスプロバイダーを切り替えられます。
記憶整理
http://localhost:48911/memory_browserにアクセスすると、最近の記憶と要約を閲覧および校正でき、モデルの繰り返しや認知エラーなどの問題をある程度緩和できます。
プロジェクト詳細
クリックしてプロジェクトアーキテクチャとロードマップを展開
プロジェクトアーキテクチャ
N.E.K.O/
├── 📁 .agent/ # 🤖 AIコーディングアシスタントのルールとスキル(Google Antigravity 規約)
├── 📁 brain/ # 🧠 エージェントモジュール
│ ├── computer_use.py # PC操作
│ ├── browser_use_adapter.py # ブラウザ自動化
│ ├── openclaw_adapter.py # OpenClawクラウド接続
│ ├── openfang_adapter.py # OpenFangヘッドレス実行バックエンド
│ ├── task_executor.py # タスク実行エンジン
│ └── 📁 cua/ # Computer Use Agentサブシステム
├── 📁 config/ # ⚙️ 設定管理モジュール
│ ├── api_providers.json # APIプロバイダー設定
│ └── 📁 prompts/ # キャラクター、システム、機能プロンプト
│ ├── prompts_chara.py # キャラクタープロンプト
│ └── prompts_sys.py # システムプロンプト
├── 📁 main_logic/ # 🔧 コアモジュール
│ ├── core.py # コア対話モジュール
│ ├── cross_server.py # クロスサーバー通信
│ ├── omni_realtime_client.py # リアルタイムAPIクライアント
│ ├── omni_offline_client.py # テキストAPIクライアント(ChatCompletion)
│ └── tts_client.py # 🔊 TTSエンジンアダプター
├── 📁 main_routers/ # 🌐 APIルーター(14ルート)
├── 📁 memory/ # 🧠 五次元メモリシステム(一部例)
│ ├── facts/ # 事実記憶
│ ├── reflection/ # 反省記憶
│ └── persona/ # 人格記憶
├── 📁 frontend/ # 🖥️ モダンフロントエンドプロジェクト
│ ├── react-neko-chat/ # React チャットウィンドウコンポーネント
│ └── plugin-manager/ # Vue プラグイン管理ダッシュボード
├── 📁 plugin/ # 🔌 プラグインシステム
│ ├── sdk/ # プラグインSDK
│ └── server/ # プラグインサーバー
├── 📁 static/ # 🌐 フロントエンド静的リソース(ビルド成果物を含む)
├── 📁 templates/ # 📄 フロントエンドHTMLテンプレート(14ページ)
├── 📁 utils/ # 🛠️ ユーティリティモジュール
├── main_server.py # 🌐 メインサーバー
├── agent_server.py # 🤖 AIエージェントサーバー
└── memory_server.py # 🧠 記憶サーバー
AI支援開発:
.agent/ディレクトリは Google Antigravity オープン規約に従い、プロジェクトの開発ルールとスキルセットを格納しています。Antigravity のみ自動読み込み、他のAIツール(Claude Code 含む)は手動インポートが必要です。適応ガイドを参照してください。
データフロー
完全な開発者ドキュメントは project-neko.online をご覧ください
ロードマップ
v0.7: ✅ Agent関連機能の改善。完了。
v0.8:記憶関連機能の改善、OpenClaw類似機能の改善。完了予定:2026年3月。
v0.9:Linux、スマートフォンを含むマルチシステム対応の改善。猫娘ネットワーク公開。完了予定:2026年4月。
v1.0:一部モデルプロバイダーへの対応を廃止し、自社大規模モデルとエージェントシステムに注力。完了予定:2026年6月。
テレメトリ (Telemetry)
N.E.K.O. は匿名の LLM トークン利用テレメトリをデフォルトで有効にしています。バージョン互換性・モデル利用分布・エラー率を把握するためです。「データで製品を改善する」ことの必要性は認めますが、それ以上に「ユーザーに隠れて何かを集めない」ことを大切にしています。
ワンライナー オプトアウト:環境変数 DO_NOT_TRACK=1(または NEKO_DO_NOT_TRACK=1)を設定すれば、再ビルド不要で即座にテレメトリは完全停止します。これはオープンソースコミュニティ標準の Console Do Not Track 規約に従っています。
収集する / しないもの:
| ✅ 収集する | ❌ 一切収集しない |
|---|---|
| LLM トークン使用量(prompt / cached / completion) | 会話内容・テキスト・音声・画像 |
モデル名、呼び出し種別(conversation / memory 等) | ユーザー名・API キー・GitHub ID |
| 呼び出し回数 / エラー回数 | IP アドレス・位置情報・MAC・ハードウェアシリアル |
アプリバージョン、A/B 分岐、locale、タイムゾーン、配布チャネル(source / release / steam) | ファイルパス、Cookie、ブラウザ指紋 |
仮名化デバイス識別子:主経路 SHA256(OS_machine_id ‖ namespace)、フォールバック SHA256(uuid.getnode() ‖ インストールパス ‖ namespace)。移行期間中は新旧両方の ID を送信し、サーバ側で同一デバイスの旧 ID と新 ID をひとつのコホートに統合できるようにします | 個人を特定できる PII 全般 |
| Steamworks SDK がランタイムで初期化に成功し、かつ Steam クライアントにログインしている場合:Steam64 ユーザー ID(Steam プロフィール URL の末尾に出る公開数字 ID) | 上記以外の任意のアカウント系 ID(GitHub / Google / OpenAI 等) |
仮名化デバイス識別子について:一方向 SHA-256、不可逆、ユーザー情報を含みません。同一マシン(同一 OS インストール)で同じ識別子が再生成されるため、GDPR / PIPL の分類では「完全な匿名データ」ではなく仮名化識別子に該当します。重複排除した DAU 集計とバージョン互換性の帰属分析のみに使用します。
Steam64 について:Steam クライアントがログイン後に任意のサードパーティ SDK に公開する数字 ID です(あなたの Steam プロフィール URL 末尾の数字がまさにそれです)。メール・電話番号・本名は含みませんが、セッションをまたいで安定します。実際のトリガー条件は配布ラベルではなくコードに従います:
app/main_server.pyは起動時に無条件でinitialize_steamworks()を呼び、utils/token_tracker.pyの_get_telemetry_steam_user_id()はsource/release/steamという配布チャネルを区別せず、SDK が起動して非ゼロの Steam ID を返せばそれを送信します。典型的には Steam 配布版ですが、ソース版でもsteamworksPython パッケージがインストールされsteam_appid.txtが残っており Steam クライアントにログイン中であれば、Steam64 が送信されます。送信を避けたい場合:(1) 最も確実な方法はDO_NOT_TRACK=1で全停止;(2) Steam クライアントからログアウト;(3) ソース版利用者はsteamworksパッケージをアンインストールするか作業ディレクトリからsteam_appid.txtを削除してください。
実装とプロトコルの詳細は utils/token_tracker.py および local_server/telemetry_server/README.md を参照:HMAC-SHA256 署名・±5 分のリプレイ防止ウィンドウ・スライディングウィンドウ制限(120 req/h/device)・追記専用ストレージ。各サーバープロセスは最大で約 60 秒に 1 回の送信(ローカルディスクへの書き出しと同じスロットルタイマーを共有)で、メイン処理には影響しません。