Vortex Notes について
Vortex Notesは、エンドツーエンド暗号化されたMarkdownノートを、人とエージェントが共有する記憶として扱い、ローカルのセマンティック検索も提供します。Markdownファイルを正本とし、エージェントは許可されたスペースに限定された個別キーでアクセスでき、キーは失効できます。
主な機能
- 01エンドツーエンド暗号化Markdownノート
- 02エージェント別キーと範囲指定アクセス
- 03ローカルのハイブリッド検索
- 04デバイス間同期とバージョン復元
- 05MCPツールとコマンドライン操作
活用シーン
- 01エージェントによるプロジェクトノートの検索と更新
- 02タスク開始時のリンク付きノートの文脈構築
- 03日時付き日誌と追跡可能な事実の記録
- 04デバイス間の同期と過去版の復元
MCP 対応
ノートの検索、読み取り、書き込み、編集、日誌の追記、事実の記録、コンテキスト構築を行うMCPサーバーを提供します。エージェントは許可されたスペースに限定された個別キーで接続でき、キーは失効可能です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y vortex-notesVORTEX_NOTES_VAULTVault folder to serve. Optional: after `npx vortex-notes@latest pair` the paired vault is found automatically.VORTEX_NOTES_READONLYSet to 1 for search-and-read-only access.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
9掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| mode | enum | いいえ | 検索モード(デフォルトは hybrid)hybrid | keyword |
| limit | integer | いいえ | 結果の最大数(デフォルトは 8) |
| query | string | はい | 自然言語またはキーワードによるクエリ |
詳細
Vortex Notes
エンドツーエンド暗号化されたノート。AI エージェントのメモリーとしても使えます。
▶ アプリを開く · ライブデモ · npm · セルフホスト

ノートは、自分が所有するプレーンな .md ファイルです。検索しやすく、Git で管理でき、Obsidian と互換性があります。
Vortex Notes は、ノートアプリとエージェントメモリーストアがそれぞれ別々に担っていた次の2つの機能を、1か所にまとめます。
- サーバーは何も読み取れません。 12語のフレーズだけでアカウント全体を管理でき、キーはブラウザー内で導出されます。リレーに保存されるのは暗号文のみです。スキーマに平文フィールドは存在せず、サーバー上にリセットするものがないため、リセット用のパスワードもありません。
- エージェントは単なる同乗者ではなく、主体です。 エージェントは専用のキーを持ちます。キーはエージェントのマシン上で生成され、送信されることはありません。あなたが認証し、許可したスペースに範囲を限定でき、1つのコマンドで取り消せます。エージェントが行う編集にはすべて、エージェントの署名が付きます。
この組み合わせ、つまり エージェントが十分に活用できる かつ サーバーが内容を読み取れない という、これまで空白だった領域を埋めます。
アプリ
単なるビューアーではなく、本格的なアプリです。iPhone/Android/Mac にインストール可能(オフラインでも動作)で、WebSocket によるデバイス間の同期は1秒未満。Obsidian 風のライブプレビュー対応マークダウンエディターは、デスクトップでもスマートフォンでも快適に使えます。
- パスワードでロックできるノート — パスワード または 12語のフレーズでノートをロックできます。タイトルは表示されたまま、本文は第2の封印されたレイヤーとなり、ロックを解除するまで自分のデバイスでも読み取れません。
- バージョン履歴と復元 — 同期されたすべてのバージョンが保存されます。以前のバージョンを復元したり、パスワードを忘れる前にロックしたノートを復元したりできます。
- 公開ノート — ワンタップで、任意のノートをテーマ付きの公開ページとして公開できます。
- 12語のフレーズを変更 — 何も失わずにリカバリーフレーズを更新できます。サインイン済みのすべてのデバイスとエージェントはそのまま使い続けられ、古いフレーズは無効になります。
エージェントメモリー(MCP)
ファーストパーティの MCP サーバーは、Claude Code、OpenClaw、Cursor、その他すべての MCP クライアントに、CRUD のミラーではなく、タスクに適したツールを提供し、ヘッドレスでも動作します。
search_notes·read_note·write_note·edit_note(ピンポイント編集)append_daily— タイムスタンプ付きの日誌エントリーremember(fact, supersedes)— ライフサイクルを持つ事実。置き換えられた事実も表示され続け、取り消し線が引かれ、置き換えた事実を示します。監査可能で、ブラックボックスではありません。build_context(topic)— 関連度の高いノートを全文で取得し、さらに[[wikilinks]]を1段階たどります。エージェントは1回の呼び出しで、タスクに適したコンテキストを得られます。
検索はデバイス上で行われます。 BM25 と多言語埋め込みを組み合わせたハイブリッド検索です(SQLite FTS5 + sqlite-vec + 小型のローカルモデル)。API キーは不要で、データがデバイスの外に出ることもありません。英語で検索して、約100言語にわたるスペイン語のノートを見つけられます。
クイックスタート
アプリを試す
vortex-notes.pages.dev/app を開いてアカウントを作成し(12語を保存してください)、書き始めましょう。ホーム画面に追加するとインストールできます。これでセットアップは完了です。メールアドレスもパスワードも不要です。
エージェントを接続する
エージェントのマシンで:
npx -y vortex-notes@latest pair
6 文字のコードが表示されるので、アプリで承認します(ユーザーメニュー → エージェントとデバイス →
エージェントをペアリング)。エージェントには専用の、スコープが限定された取り消し可能なキーが付与され、リカバリーフレーズを目にすることはありません。pair を実行すると、そのマシンで見つかったすべてのハーネスが、ペアリング済みのボールトに固定されて設定されます。
- Claude Code:ユーザースコープなので、すべてのプロジェクトで利用できます
- Hermes:その後、
/reload-mcpを入力します - OpenCode:
~/.config/opencode/opencode.jsonに追加されます
エージェントに MCP がない場合でも、同じツールをシェルコマンドとして使えます。MCP を使わないエージェントをご覧ください。
SSH 経由でも動作します(スマートフォンから承認できます)。その他の stdio MCP クライアントでは、次のように設定します。
{ "command": "npx", "args": ["-y", "vortex-notes", "mcp"], "env": { "VORTEX_NOTES_VAULT": "<path pair printed>" } }。
読み取り専用にするには、--read-only を追加します。
Claude.ai、ChatGPT、その他のチャットアプリを接続する
ブラウザーやスマートフォンのチャットアプリから MCP サーバーにアクセスするには、URL が必要です。アプリで、ユーザーメニュー → エージェントとデバイス → チャットアプリを接続を選ぶと、クラウドエージェントが作成され、シークレットのコネクター URL が表示されます。
- Claude(ウェブ、デスクトップ、モバイル):Settings → Connectors → Add custom connector → URL を貼り付けます
- ChatGPT:Settings → Apps & Connectors → Advanced → Developer mode → Create → URL を貼り付けます(認証なし)
これは、ゼロ知識設計に対する唯一のオプトイン例外です。エージェントがアクセスできるノートを提供できるよう、リレーはそのエージェントのキーを保存時に暗号化して保持します。キーのスコープは限定でき、読み取り専用にもでき、取り消すと URL は無効になります。それ以外はすべてエンドツーエンドで暗号化されたままです。
CLI を使う
npm install -g vortex-notes
vortex-notes init # create a vault
vortex-notes search "that idea about pricing" # hybrid semantic + keyword
vortex-notes serve # local web viewer at 127.0.0.1:7303
MCP を使わないエージェント:同じツールをコマンドとして使う
すべての MCP ツールはコマンドとしても使えるため、シェルを実行できるエージェント(OpenClaw スタイルのハーネス、スクリプト、cron、git フック)でも同じように動作します。pair の後はコマンドがペアリング済みのボールトを自動的に見つけます。各コマンドは、読み取り前と書き込み後に同期します。
npm install -g vortex-notes@latest # once, so `vortex-notes` is on PATH
vortex-notes context "kiln" # top notes in full + linked notes
vortex-notes read projects/kiln.md
vortex-notes daily "fired the test tiles"
vortex-notes remember "Kiln max is cone 8" --topic kiln --supersedes "cone 10"
vortex-notes write "Glaze tests" "Three recipes…" --folder studio --tags glaze
vortex-notes edit clay.md --append "Order more in May."
vortex-notes recent --days 3 --json # --json on any command
write/edit/daily/remember では、テキストに - を指定すると stdin から読み込みます。エラー時は終了コード 1 を返します(--json を指定すると {"error": …})。全コマンドの一覧は vortex-notes --help で確認できます。これらを使ったすぐに利用できる OpenClaw スキルもあります。
.vortex/index.db のインデックスは破棄可能です。常に Markdown ファイルが信頼できる唯一の情報源です。VORTEX_NOTES_NO_SEMANTIC=1 を指定すると、埋め込みをスキップします(キーワード検索のみとなり、モデルはダウンロードされません)。
リレーをセルフホストする
ホスト型リレー vortex-notes.pages.dev は利便性のためのものであり、特定のサービスへの依存を強いるものではありません。独自のリレーを実行できます。
vortex-notes relay --port 7300 --db ~/relay.db # the ciphertext store, web app and chat connectors
vortex-notes setup --relay http://<host>:7300 # on each computer: your 12 words, then sync
npx -y vortex-notes@latest pair --relay http://<host>:7300 # an agent machine
http://<host>:7300/app を開くと、ブラウザーでアカウントを作成できます。
- データは
--dbファイルです(デフォルトは~/.vortex-notes/relay.db)。バックアップしてください。--db :memory:は使い捨てのテスト用です。 - チャットアプリ(Claude、ChatGPT):
- コネクターを作成する前に、
RELAY_CONNECTOR_KEKに 64 桁の 16 進数文字列(openssl rand -hex 32)を設定すると、キーが保存時に暗号化されます。 - リレーを HTTPS 経由で公開します(Caddy、nginx、またはトンネルを使用)。チャットアプリから
localhostにはアクセスできません。 - OAuth のディスカバリーは
Host/X-Forwarded-Hostヘッダーに従うため、リバースプロキシをそのまま利用できます。
- コネクターを作成する前に、
- その他の設定:
RELAY_QUOTA_MBは各アカウントのストレージ容量を制限します。RELAY_ADMIN_ACCOUNT(アカウント ID)を設定すると、ウェブアプリで管理者向け統計情報が有効になります。
- **ネイティブアプリ:**Mac アプリと iPhone アプリは、現時点ではホスト型リレーを使用します。CLI、エージェント、ウェブアプリは、どのリレーでも動作します。
暗号化の仕組み
12語の BIP39 フレーズから、アカウントの署名鍵と暗号化鍵が導出されます。各デバイスとエージェントはそれぞれランダムな鍵ペアを持ち、アカウント鍵によって認証される account → device → agent のチェーンを形成します。スペースのコンテンツ鍵は、読み取り可能な各プリンシパルに対して封印されます。リレーは、署名付きリクエストごとにスコープと読み取り専用の制約を適用しますが、保持するのは封印されたデータだけです。
悪意のあるリレーや召喚状を受けたリレーにできることは、古い暗号文や暗号文の一部を配信しないことです(シーケンス番号の欠落で検知できます)。できないことは、メモ、タイトル、鍵を読み取ること、編集を偽造すること、変更を気付かれないように行うことです。WebSocket 同期チャネルで送られるのは、コンテンツを含まない「スペースが変更されました」という通知だけです。これは呼び鈴であり、データそのものではありません。
幅広い利用状況を把握するため、リレーは IP から大まかな国(2文字のコード)をメモリ上で導出し、そのコードのみを保存します。IP 自体がディスクに書き込まれたり、ログに記録されたりすることはありません。
技術スタック
TypeScript、すべて MIT ライセンスです。暗号には @noble /
@scure、CodeMirror 6、
better-sqlite3、sqlite-vec、transformers.js、
marked を使用しています。リレーは小規模な Node サービスで、ウェブアプリは暗号処理をすべてクライアント側で行う単一の esbuild バンドルです。単体テストは48件、Playwright のブラウザテストスイートは10件です。
MIT © Vortex303
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。