User-owned personal context database as an MCP server. Each AI tool connects with permission — reversing vendor lock-in.
Note
v0.x は開発初期段階です。 APIやデータ構造に破壊的変更が入る可能性があります。
データはすべてローカル(~/.watashi-db/default.db)に保存され、外部送信は一切ありません。
わたしDB は、ユーザーが自分の情報(好み・スキル・価値観・意思決定)を所有し、各社のAIツールがMCP(Model Context Protocol)を通じて接続・利用する「パーソナルコンテキストデータベース」です。
従来、AIツールごとにユーザー情報がサイロ化していた問題を解決し、ベンダーロックインの逆転 を実現します。
- SPO三つ組モデル: Subject-Predicate-Object 形式でユーザー知識を構造的に記録
- MCP準拠: Model Context Protocol サーバーとして動作、あらゆるMCPクライアントから接続可能
- SQLite + FTS5: ローカルファイルDB、全文検索対応、ゼロ依存のインフラ
- 変更履歴保持: Claimの更新は全て履歴に記録、削除ではなく撤回(retract)モデル
- 監査ログ: 全操作に「誰が・何を・なぜ」を自動記録
- Provenance自動付与: 接続元AIの情報をサーバー側で自動記録(自己申告に依存しない)
- L2推論基盤: Claim間の関係(推論グラフ)、構造化根拠参照、検証ログ
- マルチデバイス同期: Google Drive等を介したスナップショット同期、複数PCで同一データを共有可能
- Node.js >= 18
- MCP対応のAIクライアント(Claude Code, Codex CLI, Claude Desktop 等)
お使いの MCP クライアントに watashi-db を登録します:
# Claude Code
claude mcp add watashi-db npx -- -y watashi-db@latest
# Codex CLI
codex mcp add watashi-db -- npx -y watashi-db@latestClaude Desktop の場合は claude_desktop_config.json に追加:
{
"mcpServers": {
"watashi-db": {
"command": "npx",
"args": ["-y", "watashi-db@latest"]
}
}
}Tip
@latest をつけるとクライアント起動時に常に最新版が使われます。
npx watashi-db setupClaude Code を再起動すれば使えます。
- Hook: プロンプト送信時に設計判断・好み・作業の節目を自動記録するリマインダー
- @nolog: プロンプトの先頭に
@nologを付けると、そのメッセージの内容は記録されません - /recall: 過去の判断・好み・経験を検索するコマンド
Note
ステップ 2 は現在 Claude Code 専用です。Codex CLI は Hook と Skill に未対応のため、 watashi-db への記録・活用は server instructions 経由の LLM 任せとなります。 背景: #31, #32
リポジトリの cowork-plugin/ ディレクトリに Cowork 用プラグインが含まれています。
プラグインには以下のスキルが含まれます:
| スキル | 説明 |
|---|---|
/session-start |
セッション開始時にプロファイルとコンテキストを自動読み込み |
/remember <内容> |
ユーザーの好み・スキル・知識をわたしDBに記録 |
/recall [トピック] |
過去の判断・好み・経験を watashi-db から検索 |
/reflect [トピック] |
エピソード・意思決定の振り返りとパターン分析 |
MCP 設定で watashi-db@latest を指定していれば、Claude の再起動で自動的に最新版が使われます。手動でグローバルインストールしている場合は:
npm install -g watashi-db@latest~/.watashi-db/config.json を作成すると、以下の機能が使えます:
- バックアップ:
sync.destinationを設定すると、書き込み時に自動でスナップショットをバックアップ - マルチデバイス同期: Google Drive 等のクラウドストレージを介して複数 PC でデータを共有
- マルチStore: プロジェクト別に DB を分離、
watashi_promoteでデータを移動
{
"stores": {
"default": {
"type": "local",
"path": "~/.watashi-db/default.db",
"sync": {
"enabled": true,
"destination": "G:/マイドライブ/watashi-db",
"generations": 3
}
}
},
"contexts": {
"default": {
"stores": { "default": "read-write" },
"default_store": "default"
}
},
"default_context": "default"
}詳細なセットアップ手順・全設定項目のリファレンスについては config.json 設定ガイド を参照してください。
AIとの会話中に自然に情報が登録されます。
# Claimとして登録(SPO三つ組)
watashi_store_claim:
subject: "user"
predicate: "prefers"
object: "日本語コメント"
category: "preference"
# 好みの簡易登録
watashi_store_preference:
preference: "ダークモードのエディタ"
# プロファイル全体像(セッション開始時に推奨)
watashi_get_profile_summary
# トピック関連のコンテキスト検索
watashi_query_context:
topic: "TypeScript"
# 条件検索
watashi_search_claims:
category: "skill"
status: "active"
watashi_log_decision:
title: "MIT LICENSEを採用"
description: "オープンソースライセンスの選定"
reasoning: "最も自由度が高く、個人プロジェクトに適切"
alternatives: ["Apache 2.0", "GPL v3"]
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Claude Code │ │ Claude Desktop │ │ Other AI Tool │
│ (MCP Client) │ │ (MCP Client) │ │ (MCP Client) │
└────────┬────────┘ └────────┬────────┘ └────────┬────────┘
│ MCP │ MCP │ MCP
└──────────────────────┼──────────────────────┘
│
┌───────────▼───────────┐
│ watashi-db │
│ (MCP Server) │
│ │
│ ┌─────────────────┐ │
│ │ Tools (25) │ │
│ │ Resources (5) │ │
│ │ Prompts (2) │ │
│ └────────┬────────┘ │
│ │ │
│ ┌────────▼────────┐ │
│ │ SQLite + FTS5 │ │
│ │ (~/.watashi-db │ │
│ │ /default.db) │ │
│ └─────────────────┘ │
└───────────────────────┘
| テーブル | 説明 |
|---|---|
claims |
SPO三つ組の知識断片(主語・述語・目的語) |
claims_fts |
FTS5全文検索インデックス |
claim_history |
Claimの変更履歴 |
claim_relations |
Claim間の推論関係(7種: supports, contradicts, derives, ...) |
claim_evidence |
構造化根拠参照(7種: url, file, claim, ...) |
claim_checks |
検証ログ(7種 x 4結果) |
decisions |
意思決定ログ |
decisions_fts |
Decisions用FTS5全文検索インデックス |
episodes |
思考パターン・意思決定エピソード(文脈→問題→欲求→決定→結果→原則) |
episodes_fts |
Episodes用FTS5全文検索インデックス |
theories |
仮説・パターン認識の構造的記録(V9追加) |
theories_fts |
Theories用FTS5全文検索インデックス |
audit_log |
全操作の監査ログ |
| ツール | 説明 |
|---|---|
watashi_store_claim |
SPO三つ組でユーザー知識を記録 |
watashi_update_claim |
既存Claimを更新(履歴付き) |
watashi_retract_claim |
Claimを撤回(削除ではない) |
watashi_supersede_claim |
Claimを新しいClaimで置き換え |
watashi_get_claim |
Claim詳細 + 変更履歴を取得 |
watashi_search_claims |
条件検索(カテゴリ・スコープ・テキスト) |
watashi_query_context |
FTS5全文検索でコンテキスト取得 |
watashi_log_decision |
意思決定を構造的に記録 |
watashi_list_decisions |
意思決定ログの検索・一覧 |
watashi_update_decision_status |
意思決定のステータス遷移 |
watashi_get_profile_summary |
プロファイル全体像をMarkdownで取得 |
watashi_store_preference |
好みの簡易登録ショートカット |
watashi_log_episode |
思考パターン・意思決定エピソードを構造的に記録 |
watashi_list_episodes |
エピソードの検索・一覧(FTS5・タグ対応) |
watashi_get_episode |
エピソード詳細を取得 |
watashi_store_theory |
仮説・パターン認識を構造的に記録 |
watashi_get_theory |
Theory詳細を取得 |
watashi_list_theories |
Theoryの検索・一覧 |
watashi_get_context_pack |
トークン予算を指定した効率的なコンテキスト取得 |
watashi_list_stores |
設定されたStore一覧と現在のアクティブコンテキストを表示 |
watashi_switch_context |
アクティブコンテキストを切り替え |
watashi_sync_status |
各DBの同期状態を表示・手動同期をトリガー |
watashi_promote |
レコードを元StoreからターゲットStoreへ昇格(移動) |
watashi_backup_db |
SQLiteファイルのバックアップ |
watashi_export_json |
全データのJSONエクスポート |
わたしDBは L1/L2言語構想 から派生したプロジェクトです。
- L2(AI内部思考言語): AIが内部で使う構造化された中間表現
- L1(人間向け監査言語): 人間が読める形でAIの思考を説明する言語
わたしDBはまず「パーソナルコンテキストストア」としての完成を目指し、将来的にL2推論基盤としての発展を構想しています。
# ビルド
npm run build
# テスト
npm test
# 開発モード(ファイル監視)
npm run dev~/.watashi-db/default.db
Note
旧バージョンで watashi.db を使用していた場合、サーバー起動時に自動で default.db にリネームされます。