📁

【Claude Code】CLAUDE.md の管理を効率化する CLI「ccmm」を作った

に公開

これは何

  • Claude Code の CLAUDE.md をプロジェクト間で共有するのがちょっと面倒に感じた
  • 共通化された CLAUDE.md を管理する CLI ツール ccmm を作った

背景

最近、Anthropic の Claude Code を使ってコーディングすることが多くなりました。もう改めて語るまでもないかもしれませんが、プランニングやコンテキスト管理の上手さなど、既存の AI コーディングツールとは一線を画していると感じます。

しかしその中で、ちょっと面倒だなと感じることがあります。それが今回のテーマであるCLAUDE.mdの管理です。
あるプロジェクトで書いたCLAUDE.mdの「この部分は Typescript プロジェクトには共通だな」、とか「この部分は React 特有だな」みたいなことってありませんか?
前のプロジェクトの内容をコピペすればいいと言えばそうなのですが、共通部分を選別する作業や、「このプロジェクトはどうもうまくいかないなと思ったら、一部分が古い指示のままだった!」とか、結構面倒です。

そこで、この問題を解決するツール ccmm (Claude Code Memory Manager) を作りました。

どんなツール?

ccmm は、Claude Code の memory ファイル CLAUDE.md を複数プロジェクト間で再利用・共有するための CLI ツールです。
npx ccmm initのように、npxで利用するか、npm install -g ccmm でインストールして利用できます。

仕組みとしてはシンプルで、ccmm syncを行うと、プロジェクト内のCLAUDE.mdに以下の内容が追記されます。

@~/.ccmm/projects/<slug>/merged-preset-<SHA>.md

実際のmemoryの内容は $HOME/.ccmm/ で管理されます。背景にある Claude Code のメモリのimportについてはこちらを確認ください。

そして、大元となる共通化された CLAUDE.md の内容は Github 上で管理します。ccmm init, ccmm config コマンドで、接続先リポジトリを管理します。

詳しい使い方はREADMEを見てください。簡単です。

主な機能

プリセット管理

ccmm sync              # プリセット取得・同期
ccmm edit react.md     # プリセットファイルを直接編集
ccmm extract           # CLAUDE.md の変更行をプリセットへ振り分け
ccmm push react.md     # CLAUDE-md リポジトリに変更を送信

設定系

ccmm init              # 初期設定
ccmm config list     # 接続先 CLAUDE-md リポジトリの一覧
ccmm config add      # 接続先 CLAUDE-md リポジトリの追加
ccmm config remove   # 接続先 CLAUDE-md リポジトリの削除

バージョン制御

ccmm lock <sha>        # 特定のコミットに固定
ccmm unlock            # HEAD追従モードに戻す

おわりに

CLI 自体も 100% Claude Code が書きました。凄い時代ですね。
o3 と壁打ちしたりしているうちに、extractがいるだの、lockがいるだの言われたので一応追加させましたが、正直、個人的にはsyncがあれば十分です。

Claude Code の設定管理という、比較的ニッチな問題を解決するツールですが、同じような課題を抱えている方には役立つかもしれません。

まだ粗い部分もありますが、もし興味があれば試してみてください。フィードバックや改善提案もお待ちしています。

https://github.com/Nasubikun/ccmm

ccmm って思いついて言いたくなっただけ、という要素が2割くらいあります。

Discussion