Serenaとは?
Claude Codeはセッションを落とすと、それまで話していた内容を忘れてしまうので、claude
コマンドを実行してセッションを開始する度に、何度も同じことを伝えたりしていませんか?
これをやっているとトークンの無駄遣いになってしまいますから、たとえMaxプランを使っていてもすぐにレートリミットに達してOpus4からSonnet4に切り替わってしまうという問題があります。
これを解決するであろう心強い味方になるのが、今回使ってみるSerenaです。
Serenaは、Claude Codeに繋げるMCPサーバで、Claude Codeに伝えた知識や作業を、Claude Codeがあとから見て理解しやすい形で.serena/memories/
に.md方式で保存してくれるというシロモノです。
ディレクトリ単位で.serena/memories/
に保存するので、プロジェクトファイルが違う時に会話内容が混ざったりしません。
Github公式リポジトリ:https://github.com/oraios/serena
実行環境
今回のサンプルコードは以下の環境下で行ったものです。
基本的にmacでapple siliconのものであれば同様のコマンドでいけます。
Windowsは2025年8月11日現在不具合が報告されているので、WSLを使ったほうがいいみたいです。
- Apple M2
- Sequia 15.5
Serenaをインストール
公式READMEのUsing uvxに書いてある通りのコマンドでいけるのでこの工程はそちらを見たほうがいいです。
ただ、記録としてここに記しておきます。
今回はuvをHomebrewでインストールするところから行います。
uvが入っている人はこの工程は不要です。
brew install uv
uv --version
uvが入ったら、以下のコマンドでserenaを入れて、MCP接続、起動まで終わらせてしまいましょう。
ちなみに以下を実行するのは、実際によく使うプロジェクトルートディレクトリで行ったほうがいいです。理由は、このコマンドではserena起動をclaudeコマンド実行時に自動で行うように設定するコマンドも含んでるからです。
claude mcp add-json "serena" \
'{"command":"uvx","args":["--from","git+https://github.com/oraios/serena","serena-mcp-server"]}'
上記コマンドの意味を説明します。1行で書いているだけで、公式READMEとやっていることは変わりません。
-
claude mcp add-json
:Claude CodeのMCP(Model Context Protocol)に、新しいツールを登録 -
"command":"uvx"
:uvx は uv のサブコマンドで、これを使ってserenaを一時インストール&実行 -
"--from","git+https://github.com/oraios/serena"
:GitHubのoraios/serenaリポジトリからserenaを直接取得 -
"serena-mcp-server"
:SerenaのMCPサーバを起動するエントリポイント
上記コマンドを実行すると、起動まで行ってくれます。起動コマンドのserena-mcp-serverはディレクトリに依存するため、よく使うプロジェクトルートディレクトリで上記コマンドを行えば、claude
コマンドを行ったときにserenaのMCPサーバが自動で起動するようにできます。
上記コマンドを実行したら、http://127.0.0.1:24282/dashboard/index.html
のページが開きます。
ここでserenaのログが確認できます。
もし、別ディレクトリでもClaude Codeを起動したら一緒にserenaも起動するようにしたい場合は、そのディレクトリで以下のコマンドを実行してください。
claude mcp add-json "serena" \
'{"command":"uvx","args":["--from","git+https://github.com/oraios/serena","serena-mcp-server"]}'
ちなみに毎回手動で起動させたいなら以下のコマンドで起動してください。
uvx --from git+https://github.com/oraios/serena serena-mcp-server
本当に自動で起動しているか確認したい場合、claudeコマンド実行後に/status
で確認ができます。
他にも、claude
コマンドを実行する前の状態で以下のコマンドでMCPサーバの一覧を出力させることができます。
claude mcp list
serenaを使ってみる
ターミナルで適当なディレクトリを作って、そこでuvx --from git+https://github.com/oraios/serena serena-mcp-server
でserenaを起動します。
その後、いつも通りclaude
コマンドを打ってください。
serenaのMCPサーバが立ち上がり、http://127.0.0.1:24282/dashboard/index.html
のページが開きます。
これでserenaが起動することが確認できました。
あとは適当なテキストファイルを作成します。
そのディレクトリで claude コマンドを実行します。
初回は「Do you trust the files in this folder?」と聞かれるので Yes, proceed を選択してください。
Claude Codeが立ち上がったら、入力欄に以下のプロンプトを貼り付けます。
Use Serena. Only work in the current folder (do not scan parent or hidden dirs).
Create `.serena/memories/` and save three files:
- project_overview.md (1–2 sentences about this tiny repo)
- code_layout.md (list created files with one-line purpose)
- key_tasks.md (bullet list with 2 items)
Then list the files you created.
Claudeの作業が終わったら、Claudeは/exit
かCtrl+Dなどで一度落とします。
再びClaude Codeを起動して、Claude Codeに「さっき行った作業を教えて」と聞くと、
裏で .serena/memories/ を参照して要約して返してくるはずです。
ただ、LLMは一時メモリを優先することもあるので以下のようになプロンプトで丁寧に聞いてあげると詳細な答えが返ってくるはずです。
Serenaを使って、`.serena/memories/` の内容を読み込んで、保存した内容を要約してください。
serena使い方あれこれ
基本的にはSerenaのMCPサーバを立ち上げておいてClaude Codeで会話をしていると、途中途中でSerenaの更新を提案してくれるのですが、これは絶対覚えておいてほしい!ということがあるときはプロンプトでClaude Codeに指示を出して、保存を促すことができます。
ここでは、私がその時に使っているプロンプトを紹介します。
Clade Codeに今やらせているコードの変更内容を覚えておいてほしい
以下のようなプロンプトをClaude Codeに投げればserenaが記録をとってくれます。
Use Serena. Only work in the current folder; do not scan parents or hidden dirs.
Get the list of changed files from `git diff --name-only`.
For each file:
- Summarize the changes in 1–2 sentences.
- Update `.serena/memories/code_layout.md` if structure or purpose changed.
Append all summaries as bullet points to `.serena/memories/key_tasks.md`.
Confirm the diff of updated memory files.
Claude CodeなどのLLMは英語で伝えたほうが要求通りに動いてくれるので、上記のように指示を出して使っていますが、日本語の意味としては以下です。以下の日本語で指示を出してもいけるとは思います。
Serenaを使ってください。現在のフォルダだけを対象にし、親ディレクトリや隠しディレクトリはスキャンしないでください。
`git diff --name-only` で変更されたファイル一覧を取得してください。
各ファイルについて:
- 変更内容を1〜2文で要約してください。
- 構造や用途に変更があった場合は `.serena/memories/code_layout.md` を更新してください。
すべての要約を箇条書きとして `.serena/memories/key_tasks.md` に追加してください。
更新されたメモリファイルの差分を確認してください。
Claude Codeセッションで行った会話の要約を残す
作業や議論が一段落した時に、その会話内容を整理して保存して、次のセッションで再開するとき、過去の流れをすぐ把握できるようにしたい場合は以下のプロンプトを投げましょう。
Use Serena. Summarize our recent conversation into decisions, reasons, and next actions.
Save to `.serena/memories/logs/<today>-session.md` with sections:
- Decisions
- Rationale
- Next Actions (checkbox list)
Then list the saved file.
このプロンプトの日本語訳は以下
Serenaを使ってください。
私たちの最近の会話を「決定事項」「理由」「次のアクション」に要約してください。
結果を `.serena/memories/logs/<今日の日付>-session.md` というファイルに保存し、セクションは以下の構成にしてください:
- Decisions(決定事項)
- Rationale(理由)
- Next Actions(次のアクション。チェックボックス形式のリスト)
最後に、保存したファイルの一覧を表示してください。