Exbrain Banner

Exbrain — 自律成長する外付けのAI脳

記憶し、整理し、振り返り、自ら進化するAIナレッジシステム
Claude Code × Obsidian × SOUL/MEMORY/DREAMS

🇺🇸 English · Karpathy's LLM Wiki にインスパイア

## Exbrainとは? Claude Codeの中に隠れている記憶(Memory)、設定ファイル(CLAUDE.md)、スキル(Skills)をObsidianで可視化。**Dreaming**レイヤーが自動で毎日振り返り、パターンを検出し、成長の軌跡を記録する。 PCを閉じても動く。iPhoneでも見える。人間はObsidianを開いて読むだけ。 ## はじめに — 全体像を理解する Claude CodeやObsidianに馴染みがない方のために、全体像を図で解説します。 ``` ┌──────────────────────────────────────────────────────────────┐ │ あなた(人間) │ │ │ │ Claude Codeで作業 Xでブックマーク SlackにURL送信 │ │ ↓ ↓ ↓ │ └─────────┬──────────────────────┬──────────────────┬──────────┘ │ │ │ ▼ ▼ ▼ ┌─────────────────┐ ┌───────────────────┐ ┌──────────────────┐ │ Claude Code │ │ Cronジョブ(自動) │ │ 常駐エージェント │ │ (ローカルCLI) │ │ 4時間おき │ │ (例: OpenClaw) │ │ │ │ │ │ │ │ • /clip スキル │ │ • Xブックマーク │ │ • Slack監視 │ │ • Hooks(自動) │ │ • xurl API │ │ • URL検知 │ │ • セッション記録│ │ │ │ • firecrawl │ └────────┬────────┘ └────────┬──────────┘ └────────┬─────────┘ │ │ │ └────────────────────┼──────────────────────┘ │ ▼ ┌──────────────────────┐ │ ~/vault/ (Git) │ │ │ │ SOUL.md MEMORY.md │ │ DREAMS.md │ │ daily/ clips/ │ │ clients/ insights/ │ └──────────┬───────────┘ │ ┌────────┼────────┐ │ │ │ ▼ ▼ ▼ GitHub iCloud Obsidian (バックアップ) (同期) (Mac+iPhone) ``` ### 各コンポーネントの役割 | コンポーネント | 何か | Exbrainでの役割 | |-------------|------|----------------| | **Claude Code** | AnthropicのAIコーディングCLI ([公式](https://docs.anthropic.com/en/docs/claude-code)) | メインのAIアシスタント。`/clip`等のスキル実行、vault書き込み、Hook管理 | | **Obsidian** | 無料のMarkdownノートアプリ ([obsidian.md](https://obsidian.md)) | 全てを**読む**場所。vault = .mdファイルのフォルダ。Mac/iPhone/Android対応 | | **常駐エージェント** | バックグラウンドAI (例: [OpenClaw](https://openclaw.com)) | Slack/Discordを24時間監視。Claude Codeを閉じてもcronジョブ実行 | | **Cloud Scheduled Tasks** | Claude Code内蔵のスケジューラ ([公式](https://docs.anthropic.com/en/docs/claude-code/scheduled-tasks)) | PC不要で朝夕のDreamingを実行。MEMORY.mdとDREAMS.mdを自動更新 | | **xurl** | X API CLIツール | Xのツイートやブックマークを取得 | | **Firecrawl** | Webスクレイピング CLI | URLをクリーンなMarkdownに変換 | | **iCloud** | Apple のクラウド同期 | MacとiPhone間でvaultを自動同期 | | **GitHub** | コードホスティング | vaultのバックアップ + バージョン管理 | ### データフロー:クリップの仕組み ``` 面白い記事を見つけた! │ ▼ ┌─ 方法を選ぶ ────────────────────────────────────────┐ │ │ │ A) /clip URL B) Slack DMに C) Xで │ │ Claude Codeで URL送信 ブクマ │ │ │ │ するだけ │ │ ▼ ▼ │ │ │ Claude Code エージェントが (4時間後) │ │ 即座に実行 リアルタイム検知 │ │ └──────┬───────────────────┬───────────────────┬──────┘ │ │ │ └───────────────────┼───────────────────┘ │ ▼ ┌─────────────────┐ │ AI が処理 │ │ │ │ 1. 内容を取得 │ │ 2. 要約を生成 │ │ 3. タグ付け │ │ 4. .md保存 │ └────────┬────────┘ │ ▼ vault/clips/x/2026-04-08_slug.md │ ┌─────────┼─────────┐ │ │ │ ▼ ▼ ▼ _index.md daily note git push 更新 更新 GitHubへ │ ▼ iCloud 同期 │ ▼ 📱 iPhoneで読める ``` ### システム相関図 ``` ┌─────────────────────────────────────────────────────────┐ │ │ │ ┌──────────────┐ ┌──────────────┐ │ │ │ Claude Code │────────▶│ ~/vault/ │◀──────┐ │ │ │ (CLIエージェント)│ 書込 │ (Obsidian) │ │ │ │ │ │ │ │ 書込 │ │ │ │ スキル: │ │ SOUL.md │ │ │ │ │ /clip │ │ MEMORY.md │ ┌────┴────┐ │ │ │ /auto-min │ │ DREAMS.md │ │ Cloud │ │ │ │ 30+個 │ │ daily/ │ │Schedule │ │ │ └──────────────┘ │ clips/ │ │ Tasks │ │ │ │ clients/ │ │ │ │ │ ┌──────────────┐ │ meetings/ │ │ 朝 07:00│ │ │ │ 常駐エージェント│────────▶│ insights/ │ │ 夕 18:30│ │ │ │ (OpenClaw) │ 書込 │ │ └─────────┘ │ │ │ │ └──────┬───────┘ │ │ │ Cronジョブ: │ git push/pull │ │ │ Xブクマ同期 │ │ │ │ │ Slack DM │ ┌──────▼───────┐ │ │ │ 日次レポート│ │ GitHub │ │ │ └──────────────┘ │ (private) │ │ │ └──────────────┘ │ │ │ │ ─── 全て ~/vault/ で繋がっている ─── │ │ │ └─────────────────────────────────────────────────────────┘ ``` ## SOUL / MEMORY / DREAMS Exbrainの核心は、Vault直下の3つのファイル: ``` ~/vault/ ├── SOUL.md ← 自分は誰か(アイデンティティ・価値観・境界線) ├── MEMORY.md ← 何を経験したか(決定・パターン・学び) └── DREAMS.md ← どこに向かうか(洞察・成長・未解決の問い) ``` ### SOUL.md — アイデンティティ 自分が誰で、AIにどう振る舞ってほしいかを定義。Claude CodeのCLAUDE.mdと外部エージェントの性格設定を統合。 ```markdown ## Identity - 名前、役割、会社 ## Values - 「完璧主義より実験主義」 - 「APIファースト、手作業は排除」 ## Boundaries(絶対遵守) - 「メール送信禁止 — 下書きのみ」 - 「Slack確認なしで送信禁止」 ``` ### MEMORY.md — 経験の蓄積 AIが学んだこと全てのダイジェスト。Claude Codeの Memory(`.claude/projects/*/memory/`)を自動同期 + Cloud Scheduled Tasksが朝夕に追記。 ```markdown ## Recent - [2026-04-07] Obsidian Vault構築、SOUL/MEMORY/DREAMS実装 ## Patterns - 金曜は会議密度が高い(3週連続) - メール返信が午後に集中 ## CC Memory サマリー(35件) - feedback/21件: 「メール送信禁止」「GAS編集後は毎回commit」 - reference/7件: API情報、ツール設定 ``` ### DREAMS.md — 内省と成長 Dreaming(朝夕+週次)が自動更新。時間とともに浮かび上がるパターンを記録。 ```markdown ## Current Insights - 月曜は会議10件超が常態化(3週連続) ## Emerging Patterns | パターン | 回数 | 傾向 | |---------|------|------| | ツール→スキル→自動化サイクル | 10+ | 一貫 | ## Growth Trajectory - Q1: スキル26個構築、cronジョブ32本稼働 ``` ## Clips — ナレッジクリッピング ツイートや記事を自動でvaultに蓄積。Karpathyの「知識が複利で増える」パターンで、読んだもの全てがObsidianで検索可能に。 ### 3つの取り込み方法 | 方法 | トリガー | 最適な場面 | |------|---------|-----------| | **`/clip` スキル** | Claude Codeで `/clip ` | デスクワーク中、高品質な要約 | | **Slack DM** | エージェントのDMにURL投稿 | 外出先(スマホ)、即座にキャプチャ | | **Xブックマーク自動同期** | 4時間おきに自動 | パッシブ — Xでブックマークするだけ | ### 1. `/clip` — Claude Codeで手動クリップ ``` /clip https://x.com/karpathy/status/1234567890 /clip https://example.com/great-article /clip https://url1.com https://url2.com # 複数URL対応 ``` X tweet vs 記事を自動判定。内容取得→要約・タグ生成→`clips/`保存→daily note追記→git push。 ### 2. Slack DM — スマホからクリップ エージェントのSlack DMにURLを送るだけ: ``` https://example.com/interesting-article ``` エージェントがURLを検知→スクレイピング→要約→`clips/`保存→スレッド返信: ``` 📎 クリップしました! 📄 LLMが全てを変える方法 🏷️ #ai #llm #future 📁 vault/clips/articles/2026-04-08_llm-change-everything.md ``` **セットアップ**: 常時稼働エージェント([OpenClaw](https://openclaw.com)等)+ Slack Socket Modeが必要。詳細は[Slack Clipセットアップ](#slack-clipセットアップ)参照。 ### 3. Xブックマーク自動同期 普段どおりXでツイートをブックマークするだけ。cronジョブが自動でvaultに同期。 **デフォルトスケジュール**: 4時間おき(8:00, 12:00, 16:00, 20:00) **必要なもの**: [xurl](https://github.com/twitterdev/xurl) CLI + OAuth2認証 ```bash # 手動テスト xurl bookmarks -n 5 --auth oauth2 ``` ### クリップファイルのフォーマット ```markdown --- date: 2026-04-08 type: clip source: x | article url: https://... author: "@username" tags: [ai, claude-code, agent] via: slack | cli | cron --- ## 要約 (3-5行の日本語要約) ## キーポイント - ポイント1 - ポイント2 ## 原文メモ > 重要な引用 ## 関連 [[insights/...]] | [[clips/...]] ``` ### daily noteへの自動連携 クリップするたびに、その日のdaily noteに自動追記: ```markdown ## Clips - [[clips/x/2026-04-08_sam-altman-social-contract]] — Sam Altmanのsocial contract - [[clips/articles/2026-04-08_karpathy-llm-wiki]] — Karpathy LLM Wikiパターン ``` ### Dataviewクエリ Obsidianでタグ別にクリップを閲覧: ```dataview TABLE rows.date, rows.source, rows.author FROM "clips" WHERE type = "clip" FLATTEN tags as tag GROUP BY tag SORT rows.date DESC ``` ### Slack Clipセットアップ Slack DM → clip を有効にする手順: 1. **スキルファイル作成** — エージェントのワークスペースに: ``` workspace/skills/slack-clip/ ├── SKILL.md ← スキル概要 ├── BEHAVIOR.md ← 検知ルール + 処理フロー └── processed-clips.json ← 重複防止トラッキング ``` 2. **自動アクション追加** — エージェントの設定(`AGENTS.md`等)に: ```markdown ### URL投稿 → Vaultクリップ DMにURLを含むメッセージが来たら自動でvault/clips/に保存。 検知: https:// を含む(転送メッセージ・Slack内部URL・画像直リンクは除外) 処理: URL判定 → 取得 → 要約・タグ → vault保存 → git push → スレッド返信 ``` 3. **ツール確認** — エージェントが以下にアクセスできること: - `xurl`(X API CLI)+ OAuth2認証 - `firecrawl`(Webスクレイピング CLI) - vault リポジトリへのgitアクセス ### Xブックマークcronセットアップ エージェントスケジューラにcronジョブを追加: ```json { "name": "clip-x-bookmarks", "schedule": "0 8-23/4 * * *", "message": "xurl bookmarks -n 20 --auth oauth2 でブックマーク取得、vault/clips/x/ と重複チェック、新規を要約して保存、_index.md更新、git push" } ``` ## アーキテクチャ ``` ┌─ Layer 1: Cloud Scheduled Tasks(PC不要)────────────────┐ │ │ │ 07:00 vault-daily-morning │ │ ├── SOUL.md を読む(ユーザー理解) │ │ ├── MEMORY.md を読む(直近の文脈) │ │ ├── Google Calendar → 今日の予定 │ │ ├── Slack → 昨夜のハイライト │ │ ├── Gmail → 重要な未読メール │ │ ├── Morning Dreaming(昨日の振り返り→今日の注目) │ │ ├── MEMORY.md の Recent を更新 │ │ └── git push │ │ │ │ 18:30 vault-daily-evening │ │ ├── SOUL.md + MEMORY.md + DREAMS.md を読む │ │ ├── Evening Dreaming(今日+7日間→パターン検出) │ │ ├── MEMORY.md + DREAMS.md を更新 │ │ ├── 日曜: 週次Dreaming + Lint + Slack通知 │ │ └── git push │ │ │ └────────────────────────┬──────────────────────────────────┘ │ push ▼ ┌─ GitHub(private repo)──────────────────────────────────┐ │ vault/の全ファイル │ └────────────────────────┬──────────────────────────────────┘ │ pull(launchd 毎時) ▼ ┌─ Layer 2: ローカル自動化 ────────────────────────────────┐ │ │ │ Claude Code Hooks (async: true) │ │ ├── PostToolUse → ファイル変更をログ記録 │ │ └── Stop → セッション終了をdaily note + MEMORY.mdに記録 │ │ │ │ 外部エージェント Cron(PCオン時の追加データ) │ │ ├── Salesforce/Stripe/HERP等の専門データ追記 │ │ └── PCオフ時はスキップ(Layer 1だけで完結) │ │ │ └────────────────────────┬──────────────────────────────────┘ │ iCloud同期 ▼ Obsidian(Mac + iPhone) ``` ## ハイブリッド設計 — 3つの性格 ``` vault/ ├── system/, skills/, memory/ │ → 静的ミラー(ダッシュボード) │ → Claude Codeの中身を自動同期、読むだけ │ → ヘッダー付き │ ├── daily/ │ → 自動ログ + 手書き日記 │ → Calendar + Slack + Gmail + AI Analysis + Dreaming │ → PC閉じてても Cloud Scheduled Tasks が動く │ └── meetings/, clients/, insights/ → Karpathyパターン(知識が複利で増える) → 議事録を処理するたびに顧客ページに自動蓄積 → 12回の議事録を読み返す必要がない ``` ## Vault構造 ``` ~/vault/ ├── SOUL.md ← アイデンティティ・価値観・境界線 ├── MEMORY.md ← 経験のダイジェスト(CC Memoryミラー) ├── DREAMS.md ← Dreaming蓄積(自動更新) ├── CLAUDE.md ← Schema(LLM向けルール定義) │ ├── daily/ ← デイリーノート(朝夕自動生成) ├── system/ ← Claude Codeシステムミラー(SYNCED) ├── skills/ ← スキル一覧+個別ページ(SYNCED) ├── memory/ ← CC Memory個別ファイルミラー(SYNCED) ├── clips/ ← ツイート・記事のクリッピング(自動+手動) │ ├── x/ Xブックマーク(4時間おき自動同期) │ ├── articles/ Web記事(/clip or Slack経由) │ ├── _index.md クリップ一覧(自動更新) │ └── tags.md タグ別分類(Dataview対応) │ ├── clients/ ← 顧客ナレッジ蓄積(Karpathyパターン) ├── meetings/ ← 議事録要点 ├── decisions/ ← 経営判断ログ ├── insights/ ← 学び・パターン + 週次Dreaming ├── templates/ ← テンプレート └── scripts/ ← hookスクリプト + 同期スクリプト ``` ## セットアップ ### 前提条件 - Claude Code(Pro or Max) - Obsidian(無料) - GitHubアカウント - (オプション)Slack / Google Calendar / Gmail の Connector ### Step 1: Vault作成 ```bash mkdir -p ~/vault/{daily,system,skills,memory/{feedback,reference,project,user},clients,meetings,decisions,insights,templates,scripts} # iCloud同期(iPhone対応する場合) mv ~/vault ~/Library/Mobile\ Documents/iCloud~md~obsidian/Documents/exbrain ln -s ~/Library/Mobile\ Documents/iCloud~md~obsidian/Documents/exbrain ~/vault ``` ### Step 2: テンプレートをコピー ```bash git clone https://github.com/YOUR_USERNAME/exbrain.git /tmp/exbrain cp -r /tmp/exbrain/vault-template/* ~/vault/ ``` ### Step 3: Hooks設定 `~/.claude/settings.json` に追加: ```json { "hooks": { "PostToolUse": [{ "matcher": "Write|Edit", "hooks": [{ "type": "command", "command": "bash ~/vault/scripts/on-file-change.sh", "async": true }] }], "Stop": [{ "hooks": [{ "type": "command", "command": "bash ~/vault/scripts/on-session-end.sh", "async": true }] }] } } ``` ### Step 4: 初回同期 Claude Codeで: ``` ~/.claude/skills/ の全スキル、~/.claude/projects/*/memory/ の全記憶ファイルを ~/vault/ に同期してください。SOUL.md にアイデンティティを、MEMORY.md に記憶の ダイジェストを作成してください。 ``` ### Step 5: GitHubバックアップ ```bash cd ~/vault git init && git add -A && git commit -m "Initial vault" gh repo create my-vault --private --source=. --push ``` ### Step 6: Cloud Scheduled Tasks(PC不要にする場合) [claude.ai/code/scheduled](https://claude.ai/code/scheduled) で: - **vault-daily-morning**(毎朝07:00): SOUL.md読み→Calendar+Slack+Gmail→daily note + Morning Dreaming - **vault-daily-evening**(毎夕18:30): SOUL.md+MEMORY.md+DREAMS.md読み→Evening Dreaming+パターン検出 ## 含まれるスクリプト | スクリプト | 用途 | |-----------|------| | `on-session-end.sh` | Stop hook: daily note + MEMORY.mdにセッション記録 | | `on-file-change.sh` | PostToolUse hook: CLAUDE.md/memory/skill変更をログ | | `weekly-sync.sh` | 週次Lint: 壊れたリンク・孤立ページ・古いページ検出 | | `git-pull-sync.sh` | 毎時git pull(stash対応) | | `sync-agent-to-vault.sh` | 外部エージェントのJSONデータでdaily note充実化 | | `sync-x-bookmarks.sh` | Xブックマーク自動取得+クリップ(4時間おき) | 全スクリプトmacOS互換(GNU拡張なし)、セキュリティレビュー済み(PIDロック、インジェクション対策)。 ## 参考 - [Karpathy's LLM Wiki](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f) — 設計思想の原点 - [Claude Code Hooks](https://docs.anthropic.com/en/docs/claude-code/hooks) — async hookの公式ドキュメント - [Cloud Scheduled Tasks](https://docs.anthropic.com/en/docs/claude-code/scheduled-tasks) — PC不要の自動化 - [QMD](https://github.com/tobi/qmd) — Markdownセマンティック検索(100ページ超で導入検討) ## ライセンス MIT