
claude-memでClaude CodeとCursorのコンテキストを共有してみた
こんにちは。たかやまです。
私は普段Claude CodeとCursorを利用しています。
使い方としてはClaude CodeでアイデアをまとめたりPlanを立てたりしつつ、実際の実装はエディタ上でレビューしやすいCursorを活用しています。
ただ、Claude CodeとCursorを併用していると、各エディタで独立した会話履歴を管理することになり、作業内容を連携できない課題があります。
対応として、Cursor側の実装内容をClaude Codeに説明するための中間ファイルを作成したり、あるいはExportしてコンテキストを再度説明し直さなければなりません。
私はスラッシュコマンドで記録を定型化して対応していましたが、記録に時間がかかる点がネックでした。
claude-memはその辺りの負担を軽減してくれるそうでしたので、今回はclaude-memを使ってClaude CodeとCursor間でコンテキストを共有する方法を紹介します。
さきにまとめ
- claude-memはセッション間およびClaude CodeとCursor間でコンテキストを共有できるプラグイン
- Claude Codeで作成した計画をCursorでMCP経由で参照し(逆も然り)、シームレスに実装を継続できる
v9.0.5時点でCLAUDE.mdファイルが各ディレクトリに自動生成される仕様があるので、導入時は挙動を理解した上で利用が必要- 追記 : CLAUDE.mdファイルの自動生成はv9.1.0でデフォルト無効化(オプトイン方式)に変更され解決済み
コンテキスト共有イメージ

claude-memについて
claude-memはClaude Code向けの永続的メモリシステムです。
セッション中のツール使用や操作内容を自動的にキャプチャし、Claude Agent SDKを使ってセマンティックサマリーを生成・保存します。
これにより、セッションが終了しても過去の作業コンテキストを次のセッションに引き継ぐことができます。
主な特徴は以下のとおりです。
| 特徴 | 説明 |
|---|---|
| 永続的メモリ | セッション間でコンテキストを自動保存・復元 |
| ライフサイクルフック | SessionStart / UserPromptSubmit / PostToolUse / Stop / SessionEnd の5つのタイミングで自動記録 |
| Web Viewer | http://localhost:37777 でリアルタイムにメモリストリームを確認可能 |
| MCP Search Tools | 過去の作業履歴を自然言語で検索可能 |
| プライバシーコントロール | <private> タグで機密情報を記録対象から除外 |
| マルチプラットフォーム | Claude Code / Cursor / Claude Desktopで利用可能 |
記録は全てローカルで行われるため、外部にデータが送信されることはありません。
claude-memのアーキテクチャは以下の5つのコンポーネントで構成されています。
| コンポーネント | 役割 |
|---|---|
| プラグインフック | Claude Code Hooksの各ライフサイクルイベントでデータをキャプチャ |
| ワーカーサービス | Claude Agent SDKを使って観測データをセマンティック処理 |
| データベースレイヤー | SQLite + FTS5による全文検索対応のローカルストレージ |
| mem-searchスキル | 段階的情報開示による検索インターフェース |
| Web Viewer | Express.js + Reactベースのリアルタイム閲覧UI |
データフローは Hook (stdin) → Database → Worker Service → SDK Processor → Database というパイプラインで、全てローカルで完結します。
この辺りのアーキテクチャについてもドキュメントでより詳細に触れています。
気になる方は以下のドキュメントをご覧ください。
やってみた
検証時の環境 : claude-mem v9.0.5 / Claude Code v2.1.15 / Cursor Version: 2.4.21
Claude Codeへclaude-memをインストールする
まずはClaude Codeにclaude-memプラグインをインストールします。
Quick Startにて、/plugin コマンドによる導入方法が紹介されています。
/plugin marketplace add thedotmack/claude-mem
/plugin install claude-mem
実行コマンド
❯ /plugin marketplace add thedotmack/claude-mem
⎿ Successfully added marketplace: thedotmack
❯ /plugin install claude-mem
⎿ Plugin 'claude-mem@thedotmack' is already installed. Use '/plugin' to manage existing plugins.
claude-memをインストールすると、以下のファイルやディレクトリが作成・変更されます。
| カテゴリ | パス | 説明 |
|---|---|---|
| Claude Code設定 | ~/.claude/settings.json |
プラグイン有効化設定が追加 |
| シェル設定 | ~/.zshrc , ~/.bashrc |
claude-mem コマンドのエイリアスが追加 |
| データディレクトリ | ~/.claude-mem/ |
DB・設定・ログ・アーカイブ・ベクトルDBを格納 |
| プラグイン | ~/.claude/plugins/marketplaces/thedotmack/ |
プラグイン本体・依存関係 |
| 外部ツール | ~/.bun/ |
Bunランタイム(未インストール時) |
| 外部ツール | ~/.local/bin/uv |
uvパッケージマネージャー(未インストール時) |
claude-memのインストールにより、以下のMCPツールが自動的に有効化されます。
| MCPツール | 説明 |
|---|---|
| __IMPORTANT | 3層ワークフローパターンを説明する常時参照用ドキュメント(呼び出し不要) |
| search | キーワードでメモリを検索し軽量なインデックス(ID一覧)を取得する |
| timeline | 特定の観測記録を起点に前後の時系列コンテキストを取得する |
| get_observations | 特定のIDの完全な観測記録を取得する(複数IDのバッチ処理推奨) |
| Memory Search - Claude-Mem |
インストールが完了すると、以下のファイルおよび設定追加が行われ、Worker APIが localhost:37777 で起動されます。
ブラウザで http://localhost:37777 にアクセスすると以下のような画面が表示されます。

`/bin/sh: bun: command not found` が出る場合
初回起動時に /bin/sh: bun: command not found というエラーが表示される場合があります。
bunがインストールされていない場合claude-memがbunを初回インストールしており、Pathが通っていないケースがあるので再度Claude Codeを再起動してください。
日本語モードの設定
claude-memはデフォルトでは英語でメモリアーティファクトが生成されますが、日本語での記録を行いたい場合は設定ファイルを変更する必要があります。
設定変更はインストール時に作成された設定ファイル ~/.claude-mem/settings.json の CLAUDE_MEM_MODE を以下に編集することで行えます。
{
"CLAUDE_MEM_MODE": "code--ja"
}
この設定により、観測記録(タイトル、記述、事実、要約)がすべて日本語で生成されるようになります。
設定後はClaude Codeを再起動することで反映されます。
Claude Code上でclaude-memを使ってみる
ではclaude-memをインストールした状態でclaude codeを使ってみます。
試しにclaude-memのリポジトリをクローンして何ができるか問い合わせてみます。
プロンプト内容
❯ このリポジトリについて各ファイルを読み込んで解説して
⏺ このリポジトリの主要ファイルを読み込んで解説します。
⏺ Read(package.json)
⎿ Read 95 lines
⎿ Running PostToolUse hooks… (1/2 done)
⏺ Read(README.md)
⎿ Read 317 lines
⎿ Running PostToolUse hooks… (1/2 done)
⏺ Read(tsconfig.json)
⎿ Read 30 lines
⎿ Running PostToolUse hooks… (1/2 done)
⏺ Search(pattern: "src/**/*.ts")
⎿ Found 100 files (ctrl+o to expand)
⎿ Running PostToolUse hooks… (1/2 done)
⏺ 主要ファイルの読み込みと構造把握のため、さらに詳細を確認します。
⏺ Read(src/services/worker-service.ts)
⎿ Read 600 lines
⎿ Running PostToolUse hooks… (1/2 done)
⏺ Read(src/hooks/session-start-hook.ts)
⎿ Error reading file
⏺ Search(pattern: "plugin/**/*")
⎿ Found 63 files (ctrl+o to expand)
⎿ Running PostToolUse hooks… (1/2 done)
⎿ Loaded src/CLAUDE.md
⎿ Loaded src/services/CLAUDE.md
⏺ フックファイルとアーキテクチャドキュメントをさらに読み込みます。
⏺ Read(plugin/.claude-plugin/plugin.json)
⎿ Read 18 lines
⎿ Running PostToolUse hooks… (1/2 done)
⏺ Read(plugin/hooks/hooks.json)
⎿ Read 82 lines
⎿ Running PostToolUse hooks… (1/2 done)
⏺ Read(docs/public/architecture/overview.mdx)
⎿ Read 241 lines
⎿ Running PostToolUse hooks… (1/2 done)
⏺ Search(pattern: "src/hooks/*.ts")
⎿ Found 1 file (ctrl+o to expand)
⎿ Running PostToolUse hooks… (1/2 done)
⎿ Loaded plugin/CLAUDE.md
⎿ Loaded plugin/.claude-plugin/CLAUDE.md
⎿ Loaded plugin/hooks/CLAUDE.md
⎿ Loaded docs/CLAUDE.md
⎿ Loaded docs/public/CLAUDE.md
⎿ Loaded docs/public/architecture/CLAUDE.md
⏺ claude-mem リポジトリ解説
概要
claude-memはClaude Code向けの永続的メモリシステム。セッション間でコンテキストを保持し、Claude Agent
SDKを使用して観察データを圧縮・意味抽出する。
主要コンポーネント
1. アーキテクチャ(5層構造)
ライフサイクルフック (src/hooks/)
- SessionStart - コンテキスト注入
- UserPromptSubmit - セッション作成
- PostToolUse - ツール実行キャプチャ
- Stop - サマリー生成
- SessionEnd - セッション完了マーク
ワーカーサービス (src/services/worker-service.ts)
- Express HTTP API (localhost:37777)
- 非同期AI処理 (Claude Agent SDK)
- SSE経由リアルタイム配信
- Bunによる自動プロセス管理
データベース層 (src/services/sqlite/)
- SQLite3 + FTS5全文検索
- ChromaDB ベクトル検索 (semantic search)
- ~/.claude-mem/claude-mem.dbに保存
MCPスキル (plugin/skills/mem-search/)
- 3層プログレッシブディスクロージャ
a. search - コンパクトインデックス取得
b. timeline - 時系列コンテキスト取得
c. get_observations - 詳細フェッチ
- トークン効率10倍向上
ビューアUI (src/ui/viewer/)
- React + TypeScript
- SSE経由リアルタイムストリーム
- http://localhost:37777
2. データフロー
Hook入力 → SQLite保存 → Worker処理 → SDK圧縮 → DB書き戻し → 次回セッション注入
検索フロー
ユーザークエリ → MCPツール → HTTP API → SessionSearch → FTS5 → 結果返却
3. ディレクトリ構造
ソース (src/)
- hooks/ - 5つのフックスクリプト実装
- services/ - ワーカーサービス、SQLite、検索ロジック
- ui/viewer/ - Reactビューア
ビルド済プラグイン (plugin/)
- .claude-plugin/plugin.json - プラグインメタデータ
- hooks/hooks.json - フック設定
- scripts/ - ビルド済み実行ファイル
- skills/ - MCPスキル定義
- ui/viewer.html - 単一HTMLバンドル
4. 技術スタック
┌──────────────┬────────────────────────────────┐
│ 要素 │ 技術 │
├──────────────┼────────────────────────────────┤
│ 言語 │ TypeScript (ES2022) │
├──────────────┼────────────────────────────────┤
│ ランタイム │ Node.js 18+, Bun │
├──────────────┼────────────────────────────────┤
│ DB │ SQLite3 + FTS5 │
├──────────────┼────────────────────────────────┤
│ ベクトルDB │ ChromaDB │
├──────────────┼────────────────────────────────┤
│ HTTP │ Express.js │
├──────────────┼────────────────────────────────┤
│ リアルタイム │ SSE │
├──────────────┼────────────────────────────────┤
│ UI │ React + TypeScript │
├──────────────┼────────────────────────────────┤
│ AI SDK │ @anthropic-ai/claude-agent-sdk │
├──────────────┼────────────────────────────────┤
│ ビルド │ esbuild │
└──────────────┴────────────────────────────────┘
5. ビルド/開発コマンド
npm run build-and-sync # ビルド→マーケットプレース同期→ワーカー再起動
npm run worker:restart # ワーカー再起動
npm run worker:logs # ログ確認
npm run test # テスト実行
6. 設定
~/.claude-mem/settings.json - 自動生成される設定ファイル
- AIモデル選択
- ワーカーポート (デフォルト37777)
- ログレベル
- コンテキスト注入設定
7. 特徴的な機能
プライバシータグ
<private>機密情報</private> <!-- 保存されない -->
プログレッシブディスクロージャ
- 段階的コンテキスト開示
- トークンコスト可視化
- 必要な情報のみフェッチ
ベータチャンネル
- Endless Mode (実験的バイオミメティックメモリ)
- Web UIから切り替え可能
8. ライセンス
- メイン: AGPL-3.0
- ragtime/: PolyForm Noncommercial 1.0.0
アーキテクチャ上の重要ポイント
1. フックベースの非侵襲的設計 - Claude Codeのライフサイクルイベントに連携
2. 非同期バックグラウンド処理 - ユーザー体験を阻害しない
3. ハイブリッド検索 - FTS5全文検索 + ChromaDB意味検索
4. トークン効率最適化 - 段階的開示パターン
5. オープンソースコア + 有料Pro機能の分離設計
SessionStart / UserPromptSubmit / PostToolUse / Stop のタイミングでフックが実行されてclaude-memに自動で記録されるため、ユーザー側で記録指示は不要です。
claude-memを確認すると、以下のような形で記録されます。

PROMPTにユーザーが実行したプロンプトが記録され、DISCOVERYにClaude Codeの調査の洞察が記録されます。
調査が完了すると SESSION SUMMARYの形で内容が要約されて記録されます。
では、次に全く別のプロジェクトでセッションを立ち上げてコンテキストが共有されるか確認してみます。
ここではObsidianのフォルダでClaude Codeを立ち上げて先ほど調査したclaude-memの内容を取得できるか試してみます。
❯ claude-mem mcpを使ってclaude memリポジトリの調査内容を確認して
⏺ claude-mem MCPサーバーのツールを使用して、claude-memリポジトリの調査内容を確認します。
⏺ ToolSearch(Search tools: "select:mcp__plugin_claude-mem_mcp-search__search")
⎿ Found 1 tool
⎿ Running PostToolUse hooks… (1/2 done)
⏺ plugin:claude-mem:mcp-search - search (MCP)(query: "claude-mem リポジトリ 調査", limit: 10)
⎿ No results found matching "claude-mem リポジトリ 調査"
⎿ Running PostToolUse hooks… (1/2 done)
⏺ plugin:claude-mem:mcp-search - search (MCP)(query: "claude-mem", limit: 20)
⎿ Found 3 result(s) matching "claude-mem" (2 obs, 1 sessions, 0 prompts)
### Jan 22, 2026
… +15 lines (ctrl+o to expand)
⎿ Running PostToolUse hooks… (1/2 done)
⏺ claude-memリポジトリに関する調査内容を確認しました。以下の情報が記録されています。
記録されている調査内容
1. セッション #S1 (2026-01-22 22:10)
- タイトル: 「claude-memリポジトリの各ファイルを読み込んで解説」
2. 観察記録 #4 (2026-01-22 22:07)
- タイトル: 「TypeScriptソースコードの構造とモジュール編成」
- src/ディレクトリ配下の100以上のTypeScriptファイルの調査結果
3. 観察記録 #2 (2026-01-22 22:06)
- タイトル: 「TypeScript設定とビルド構成」
- tsconfig.jsonの設定内容
詳細を確認しますか?
❯ 詳細を確認して
⏺ claude-memの調査記録の詳細を確認します。
⏺ ToolSearch(Search tools: "select:mcp__plugin_claude-mem_mcp-search__get_observations")
⎿ Found 1 tool
⎿ Running PostToolUse hooks… (1/2 done)
⏺ plugin:claude-mem:mcp-search - get_observations (MCP)(ids: [2,4])
⎿ [
{
"id": 4,
… +70 lines (ctrl+o to expand)
⎿ Running PostToolUse hooks… (1/2 done)
⏺ claude-memリポジトリの調査内容の詳細を確認しました。
調査内容の詳細
1. TypeScriptソースコードの構造とモジュール編成
概要
100以上のTypeScriptファイルで構成され、サービス層、インフラ、UI、データアクセスが明確に分離されている
主要な構造
データアクセス層 (services/sqlite/)
- 9つの主要クラス: Database、Observations、Sessions、Summaries、Timeline、Prompts、Import、migrations、transactions
- 各クラスはCRUD操作を個別ファイルに分離 (get.ts、store.ts、types.ts、recent.ts等)
ワーカーサービス (services/worker/)
- コア機能: DatabaseManager、Search、SettingsManager、TimelineService、SSEBroadcaster
- HTTPルート (http/routes/): DataRoutes、LogsRoutes、SettingsRoutes、ViewerRoutes
- 検索システム (search/): SearchOrchestrator、SearchStrategy、3つのフィルタ (DateFilter、ProjectFilter、TypeFilter)
コンテキスト生成 (services/context/)
- 処理フロー: 設定ロード→トークン計算→セクションレンダリング→フォーマット
- コンポーネント: ContextConfigLoader、TokenCalculator、2つのフォーマッター (ColorFormatter、MarkdownFormatter)、3つのレンダラー
(HeaderRenderer、SummaryRenderer、FooterRenderer)
UIレイヤー (ui/viewer/)
- Reactベースのビューア
- 9つのカスタムフック:
useSSE、useSettings、useTheme、usePagination、useStats、useContextPreview、useGitHubStars、useSpinningFavicon
その他
- エージェント層 (services/worker/agents/): ObservationBroadcaster、SessionCleanupHelper、FallbackErrorHandler
- インフラ層: GracefulShutdown
- キュー処理: SessionQueueProcessor
- ユーティリティ (bin/): cleanup-duplicates.ts、import-xml-observations.ts
2. TypeScript設定とビルド構成
設定の特徴
- ターゲット: ES2022
- モジュールシステム: ESNext
- strictモード有効で型安全性を最大化
- JSX: Reactモード
- ビルド: src/ → dist/
- ソースマップと型定義ファイルを生成
アーキテクチャの特徴
堅牢なソフトウェアエンジニアリングプラクティスを反映し、テスタビリティ、保守性、拡張性を重視した設計になっています。
MCPサーバーからちゃんと先ほどのセッションサマリのコンテキストを取得していることが確認できますね
もちろんclaude-mem上でも今回の調査内容が記録されています。
ちなみにclaude-memの記録はプロジェクトごとに分けられており、右上のプルダウンから切り替えることでプロジェクトごとの過去のコンテキストを確認することができます。
(ALL Projectsでは全プロジェクトのコンテキストを時系列順に確認できる)

私の執筆時点のバージョン v9.0.5では、claude-memが読みに行ったディレクトリフォルダに以下の形式のCLAUDE.mdファイルが乱立します。

<claude-mem-context>
# Recent Activity
<!-- This section is auto-generated by claude-mem. Edit content outside the tags. -->
*No recent activity*
</claude-mem-context>
GitHub Issueでは、この問題についてディスカッションされていますが現時点では無効にするオプションはないため大規模プロジェクトで利用する場合には環境に影響がないかは自己責任で確認してください。
私は .git/info/exclude に以下のように追加して無視するようにしています。
# Exclude CLAUDE.md files in subdirectories (keep root CLAUDE.md tracked)
*/CLAUDE.md
**/*/CLAUDE.md
claude-memを導入する際は自動生成されるファイルの挙動やリポジトリ運用への影響を考慮しつつ、必要に応じて除外設定などの対策を行うことをおすすめします。
Cursorへclaude-memをインストールする
claude-memはCursorとの連携にも対応しています。
連携ユーザーにはCursorのみ利用ユーザーとClaude Codeユーザー向け2通り手順がありますが、ここではClaude Codeユーザー向けの手順を進めていきます。
Claude Codeユーザーはclaude-memインストール時にclaude-memコマンドがalias設定されているので、そのコマンドを使ってCursorのインストールを行います。
claude-mem cursor install <スコープ>
実行コマンド
❯ claude-mem cursor install user
Installing Claude-Mem Cursor hooks (user level, unix)...
Copied common.sh
Copied session-init.sh
Copied context-inject.sh
Copied save-observation.sh
Copied save-file-edit.sh
Copied session-summary.sh
Created hooks.json (unix mode)
Installation complete!
Hooks installed to: /Users/YOUR_USERNAME/.cursor/hooks.json
Scripts installed to: /Users/YOUR_USERNAME/.cursor/hooks
Next steps:
1. Start claude-mem worker: claude-mem start
2. Restart Cursor to load the hooks
3. Check Cursor Settings → Hooks tab to verify
Context Injection:
Context from past sessions is stored in .cursor/rules/claude-mem-context.mdc
and automatically included in every chat. It updates after each session ends.
このコマンドを実行すると、スコープに応じてhooks.jsonファイルが設定されます。
| スコープ | 説明 | インストール先 |
|---|---|---|
| project | プロジェクトレベル(デフォルト) | カレントディレクトリ/.cursor |
| user | ユーザーレベル | ~/.cursor |
| enterprise | エンタープライズレベル | (macOS)/Library/Application Support/Cursor/hooks.json, (Linux)/etc/cursor/hooks.json, (Windows)C:\\ProgramData\\Cursor\\hooks.json |
インストール状態は以下のコマンドで確認できます。
claude-mem cursor status
実行コマンド
❯ claude-mem cursor status
Claude-Mem Cursor Hooks Status
Project: Not installed
User: Installed
Config: /Users/YOUR_USERNAME/.cursor/hooks.json
Mode: Unified CLI (node worker-service.cjs)
Enterprise: Not installed
mcpサーバーは自動で登録されていないので、mcp.jsonファイルに以下を追加します。
{
"mcpServers": {
"mcp-search": {
"command": "node",
"args": [
"/Users/YOUR_USERNAME/.claude/plugins/marketplaces/thedotmack/plugin/scripts/mcp-server.cjs"
]
}
}
}
Cursor上でMCPサーバーとして mcp-search が有効になっていればOKです

参考 : Claude Desktop MCP - Claude-Mem
実際にClaude CodeとCursorでコンテキストを共有してみる
では実際に、Claude CodeとCursorでコンテキストを共有してみたいと思います。
ここでは、Claude Codeで簡単なtodoアプリのプランを作らせてCursorで実装を行うシナリオを想定してやってみます。
Claude Codeではプランモードでシンプルなtodoアプリの計画のみ作成します。
❯ 非常にシンプルなWebで動作するtodoアプリを作成する計画を立てて
⏺ この要求は実装計画を立てる作業のため、plan modeに入ります。
⏺ Entered plan mode
Claude is now exploring and designing an implementation approach.
⎿ Running PostToolUse hooks… (1/2 done)
⏺ 現在のディレクトリ構造とプロジェクトの状態を確認します。
⏺ Bash(pwd)
⎿ /tmp/claude-mem-temp
⎿ Running PostToolUse hooks… (1/2 done)
⏺ Bash(ls -la)
⎿ total 0
drwxr-xr-x@ 2 takayama.kotaro wheel 64 Jan 23 17:26 .
drwxrwxrwt 102 root wheel 3264 Jan 23 17:42 ..
⎿ Running PostToolUse hooks… (1/2 done)
⏺ Search(pattern: "**/*.{html,js,css,json,md}")
⎿ Found 0 files
⎿ Running PostToolUse hooks… (1/2 done)
⏺ 空のディレクトリから開始する状況を確認しました。todoアプリの要件を明確化します。
⏺ User answered Claude's questions:
⎿ · どのようなtodoアプリを想定していますか? → 単一HTMLファイル(推奨)
· データの永続化は必要ですか? → localStorage
· 必要な機能を選択してください → 追加・削除・完了切替
⎿ Running PostToolUse hooks… (1/2 done)
⏺ 要件が明確になりました。単一HTMLファイルでlocalStorage対応の基本機能のみのtodoアプリを作成する計画を立てます。
⏺ Updated plan
⎿ Wrote 57 lines to ../../../Users/takayama.kotaro/.claude/plans/cheerful-sprouting-island.md
1 # シンプルTodoアプリ実装計画
2 ## 概要
3 単一HTMLファイルで動作する最小限のtodoアプリをゼロから作成
4 ## 要件
5 - 単一HTMLファイル(HTML/CSS/JS統合)
6 - localStorage永続化
7 - 基本機能:追加、削除、完了切替
… +47 lines (ctrl+o to expand)
⎿ Running PostToolUse hooks… (1/2 done)
⏺ 計画ファイルを作成しました。ユーザーに承認を求めます。
⎿ User rejected Claude's plan:
╭────────────────────────────────────────────────────────────╮
│ シンプルTodoアプリ実装計画 │
│ │
│ 概要 │
│ │
│ 単一HTMLファイルで動作する最小限のtodoアプリをゼロから作成 │
│ │
│ 要件 │
│ │
│ - 単一HTMLファイル(HTML/CSS/JS統合) │
│ - localStorage永続化 │
│ - 基本機能:追加、削除、完了切替 │
│ │
│ 実装方針 │
│ バニラJS + 最小限のCSSで実装。フレームワーク不使用。 │
│ │
│ ファイル構成 │
│ │
│ /tmp/claude-mem-temp/ │
│ └── todo.html (新規作成) │
│ │
│ 実装内容 │
│ │
│ HTML構造 │
│ │
│ - 入力フォーム(テキスト入力 + 追加ボタン) │
│ - todoリスト(ul/li) │
│ - 各todo項目:チェックボックス、テキスト、削除ボタン │
│ CSS │
│ │
│ - シンプルで読みやすいレイアウト │
│ - 完了済みタスクの打ち消し線 │
│ - レスポンシブ対応(max-width指定) │
│ JavaScript機能 │
│ │
│ 1. データ管理 │
│ - localStorage読み込み・保存 │
│ - todo配列管理(id, text, completed) │
│ 2. イベントハンドリング │
│ - 追加:フォーム送信時 │
│ - 完了切替:チェックボックスクリック時 │
│ - 削除:削除ボタンクリック時 │
│ 3. レンダリング │
│ - todo配列からDOM生成 │
│ - 変更時に再レンダリング + localStorage保存 │
│ │
│ 検証手順 │
│ │
│ 1. todo.htmlをブラウザで開く │
│ 2. todo追加動作確認 │
│ 3. 完了チェック動作確認 │
│ 4. 削除動作確認 │
│ 5. ブラウザリロード後のデータ永続化確認 │
│ │
│ 実装ファイル │
│ │
│ - /tmp/claude-mem-temp/todo.html(新規作成) │
│ │
│ 約200行程度の単一ファイルで完結。 │
╰────────────────────────────────────────────────────────────╯
claude-mem上に以下のようにコンテキストが記録されていることが確認できます。
Planを途中で止めたのでSession Summaryは記録されていませんが、実装計画の内容がちゃんと記録されていますね

次にCursorで実装を行います。
プランの内容をそのままCursorに貼り付けてもいいですが、せっかくなのでclaude-mem mcpから情報を取得して実装させてみます。
問い合わせ内容に合わせてclaude-mem mcpからちゃんと実装計画を取得し、実装までしてくれていますね。

(ちなみにできたアプリはこんな感じ)

claude-mem上でもClaude CodeのコンテキストとCursorでのコンテキスト両方記録されていることが確認できますね!

もちろんこの後Claude Codeに戻って再度claude-mem mcpからコンテキスト継続して作業することも可能です。
活用ユースケース例 : 日報編
claude-memを使ってセッション間のコンテキスト共有はもちろん、私は一日の作業振り返り時にclaude-memをベースに以下のようなスラッシュコマンドを用意して日報を作成しています。
daily-logコマンド
---
description: Obsidian Vaultに作業記録を作成する
allowed-tools: [Write, Read, Edit, Bash, AskUserQuestion, ToolSearch, mcp__plugin_claude-mem_mcp-search__search, mcp__plugin_claude-mem_mcp-search__get_observations]
argument-hint: "[--reflect] [--no-suggest]"
---
# Daily Work Log
claude-mem MCPから当日のアクティビティを取得し、Obsidian Vaultの日次ノートに記録します。
## 引数の解析
`$ARGUMENTS` を以下のルールでパースします。
### フラグオプション
| フラグ | デフォルト | 説明 |
|--------|-----------|------|
| `--reflect` | オフ | 振り返り対話を実施する |
| `--no-suggest` | オフ(改善提案はデフォルトオン) | 改善提案分析をスキップする |
- `--reflect` が指定された場合、振り返り対話を実施
- `--no-suggest` が指定された場合、改善提案分析をスキップ
- フラグなしの場合、振り返りなし・改善提案ありで実行
- 認識できないトークンは無視し、処理を継続
## 処理内容
### 1. claude-memから当日のデータ取得
まず `ToolSearch` で claude-mem MCPツールをロードします(遅延ロードツールのため必須)。
```
ToolSearch(query="select:mcp__plugin_claude-mem_mcp-search__search")
ToolSearch(query="select:mcp__plugin_claude-mem_mcp-search__get_observations")
```
次に `mcp__plugin_claude-mem_mcp-search__search` で当日のデータを取得します。
```
search(dateStart="YYYY-MM-DD", dateEnd="YYYY-MM-DD+1日", limit=100)
```
- dateStartに当日、dateEndに翌日の日付を動的に設定(例: dateStart=`2026-02-04`, dateEnd=`2026-02-05`)
- dateEndはUTC基準で解釈されるため、翌日を指定しないとJST当日午前9時以降のデータが取得できない
- 結果が0件の場合はエラーメッセージを表示して中断
- 「本日のclaude-mem記録がありません。作業を行ってから再度実行してください。」
### 2. 詳細データ取得
検索結果のIDリストを使用して `mcp__plugin_claude-mem_mcp-search__get_observations` で詳細取得します。
- プロジェクト別、タイプ別に分類
- 時刻情報を抽出
### 3. サマリ生成
以下の構造で作業記録を作成します。
```markdown
# [日付] 作業サマリ
## サマリ
[本日の作業概要を1-2文で]
## [プロジェクト名1]
### 目的
[なぜこの作業を行ったか]
### 実施内容
- [観測タイトル1] (HH:MM)
- [詳細内容]
- [観測タイトル2] (HH:MM)
- [詳細内容]
### 変更ファイル
- path/to/file1
- path/to/file2
## [プロジェクト名2]
### 目的
[なぜこの作業を行ったか]
### 実施内容
- [観測タイトル] (HH:MM)
- [詳細内容]
### 変更ファイル
- path/to/file
## 振り返り(--reflect指定時のみ)
### 今日の成果
[ユーザー回答をまとめた内容]
### 課題・気づき
[ユーザー回答をまとめた内容]
### 次のアクション
[ユーザー回答をまとめた内容]
## 学習ポイント(--reflect未指定時のみ)
[Claudeによる自動生成]
## 改善提案(--no-suggest未指定時のみ)
### Hooks提案
- [Hook名]: [処理内容]
- トリガー: [対象イベント(PreToolUse, PostToolUse, Notification等)]
- 理由: 特定イベントに連動する確定的処理のため
### CLAUDE.md追記提案
- [プロジェクト名] ([対象CLAUDE.mdパス])
- 追記候補: [具体的な追記内容]
- 検出理由: [5原則のどれに基づくか]
### サブエージェント提案
- [エージェント名]: [処理内容]
- 検出根拠: [作業過程が不要で結果のみ必要だった操作]
- スコープ: プロジェクト(`.claude/agents/`)or ユーザー(`~/.claude/agents/`)
- モデル: haiku / sonnet / opus / inherit
- ツール制限: [必要なツールのみ列挙]
### コマンド提案(新規・改善)
- [コマンド名]: [内容]
- 種別: 新規 or 改善
- 検出根拠: [繰り返し手動呼び出ししていた処理]
- 実装方針: `/slash-command-creator` スキルで作成 or 既存コマンドを編集
### スキル提案(新規・改善)
- [スキル名]: [内容]
- 種別: 新規 or 改善
- 検出根拠: [特定の作業文脈でのみ必要だった知識・ワークフロー]
- 実装方針: `/skill-creator` スキルで作成 or 既存スキルを編集
```
- `--reflect` 指定時は `## 振り返り` セクションを使用
- `--reflect` 未指定時は `## 学習ポイント` セクションを使用(両方を含めない)
- `--no-suggest` 指定時は `## 改善提案` セクション自体を含めない
- 各提案セクションで該当なしの場合は「検出なし」と記載
階層構造
- H1: ファイルタイトル(日付 + 作業サマリ)
- H2: サマリ、プロジェクト名、振り返り or 学習ポイント、改善提案
- H3: 目的、実施内容、変更ファイル、今日の成果、課題・気づき、次のアクション、Hooks提案、CLAUDE.md追記提案、サブエージェント提案、コマンド提案、スキル提案
### 3.5 振り返り(--reflect指定時のみ)
`--reflect` フラグが指定されている場合のみ実行します。
作業内容を分析し、文脈に応じた質問を2-3個生成してAskUserQuestionでユーザーに回答を求めます。
質問例(作業タイプ別)
- 設計作業 「この設計で最も重視した点は?」「代替案との比較で決め手になったのは?」
- バグ修正 「根本原因の特定で苦労した点は?」「同様のバグを防ぐには?」
- 新機能実装 「実装で工夫した点は?」「今後拡張するとしたら?」
- リファクタリング 「改善後のメリットを実感した点は?」
ユーザーの回答を「今日の成果」「課題・気づき」「次のアクション」の3つの観点で整理します。
`--reflect` 未指定時はCloudeが作業内容から `## 学習ポイント` を自動生成します。
### 4. 保存先の決定
- ベースディレクトリ `/Users/takayama.kotaro/Documents/Obsidian Vault/Daily/`
- 月次サブディレクトリ `YYYY-MM/`(例: `2026-02/`)
- 作業ディレクトリ `YYYY-MM-DD_[日報]作業サマリ/`
- ファイル名 `作業サマリ.md`
- 完全パス例 `/Users/takayama.kotaro/Documents/Obsidian Vault/Daily/2026-02/2026-02-04_[日報]作業サマリ/作業サマリ.md`
### 5. 既存ディレクトリの確認
- **MUST** 書き込み前に同日の作業ディレクトリが存在するか確認
- 確認方法 `ls -d "/Users/takayama.kotaro/Documents/Obsidian Vault/Daily/YYYY-MM/YYYY-MM-DD_"* 2>&1`
- 既存ディレクトリが見つかった場合
- ユーザーに「既存ディレクトリ `[ディレクトリ名]` に追記しますか?それとも新規ディレクトリを作成しますか?」と確認
- 追記を選択 `Read` で既存の.mdファイル内容を読み込み、ファイル末尾に新しいプロジェクトセクションを追加(`Edit` ツール使用)
- 新規作成を選択 別のタイトルで新規ディレクトリを作成
### 6. ディレクトリとファイルの作成または更新
- 新規作成
1. `mkdir -p` でディレクトリ作成
2. `Write` ツールでディレクトリ内に `作業サマリ.md` を作成
- 追記 `Edit` ツールで既存の.mdファイルに内容を追加
### 7. 改善提案の分析(--no-suggest未指定時のみ)
`--no-suggest` フラグが指定されていない場合(デフォルト)、ファイル保存完了後に自動的に分析を実行します。
Step 2で取得済みのclaude-memデータから、以下の意思決定フローで最適な自動化手段を判定します。
```
検出した作業パターン
|
|- 特定イベントに連動する確定的処理か? -> Yes -> Hooks提案
|
|- 常時必要な知識・制約か? -> Yes -> CLAUDE.md追記提案
|
|- 独立タスクで作業過程が不要、結果のみ必要か? -> Yes -> サブエージェント提案
|
|- 繰り返し手動呼び出しする処理か? -> Yes -> コマンド提案
|
|- その他(特定文脈でのみ必要な知識・ワークフロー) -> スキル提案
```
既存コマンド一覧は `~/.claude/commands/` および `.claude/commands/` 配下の `.md` ファイルを参照して動的に取得する。
既存スキル一覧は `~/.claude/skills/` および `.claude/skills/` 配下のディレクトリを参照して動的に取得する。
#### Hooks提案
判定基準
- コミット前のフォーマット実行、ファイル保存時のlint等、イベント駆動で毎回確実に実行すべき処理
- 自然言語の曖昧性を排除し、副作用を確定的に実現したい場合
提案の形式
- トリガーイベント(PreToolUse, PostToolUse, Notification等)、処理内容、理由を記載
- 該当なしの場合は「検出なし」と記載
#### CLAUDE.md追記提案
claude-md-creatorスキルの5原則に基づき、claude-memデータから追記候補を判定します。
判定基準(claude-md-creatorの5原則に対応)
1. WHY/WHAT/HOW 目的・構造・検証方法が不足しているプロジェクトを検出
2. 指示の最小化 冗長な説明なしで、ルールとして簡潔に記述可能な知見を検出
3. 段階的開示 CLAUDE.md本体に詳細を入れすぎているケースを検出
4. 自動ツール活用 ツールに委譲すべきルールが手動運用されているケースを検出
5. 手動作成 decision型・discovery型の観測から、プロジェクト固有の制約を検出
提案フォーマット
- 追記候補は60-150行・50-100指示の理想範囲を意識して提案
- Before/After形式で改善案を提示(可能な場合)
- 追記する場合は `/claude-md-creator` スキルの使用を推奨
- 該当なしの場合は「検出なし」と記載
#### サブエージェント提案
判定基準
- 翻訳、大量データの集計、調査など作業過程が膨大でも最終結果のみ必要な処理
- メインコンテキストの汚染を防ぎたい独立タスク
- 特定ドメインに特化したシステムプロンプトで精度を向上できる処理
提案の形式
- エージェント名、処理内容、検出根拠を記載
- 以下の設計要素を含めること
- スコープ プロジェクト(`.claude/agents/`)or ユーザー(`~/.claude/agents/`)
- モデル選択 haiku(高速・低コスト)/ sonnet(バランス)/ opus(高精度)/ inherit
- ツール制限 必要最小限のツールのみ列挙(読み取り専用なら Read, Grep, Glob のみ等)
- 永続メモリ 会話横断で知識を蓄積すべきか(user / project / local)
- 実装は `/agents` コマンドで作成、または `.claude/agents/` に直接Markdownファイルを配置
- 該当なしの場合は「検出なし」と記載
既存サブエージェント一覧は `~/.claude/agents/` および `.claude/agents/` 配下のファイルを参照して動的に取得する
#### コマンド提案(新規・改善)
判定基準
- ユーザーが意図的に「今この処理を実行したい」と繰り返し手動呼び出しする処理
- 既存コマンドの引数・オプション追加やコマンド間連携で改善できるワークフロー
- 3回以上の同種操作を新規コマンド候補として検出
提案の形式
- コマンド名、種別(新規 or 改善)、検出根拠、実装方針を記載
- 新規の場合は `/slash-command-creator` スキルの使用を推奨
- 該当なしの場合は「検出なし」と記載
#### スキル提案(新規・改善)
判定基準
- 特定の作業文脈(コードレビュー、DB設計等)でのみ必要な知識・ワークフロー
- 常時ロードするほどではないが、必要時にコンテキストを提供すべき情報
提案の形式
- スキル名、種別(新規 or 改善)、検出根拠、実装方針を記載
- 新規の場合は `/skill-creator` スキルの使用を推奨
- 該当なしの場合は「検出なし」と記載
### 8. 改善提案の記録
分析結果を日報ファイルに追記します(Editツール使用)。
- ファイル末尾に `## 改善提案` セクションを追加
- 5つのH3セクション(Hooks提案、CLAUDE.md追記提案、サブエージェント提案、コマンド提案、スキル提案)をすべて記載
- 各提案の説明は3行以内に保つ
## 実行例
```bash
# 基本実行(振り返りなし、改善提案あり)
/daily-log
# 振り返り対話を実施
/daily-log --reflect
# 改善提案をスキップ
/daily-log --no-suggest
# 振り返りあり + 改善提案スキップ
/daily-log --reflect --no-suggest
```
## 厳守事項
- **MUST load deferred tools first** claude-mem MCPツールは遅延ロードのため、使用前にToolSearchでロードする
- **MUST fetch from claude-mem first** 必ず最初にclaude-memから当日のデータを取得する
- **MUST check data exists** データが0件の場合はエラーで中断する
- **MUST create work directory** 作業ごとにディレクトリを作成する(`mkdir -p`使用)
- **ONLY write to** `/Users/takayama.kotaro/Documents/Obsidian Vault/Daily/YYYY-MM/` 配下のみ
- **MUST check existing directories first** 同日の作業ディレクトリが存在するか必ず確認
- **MUST check month directory existence** 書き込み前に `YYYY-MM/` ディレクトリの存在を確認
- **IF month directory not exists THEN ask user** 月次ディレクトリが存在しない場合はユーザーに確認
- **NEVER use emoji** 記録内容に絵文字を使用しない(プレーンテキストのみ)
- **Directory structure** `YYYY-MM/YYYY-MM-DD_[日報]作業サマリ/作業サマリ.md` の形式で作成
- **Fixed prefix** プレフィックスは「日報」固定(claude-mem記録は業務日報として分類)
- **MUST show summary before reflection** 振り返り実施前にサマリをユーザーに表示する
- **Either reflection OR learning points** 振り返りセクションと学習ポイントセクションは排他的(両方含めない)
- **MUST complete file save before suggestions** 改善提案分析はファイル保存完了後にのみ実行する
- **MUST append suggestions to file** 改善提案の結果は日報ファイル末尾に追記する(`--no-suggest` 指定時を除く)
- **Respect flags** `--reflect` 未指定時はAskUserQuestionで振り返り確認しない。`--no-suggest` 未指定時は改善提案を自動実行する
## エラーハンドリング
- claude-memからデータが取得できない場合
- 「本日のclaude-mem記録がありません。作業を行ってから再度実行してください。」と表示して中断
- 月次ディレクトリが存在しない場合
```bash
ls "/Users/takayama.kotaro/Documents/ObsidianVault/Daily/2026-02/" 2>&1
# => エラーの場合、ユーザーに確認
```
- 同日の作業ディレクトリが存在する場合
```bash
ls -d "/Users/takayama.kotaro/Documents/ObsidianVault/Daily/2026-02/2026-02-04_"* 2>&1
# => ディレクトリが見つかった場合、追記か新規作成かをユーザーに確認
```
- 作業ディレクトリ作成例
```bash
mkdir -p "/Users/takayama.kotaro/Documents/ObsidianVault/Daily/2026-02/2026-02-04_[日報]作業サマリ"
```
- dateEndのUTC問題 dateEndは必ず翌日を指定する(例: 2月4日のデータ取得時はdateEnd=`2026-02-05`)
## 注意事項
- 作業内容は簡潔かつ具体的に記録
- 機密情報(APIキー等)は記録しない
- プロジェクト別にデータを整理して記録
実際にdaily-logコマンドで生成される日報は以下のようなイメージになります。
# 2026-0x-xx 作業サマリ
## サマリ
4つのプロジェクト領域にわたる作業を実施。dotfilesでstatusline機能のコミットと検証を完了。Blogsではエージェントチーム(writer/reviewer)を初めて活用し、技術記事の比較表完成・品質レビュー・導入文改善を実施。運用方針プロジェクトでは現行運用フローのドキュメント化とMermaid図作成、障害一次対応フローの作図(Mermaid/draw.io)とCLAUDE.md作図規約の策定を行った。
## dotfiles (statusline機能)
### 目的
Claude Codeのstatuslineにレート制限情報をビジュアル表示する機能を完成・検証するため
### 実施内容
- レート制限バー表示機能のコミット完了 (17:30)
- OAuth Usage API統合、Unicodeブロック文字によるプログレスバー、ファイルベースキャッシュ(TTL 60秒、stale 300秒)を実装
- 249行追加、1行削除の変更をコミット
- statuslineスクリプトの実装調査とパフォーマンス検証 (17:31-17:35)
- stale-while-revalidateパターン、O_EXCLフラグによる排他制御、detached子プロセスによる非同期バックグラウンド更新の設計を確認
- API呼び出しがstatusline表示を遅延させない設計を検証
- キャッシュファイル退避テストでエラーなく基本情報のみ表示されることを確認(フォールバック動作正常)
### 変更ファイル
- dotfiles/claude/scripts/statusline-with-ratelimit.js
## Blogs (技術ブログ記事)
### 目的
技術ブログ記事の未完成箇所を補完し、公開可能な品質に仕上げるため
### 実施内容
- エージェントチーム機能の調査と有効化確認 (17:40)
- Claude Code設定ディレクトリの構造調査、settings.jsonがdotfilesからシンボリックリンク管理されていることを確認
- ブログ執筆用エージェントチーム作成 (17:41)
- チームリード、writerエージェント(比較表執筆)、reviewerエージェント(品質レビュー)の3エージェント構成
- 比較表の完成 (17:42-17:44)
- 操作方法、適したユースケース、カバー範囲、自動化との相性の4観点で比較
- TODOコメントを削除し具体的な比較内容に置き換え
- 記事品質レビュー実施 (17:42-17:45)
- Writing Style Guidelinesに基づく包括的レビューで3箇所の修正点を特定
- 導入セクションの改善 (17:50-18:10)
- 5回の反復修正を経て簡潔な3段落構成に収束
### 変更ファイル
- Blogs/articles/技術ブログ記事.md
- Blogs/CLAUDE.md
## 運用方針プロジェクト (運用フロー)
### 目的
現行運用フローをドキュメント化し、ツール統合への移行を可視化するため
### 実施内容
- 現行運用フローのドキュメント化 (21:38-21:39)
- 運用手順書を参照し、4フェーズの運用フローをMarkdownに記録
- 6種類のSlackリアクション管理、4種類の通知分類を含む詳細フローを文書化
- Mermaid図の作成と視認性改善 (21:39-21:46)
- 運用フローの完全なMermaidフローチャートを作成
- 視認性重視で再構成
### 変更ファイル
- Tasks/運用方針/現行運用フロー.md
- Tasks/運用方針/CLAUDE.md
## 運用方針プロジェクト (障害対応フロー)
### 目的
障害一次対応フローを視覚的に表現し、運用チームが参照できるドキュメントを作成するため
### 実施内容
- 障害一次対応フローのMermaid図作成 (22:12)
- スクリーンショット画像を読み取り、5フェーズのフロー定義をMermaid形式に変換
- Mermaidフローチャートの可読性向上とレイアウト最適化 (22:16)
- nodeSpacing/rankSpacingパラメータ追加、9種類のclassDefスタイル再定義
- 元画像との比較検証 (22:18)
- 5つの重要な改善点を特定(論理的矛盾、分岐構造の不整合、欠落ノード等)
- draw.io形式のダイアグラム作成 (23:02)
- MermaidフローチャートをXML形式のdraw.ioダイアグラムに変換
### 変更ファイル
- Tasks/運用方針/障害一次対応フロー.md
- Tasks/運用方針/障害一次対応フロー.drawio
## 学習ポイント
- エージェントチームの実践パターン: writer/reviewerの役割分離で比較表執筆とレビューを並行処理できた。セットアップコストを考慮すると、3タスク以上の並列処理で活用効果が高い
- Mermaid図の品質保証サイクル: 2件のフロー図作成で「画像読み取り→Mermaid変換→比較検証→修正」のワークフローが確立された。比較検証ステップを挟むことで論理的矛盾や欠落パスを早期発見できる
- stale-while-revalidateのCLI応用: Web系キャッシュ戦略をstatuslineスクリプトに適用。Node.jsのOS統合APIを活用した設計はパフォーマンスクリティカルなCLIツール全般に応用可能
## 改善提案
### Hooks提案
検出なし
### CLAUDE.md追記提案
- Blogs (Blogs/CLAUDE.md)
- 追記候補: 「エージェントチーム活用時のタスク分割基準(3タスク以上で活用、writer/reviewer分離パターン)」
- 検出理由: エージェントチームを初めて活用し、パーミッション制限→承認フローが発生するパターンを経験
### サブエージェント提案
検出なし
### コマンド提案(新規・改善)
- mermaid-flow (新規): 画像からMermaid図を生成する定型ワークフローをコマンド化
- 検出根拠: 2件のフロー図作成で「画像読み取り→Mermaid変換→比較検証→スタイル適用」を繰り返し実行
- 実装方針: 3回目の作図時に作成を検討。CLAUDE.mdの作図規約を参照する構成
### スキル提案(新規・改善)
- blog-review (新規): ブログ記事の品質レビューとスタイルガイド準拠チェック
- 検出根拠: 記事品質レビューで8項目のチェックリストを手動実行
- 実装方針: 3回以上のレビュー実行後に作成を検討
これまでは、セッションごとのhooksをもとにCLAUDE.mdやスラッシュコマンドの改善提示を行っていました。
claude-memを導入したことで、1日のセッションを横断したコンテキストを対象にレビューできるようになり、改善提案の精度を上げられたと感じています。
単純な日報作成などにも活用できるので、ぜひご活用ください。
最後に
今回はclaude-memを使ってClaude CodeとCursor間でコンテキストを共有する方法を紹介しました。
都度都度スラッシュコマンドで記録呼び出しのような手間がなく、シームレスにコンテキストを共有できるので私が当初あった課題はclaude-memを導入することで解消されました。
ただ、CLAUDE.mdファイルが大量に生成される仕様など気になる部分もあるので、導入にあたってはご自身で仕様を確認しつつ導入いただければと思います。
とはいえClaude CodeとCursorを両方使っている方には、エディタを跨いだ作業でも過去のコンテキストを効率的に共有できるので興味があればぜひ導入してみてください。
この記事が誰かのお役に立てれば幸いです。
以上、たかやま(@nyan_kotaroo)でした。









