Second Brain について
Second Brain は、Claude などの MCP 対応 AI クライアント向けのセルフホスト可能なセマンティックメモリレイヤーです。ユーザー自身の Cloudflare アカウント上で Worker として動作し、キーワードではなく意味に基づいて記憶を検索します。1つの Worker で個人用と共有チーム用の2つのレイヤーを扱えます。
主な機能
- 01保存した記憶のセマンティック検索
- 02メモ、決定事項、好みの保存
- 03個人用とチーム共有の2層構成
- 04記憶のバージョン履歴と取り消し
- 05Prompt Capsule による安定したコンテキスト出力
活用シーン
- 01Claude と Cursor の間でのプロジェクト背景と決定事項の共有
- 02チーム共有レイヤーでの決定事項と規約の管理
- 03ゲートウェイやカスタムエージェント向けの安定したコンテキスト提供
MCP 対応
本プロジェクトは Cloudflare Worker として動作し、remember、recall、brief、link、share などの記憶ツールと、get_prompt_capsule、list_projects などのツールを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
あなた専用のプライベートメモリ。チームと共有できるメモリ。お使いのあらゆる MCP 対応 AI ツールで利用できます。
新たに Team Edition が登場。プライベートな個人用レイヤーと共有チームレイヤーを、1 つの Worker で利用できます。
Claude、ChatGPT、Cursor、Codex など、お使いの AI ツール同士は、通常、コンテキストを共有しません。そのため、アプリを使うたびに同じプロジェクトや決定事項、好みを繰り返し伝えることになります。
Second Brain は、それらのツールに永続的なメモリシステムを提供します。ご自身の Cloudflare アカウント上で動作し、管理権限はお客様の手元にあり、完全に同じ言葉でなくても意味をもとに適切なコンテキストを取得します。
デスクトップアプリを使うと、最も簡単に始められます。ターミナルや Cloudflare のセットアップは不要で、約 2 分で Second Brain を構築し、AI ツールを接続できます。
Mac または Windows 版をダウンロード
できること
- 意味から思い出せます。 自然な言葉で質問すると、保存時とは異なる言葉を使っていても、適切なメモリを見つけられます。
- 複数のツールやデバイスで使えます。 すべてのクライアントが同じ Worker と通信するため、アプリ間でコピーや同期をする必要はありません。
- 管理権限を保てます。 ダッシュボードから、メモリの閲覧、編集、追記、関連付け、共有、エクスポート、完全な削除ができます。
- 役立つコンテキストを構築します。 自動分類、重複検出、関連付け、時間を考慮したランキング、任意の週次インサイトにより、メモリが増えても役立つ状態を保てます。
- いつもの作業場所から記録できます。 MCP クライアント、CLI、ブラウザー拡張機能、Obsidian、Notion、カレンダー、メール、iOS ショートカット、ウェブダッシュボードを利用できます。
- 次に重要なことに対応できます。 メモリに日付を追加し、期限超過や今後の予定を確認できます。インストール済みの PWA で、期日になるとリマインダーをプッシュ通知で送信することもできます。リマインダーとプッシュ通知のガイドをご覧ください。
- ご自身のアカウント内で管理できます。 メモリ、ベクトル、認証情報、アプリケーションのリソースは、ご自身の Cloudflare アカウント内に保存されます。
動作を見る
チームエディション
Second Brainは、あなた自身の記憶であり続けながら、チームの記憶にもなります。
- すべてのメンバーに、ほかの人が読めないパーソナルワークスペースと、チームから見える共有レイヤーが用意されます。
- 記憶はデフォルトで非公開で、意図的に共有した場合にのみ共有レイヤーに入ります。
- 共有時に移動するのは、コピーではなく正規の記憶です。作成者は引き続き表示され、編集、削除、共有解除ができるのは作成者または管理者のみです。
- 管理者は、メンバー、アクセス権、記録のデフォルト設定、インテグレーションを管理できますが、誰かのパーソナルワークスペースにアクセスすることはできません。
- アップグレード時に、既存のv2の記憶は所有者のプライベートな記憶になります。チームに自動で公開されるものはありません。
| レイヤー | 読み取り可能なユーザー | 編集または削除できるユーザー |
|---|---|---|
| パーソナル | あなたのみ | あなたのみ |
| 共有 | チームの全員 | 作成者または管理者 |
同じWorkerが個人利用とチーム利用の両方に対応しており、チーム用の別デプロイはありません。API、CLI、MCPツールでは、共有レイヤーは安定したワークスペース値companyで表されます。メンバー管理、記録ポリシー、共有、アップグレードについては、チームセットアップガイドをご覧ください。
v3.0.0の範囲:各brainが持つ共有チームは1つです。APIとMCPレイヤーにはオプションのteamパラメーターとlist_teamsツールが含まれているため、後から複数チームに対応する際も互換性を損なわずにリリースできます。ダッシュボードと管理者向けのフローでは、まだ複数のチームを作成したり切り替えたりすることはできません。CHANGELOG.mdをご覧ください。
仕組み
Second Brainは、D1、Vectorize、Workers AI、KVを基盤とするCloudflare Workerとして動作します。すべてのアプリとAIクライアントは、RESTまたはModel Context Protocol(MCP)を通じてこのWorkerに接続します。
- **記録:**接続された任意のクライアントから、決定事項、好み、プロジェクトの更新、メモ、情報源を保存します。
- **整理:**Second Brainが内容を分類し、重複や矛盾を確認して、関連付けを作成し、セマンティック検索用にインデックスを作成します。
- **想起:**自然言語で質問します。Second Brainが関連する記憶を取得し、有用な関連性をたどって、使用中のツールに情報源に裏付けられたコンテキストを返します。
Vectorizeを利用できない場合も、記録とキーワードによる想起は引き続き機能します。セマンティックインデックスが復元されるまで、記憶は引き続き利用できます。付属の埋め込みモデルは英語の読み取りに最適化されています。デスクトップアプリの「設定」から、brainを多言語読み取りに切り替えられます。
検索では、古い記憶の中にある場合でも、正確な名前、チケット番号、バージョン、あらゆる言語のフレーズといった、見つけにくい情報を見つけられるようになりました。検索は大幅に高速かつ低コストになり、brainが成長してもその状態が保たれるため、無料プランでも快適に利用できます。すべての記憶をスキャンする代わりに、関連性に応じて一致結果を順位付けする全文検索インデックスを使用しています。アップグレードは自動です。新規インストールではすぐにインデックスが使用され、既存のbrainでは夜間の実行を通じてインデックスが作成されるため、クライアントを更新する必要はありません。
メモリツール
| ツール | 機能 |
|---|---|
remember | アイデア、決定事項、好み、プロジェクトのコンテキストを保存します。事実がいつ真になったか、または真でなくなったかを任意で指定できます |
append | 既存のメモリにタイムスタンプ付きの更新を追加します |
update | 既存のメモリを置き換えます。いつ真でなくなったかを任意で指定できます |
recall | 正確な表現ではなく意味に基づいてメモリを検索します。過去の日付時点で何が真だったかも任意で指定できます |
brief | 期限が来た項目、未完了の約束、古くなったメモリ、保留中のインサイトを表示します |
resolve | 追跡中のタスク、日付、インサイト、または古くなった事実を1つ解決します |
digest | プロジェクトまたはタグの最新の既存自動要約を読み取ります |
history | メモリに記録された変更と、各変更前のテキストを読み取ります |
list_recent | 最近保存されたメモリを閲覧します |
list_teams | 所属している共有チームの名前と ID を一覧表示します。v3.0.0 ではチームは1つで、MCP クライアントによる将来の複数チーム対応に使用されます |
list_projects | 対象範囲内のプロジェクトを、表示名、説明、メモリ数とともに一覧表示します |
get_prompt_capsule | ゲートウェイが制御するプロンプトのプレフィックス用に、決定論的なコアまたはプロジェクトコンテキストの投影を読み取ります |
get | ID で指定したメモリを1つ読み取ります |
forget | メモリをゴミ箱に移動します(元に戻すと復元されます) |
undo | メモリに対する直近の変更を取り消すか、ゴミ箱から復元します |
set_status | メモリを canonical、draft、または deprecated に設定します |
link | 2つのメモリ間に明示的な関連付けを追加します |
unlink | 2つのメモリ間の関連付けを削除します |
connections | あるメモリに関連付けられたメモリを一覧表示します |
share | メモリを「個人」レイヤーと「共有」レイヤーの間で移動します |
メモリには、その内容が真だった期間の日付が保持されます。as_of を指定して recall すると、過去の日付時点で実際に真だったことを確認できます。新しい事実に置き換えられた事実は、誤りとしてマークされず、履歴として保持されます。
チームのブレインでは、レイヤーを明示的に選択する場合、メモリツールで personal または company の workspace を指定できます。company は共有チームレイヤーを示すワイヤー値です。workspace を指定しない場合、記録にはメンバーとチームのデフォルト設定が使われ、検索ではその人が閲覧を許可されているすべてが対象になります。
オプションの team(ワークスペース ID)と MCP の list_teams / GET /team/workspaces は、将来の複数チーム対応リリースに向けて実装されています。v3.0.0 では省略できます — 各ブレインには共有チームが1つあり、プライマリチームが自動的に使用されます。
プロジェクト
メモリは4つの軸で管理されます。workspace = 誰が閲覧できるか(personal / company / team)— テナント管理であり、変更はありません。project = 何についての内容か — 名前付きの管理対象コンテナーです。tags = 自由形式の分類であり、変更はありません。source = どこから来たかであり、変更はありません。list_projects を呼び出して対象範囲内のプロジェクトを確認し、remember に project を渡して関連するメモリをグループ化します。メモリは1つ以上のプロジェクトに属することができます。単なるトピックタグではなく、トピック、取り組み、またはコンテキストごとの整理にプロジェクトを使用してください。
CLI の例:
brain remember --workspace company "We ship on Thursdays"
brain recall --workspace company "when do we ship?"
brain recall --project website "what did we decide about hosting?"
プロンプトカプセル
プロンプトカプセルは、ゲートウェイやカスタムエージェントが、変化するユーザーリクエストの前に安定したコンテキストを配置できるようにする、決定論的な読み取り専用の投影です。
クエリに応じた recall を補完するものであり、すべてのメモリをすべてのプロンプトに注入するものではありません。
カプセルのエントリは、対象タグとスロットタグを1つずつ持つ通常の canonical メモリです。コアエントリには capsule:core、プロジェクトエントリには capsule:project:<project-slug> を使用します。スロットは次の固定順で出力されます。
- コア:
identity、preferences、constraints、principles - プロジェクト:
current-state、decisions、open-questions
スロットには capsule-slot:<slot> のタグを付け、各スロットの canonical エントリは最大1つにしてください。Draft と deprecated のエントリは無視されます。曖昧なスロットは、勝者を選ばずに省略されます。不正な行はスキップされます。レスポンスでは duplicate_slots と invalid_entries が報告され、complete は false になります。共有レイヤー上を含め、その他の有効なスロットは引き続き利用できます。
Capsule に含めるには、エントリに status:canonical を付ける必要があります。最も簡単な方法は、記憶またはキャプチャする時点でタグに status:canonical を含めることです(前後の空白を削除して保存され、分類器はそのまま保持します)。そうしない場合、定義は draft として始まり、set_status canonical が必要です。/classify-pending を含む分類処理では、Capsule は公開されません。保護されたメモリに矛盾する書き込みは、呼び出し元が canonical を指定していても draft に降格されます。エントリを Capsule から除外するには、ステータスを draft または deprecated に設定します。MCP update は省略可能な tags 配列を受け付けます。エントリ ID とコンテンツとともに、たとえば ["capsule:core", "capsule-slot:preferences"] のように、定義全体を置き換える値を渡してください。いずれかの Capsule 名前空間を指定すると、両方の名前空間が置き換えられます。スロットタグだけでは定義全体になりません。既存のタグを保持するには、tags を省略してください。MCP および REST のキャプチャ/更新では、それぞれ最大 128 文字のタグを 64 個まで指定できます。
共有レイヤーの復旧: メンバーは自身の共有定義を公開できますが、チームメイトのエントリは編集できません。報告された ID を確認し、作成者または管理者に update または set_status でスロットを変更するか、公開を解除するよう依頼してください。不完全な応答をチーム全体のポリシーと解釈しないでください。ダッシュボードでは管理用タグが非表示になるため、この復旧には MCP を使用してください。チームメイトのコンテンツを編集する権限が追加されることはありません。
認証済みのクライアントは、GET|HEAD /prompt-capsules/core、GET|HEAD /prompt-capsules/projects/<project-slug>、または get_prompt_capsule MCP ツールを使用できます。応答には、強力な ETag、プロンプト用に整形された正確な text の SHA-256、12,000 文字の上限に対するスロット単位の省略メタデータが含まれます。シリアライズの前に検証が行われます。共有定義のうち無効なもの、重複するもの、個別に大きすぎるものは除外され、報告されるため、後続の正常なスロットが表示される場合があります。結果は定義済みスロットの順序付きサブセットであり、必ずしも先頭からの連続部分とは限りません。残りの有効なスロットについて、累積予算を超えた時点で、そのスロットと後続のすべてのスロットが省略されます。JSON エスケープを含め、シリアライズ後の上限を超える単一のエントリが個人用 Capsule にある場合、それより前のスロットが収まる場合でも、理由 content-too-large を伴う 409 invalid_prompt_capsule が返されます。テキストの一部だけが返されることはありません。共有 Capsule では、そのエントリはスキップされて報告されるため、無関係なスロットが隠れることはありません。空の応答では populated: false と complete: false が設定されます。候補数が 200 件という上限を超えた場合は、引き続き 409 too_many_candidates が返されます。作成者または管理者が定義を減らす必要があります。タイムスタンプ、エントリ ID、ETag は text から除外されるため、無関係な変更によって再利用可能なプレフィックスが変わることはありません。プロバイダーのキャッシュキー、ブレークポイント、トークン予算、キャッシュヒットの測定は、引き続きゲートウェイ側の責任です。
Capsule の本文は、ワークスペースごと、および不変の D1 リビジョンごとに KV に最大 1 時間キャッシュされます。エントリトリガーは、Capsule タグ付きの挿入、ID/コンテンツ/タグの更新、ワークスペース間の移動、削除のすべてと同じ D1 トランザクション内で、そのリビジョンを進めます。復元またはインポート時に派生リビジョンの行がない場合、最初の読み取りで再利用可能なセンチネルを使わず、新しい不透明なリビジョンが作成されます。そのため、キャッシュされた読み取りごとに、ワークスペース全体をスキャンする代わりに、インデックス付きの D1 行を 1 つ参照します。KV の結果整合性により余分な再構築が発生する場合はありますが、編集前または共有前の本文が復活することはありません。古いキーは即座に参照できなくなり、1 時間以内に期限切れになります。伝播が安定した後は、TTL が長いため、変更がなく継続的に読み取られる対象への更新は通常、1 日あたり 24 回に制限されます。コールドフィルの競合やリビジョンの変更によって、試行回数が増えることがあります。通常のエントリへの書き込みでは、リビジョンは進みません。ゲートウェイは、リクエストごとではなく、セッションごとに 1 回 If-None-Match で再検証してください。
空のプロジェクト Capsule は通常どおり返されますが、KV には保存されません。プロジェクト ID は登録済みプロジェクトスラッグに対応し、projects レジストリを通じて列挙できます。一方、カプセルの読み取りは後方互換性を保ち、未登録の ID も通常どおり処理します。存在しない ID や入力を間違えた ID によって、KV への書き込みやキーが消費されることはありません。候補クエリで明示的に選択される、カプセルタグ付き行を対象とした部分インデックス (workspace_id, id) により、これらの読み取りはワークスペース内のすべての通常のメモリではなく、カプセル定義に限定されます。そのコストは通常のコーパスではなく、カプセルタグ付き行の数に応じて増加します。空のコア Capsule は、ワークスペースごとにコアが固定のターゲットであるため、キャッシュに保持されます。
D1 Time Travel の復元後は、トラフィックを再開する前に Worker を再デプロイしてください。復元時点がこのマイグレーションの一部より前の場合、スキーマ初期化によって prompt_capsule_revisions と 4 つの prompt_capsule_* トリガーが再作成されます。初期化では、インストール済みのカプセルインデックス定義とトリガー本体が比較されます。変更されたインデックス定義、および変更または欠落しているトリガーは、リビジョンのローテーションとともにアトミックに修復されるため、無効化処理が修復された後もキャッシュ結果が残ることはありません。NUL を含む ID、コンテンツ、タグドキュメントは、個人用では拒否され、共有用ではスキップして報告されます。SQLite の文字列が途中で切り詰められた状態で公開されることはありません。REST の capture/update/append と MCP の remember/update/append では、新たに NUL を含むコンテンツを拒否します。受信するタグにも NUL を含めることはできません。インポート済みまたはレガシーの行には、前述の読み取り時チェックが引き続き適用されます。
アップグレードに関する警告: capsule:* と capsule-slot:* は予約済みになりました。これらの名前を使用している既存の正規行は、プロンプト定義になったり、検証レポートに表示されたりする可能性があります。特に共有ワークスペースでゲートウェイを有効にする前に、これらのタグを確認してください。
はじめに
3 つのセットアップ方法はすべて、同じ Second Brain を Cloudflare アカウントにデプロイします。
1. デスクトップアプリ—推奨
最新リリースをダウンロードして開き、パスワードを設定して Cloudflare にサインインします。アプリが Worker とそのリソースをプロビジョニングし、AI クライアント、CLI、ブラウザー拡張機能、Obsidian、Notion の接続を案内します。
macOS ビルドは Apple による署名と公証を受けています。Windows のリリースビルドはコード署名されています。コード署名ポリシーをご覧ください。
2. Cloudflare にデプロイする
Cloudflare にデプロイを使用すると、リポジトリをクローンせずに Worker を自分でプロビジョニングできます。
AUTH_TOKEN は Second Brain のパスワードであり、すべてのクライアントから要求される同じ値です。次のいずれかを使用してください。
-
coffee-lover-2026のような覚えやすいフレーズ -
ランダムに生成したトークン:
openssl rand -base64 32
Cloudflare に設定フォームが表示されたら、次の値を入力してください。
| フィールド | 値 |
|---|---|
| AUTH_TOKEN | 作成したトークン |
| DIMENSION | 384 |
| METRIC | cosine |
デプロイ後、対応クライアントを次の場所に接続します。
https://YOUR-WORKER-URL/mcp
クライアントが対応している場合は OAuth を使用し、静的クライアントには Authorization: Bearer <token> ヘッダーを使用してください。URL はブラウザー履歴やログから漏洩する可能性があるため、クエリ文字列によるトークン認証は v3 で削除されました。
MCP URL に ?client=<name> を追加すると、ダッシュボードで各変更を行ったツールに名前を付けられます。
接続に問題がありますか?AI クライアントへの接続 → トラブルシューティングをご覧ください(Opera の警告、Cursor OAuth、Claude Code のツール表示)。
3. 手動デプロイ
コマンドラインを完全に制御したい開発者向けです。
npm install
npm run vectors:create
npm run deploy
前提条件、リソースの作成、デプロイの検証、トラブルシューティングについては、セットアップガイドに従ってください。その後、クライアントごとの手順についてはAI クライアントへの接続をご覧ください。
ローカルで開発する:
npm run dev # start the Worker locally
npm test # run the test suite (fast: the golden-set eval replays are opt-in)
npm run test:eval:full # the full eval (golden-set replays, workerd lock); run by hand before merging a ranking change
ローカル環境とリモート環境を組み合わせた Wrangler の設定や、トンネル経由でローカルのブレインを共有する方法については、ローカル開発をご覧ください。
デプロイを検証する(YOUR-WORKER-URL と YOUR-TOKEN を置き換えてください):
curl -X POST https://YOUR-WORKER-URL/capture \
-H "Authorization: Bearer YOUR-TOKEN" \
-H "Content-Type: application/json" \
-d '{"content":"second brain is working","source":"test"}'
成功すると、{"ok":true,"id":"..."} のような応答が返ります。
どこからでも記録
- AI クライアント: Claude、ChatGPT、Cursor、Codex、その他の MCP 対応クライアント
- CLI:
second-brain-cf-cli - ブラウザー: Chrome 拡張機能または
integrations/bookmarklet.js - ノート: Second Brain Sync for Obsidianと Notion
- カレンダーとメール: Google、Outlook、iCloud、Gmail との連携
- iPhone と iPad:
integrations/ios-shortcuts/にある、音声、テキスト、共有シートのショートカット - Claude Code: 開始時にプロジェクトのコンテキストを呼び出し、終了時に会話を保存するセッションフック —
integrations/claude-code-hooks/ - Codex CLI: セッション開始時にコンテキストを呼び出し、セッション終了時に記録します(
integrations/codex-cli-hooks/) - Cursor: セッション開始時にコンテキストを呼び出し、セッション終了時に記録します。確実に呼び出すには、MCP の
recallツールと組み合わせてください(integrations/cursor-hooks/) - VS Code Copilot(ローカルハーネス): セッション開始時にコンテキストを呼び出します(
integrations/vscode-copilot-hooks/) - Gemini CLI: セッション開始時にコンテキストを呼び出します(
integrations/gemini-cli-hooks/) - ダッシュボード: 組み込みのウェブインターフェースから、記録、呼び出し、閲覧、グラフ表示、共有、バックアップ、復元を行えます
現時点では未対応のため、後日再検討します:Windsurf(セッション開始時のコンテキスト注入イベントが文書化されておらず、レスポンス後のフックのみ);OpenCode と Oh My Pi(標準入出力スクリプトではなく、プラグイン/イベントコールバック API を使用するため、上記のようなアダプターではなく、独自の連携方式が必要です)。
設定と使用方法については、どこからでも記録をご覧ください。
v3 の新機能
v3.4 では Projects が追加されました。Projects は、メモリの対象を示す、名前付きのワークスペースに紐づいたコンテナです。コードベース、クライアント、目標ごとにメモリをグループ化できます。移行せずにエイリアスを使って、既存の何年分ものタグを遡って取り込めます。新しいダッシュボードタブからすべてを管理でき、エージェントは list_projects と project パラメーターを通じてプロジェクトを見つけて使用できます。夜間ダイジェスト、プロンプトカプセル、エクスポート、Claude Code フックもすべてプロジェクトに対応しています。
Team Edition では、Personal と Shared のメモリレイヤー、個人ごとの認証、共有と帰属表示、作成者ロック、チーム管理、記録ポリシー、チーム対応の呼び出しとグラフ機能、そしてデフォルトで非公開となる v2 からのアップグレードが追加されます。
さらに、REST、MCP、連携機能、インポート、インサイト、グラフの走査、ベクトル検索全体でテナント分離を強化し、ユニットテスト、統合テスト、UI テストの範囲を拡大しました。
リリースノートと以前のバージョンについては、GitHub Releasesをご覧ください。
ドキュメント
- Wiki ホーム:ドキュメントの目次とクイックリンク
- セットアップガイド:デスクトップ、ワンクリック、手動デプロイ
- チームのセットアップ:チームモード、メンバーアクセス、共有ルール、キャプチャのデフォルト設定、メンバーの離脱処理
- AI クライアントへの接続:ChatGPT、Claude、Claude Code、Codex、Cursor、その他の MCP クライアント
- Cursor の手順:自動検索と記憶のための MCP セットアップと Cursor Rules
- どこからでもキャプチャ:CLI、ブラウザー拡張機能、ブックマークレット、iOS ショートカット、Notion
- Notion 連携:Notion への接続、同期、トラブルシューティング
- Web UI:ダッシュボードとモバイルインターフェース
- 仕組み:検索、ランキング、分類、重複、アーキテクチャ
- API リファレンス:REST エンドポイントと MCP ツール
- アップグレード方法:既存のデプロイをアップグレード
- よくある質問:設計、プライバシー、コスト、よくある質問
- Obsidian プラグイン:インストール、設定、同期モード
- ローカル開発:Worker をローカルで実行し、テスト用に共有
ローカル UX QA ハーネス
UI の変更やアプリ全体のウォークスルーのために、Cloudflare アカウントを一切使わずに、実際の Worker とダッシュボードをオフラインで実行します。wrangler dev だけでは実現できません。ローカル開発でも、実際の Workers AI バインディングには Cloudflare へのログインが必要だからです。このハーネスではログインを求められることはありません。
npm run dev:local # boots the Worker + dashboard at http://localhost:8788
npm run ux:seed -- solo # seeds a 3.7.0-shaped brain and boots the real 4.0 upgrade against it
npm run ux:seed -- team # the same, plus a teammate, for the shared-history rows
UX_BRAIN=3.7-solo npm run dev:local # run against a seeded brain instead of an empty one
npm run ux:shot -- --name=home --caption="Dashboard home" # one screenshot, on demand (see below)
npm run ux:walkthroughs # the scripted dashboard journeys (map section 6.2), with screenshots
npm run ux:chat # scripted MCP calls per AI_Instructions file (map section 6.4)
Cloudflare アカウントの代わりに使用するものは、実際のローカル D1 と KV(wrangler の getPlatformProxy 経由)、実際の決定論的なローカル埋め込み(Workers AI が提供するものと同じ BGE の重みを、@huggingface/transformers 経由でプロセス内で実行する、評価ハーネス独自のローカルモデルランタイム)、実際のコサイン類似度 Vectorize ダブル、そして実際のローカルモデルでは現実的に代替できない少数の LLM 形式の呼び出し(分類、マージの判断、ダイジェストの合成)に対する固定済みの定型応答です。それ以外のダッシュボード、REST ルート、MCP ツールは、すべて本物の Worker コードです。
npm run ux:shot は、指定した画面または状態のスクリーンショットを必要に応じて 1 枚撮影します(どのレーンでも変更前後の比較に使用できます)。例:
npm run ux:shot -- --name=trash-view --caption="New Trash view" --path=/#trash --viewport=mobile --locale=it
スクリーンショットがこのリポジトリに保存されることはありません。public/ の外にある docs/superpowers/screenshots/v4/harness/<run-id>/ に書き込まれます。この場所は、プロジェクトの docs/* gitignore ルールによってすでに除外されており、各画像の説明を記した index.md も同じ場所に保存されます。
npm run ux:walkthroughs のジャーニーが、現在のブランチではまだ実装されていない機能(ダッシュボードのタイムライン、ゴミ箱ビュー、設定パネルなど)に到達した場合、失敗ではなく、具体的に不足している UX 項目とともに PENDING を報告します。同じスクリプトは、その機能がリリースされた時点で成功に変わります。これらは npm test や CI のデフォルトジョブでは実行されません。ローカルの Chrome または Chromium(GitHub の ubuntu-latest ランナーとほとんどの Linux デスクトップにはすでにインストールされています)が必要で、ブラウザーとローカル D1 の起動に実際の時間がかかるため、専用の npm スクリプトで実行します。
テクノロジーとプライバシー
Second Brain は、Cloudflare Workers、D1 SQLite、Vectorize、Workers AI、KV、Model Context Protocol、TypeScript を使用しています。個人規模であれば、Cloudflare の無料枠内で動作します。
アプリケーションのリソースとデータは、お客様の Cloudflare アカウント内に保存されます。プロジェクトのメンテナーがお客様のメモリーや認証情報を見ることはできません。連携機能は、お客様が接続先として選択したサービスとのみ通信します。
コード署名ポリシー
Second Brain デスクトップアプリの Windows リリースビルドは、コード署名されています。
無料のコード署名は、SignPath.io が提供し、証明書は SignPath Foundation が発行しています。
| 役割 | メンバー |
|---|---|
| 作成者 | Rahil P (@rahilp) |
| レビュアー | Rahil P (@rahilp) |
| 承認者 | Rahil P (@rahilp) |
リリースバイナリは、GitHub Actions によってこのリポジトリからビルドされます。署名付きリリースを公開する前に、すべての署名リクエストを確認し、手動で承認します。
プライバシーに関する声明: このプログラムは、ユーザーまたはインストールや運用を行う人が明示的に要求しない限り、他のネットワーク接続システムに情報を転送しません。セットアップ中、デスクトップアプリは Cloudflare と通信して、ユーザーのアカウントにリソースを作成します。その後は、そのデプロイ先およびユーザーが明示的に接続した連携機能と通信します。メモリーや認証情報がプロジェクトのメンテナーに送信されることはありません。
スターの推移
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
