エンジニアリングノートブック (engineering-notebook)

Tool

概要

Engineering Notebook は、Anthropic の Claude Code で行ったコーディング/対話セッションのトランスクリプトを取り込み、自動的に要約とメタデータを生成して「工学的な日誌(エンジニアリングノート)」として保存・閲覧できる CLI ツールです。ローカルのセッションディレクトリをスキャンして会話やコードの断片を抽出し、LLM による日次サマリやトピックごとの要約を作成。さらに簡易な Web UI を立ち上げて、時間軸で振り返ったり検索したりできるようにします。開発者が作業ログを手動で整理する手間を省き、意思決定の経緯や問題解決の過程をドキュメント化するためのワークフローを提供します。

GitHub

リポジトリの統計情報

  • スター数: 10
  • フォーク数: 1
  • ウォッチャー数: 10
  • コミット数: 30
  • ファイル数: 10
  • メインの言語: TypeScript

主な特徴

  • Claude Code セッションのトランスクリプト取り込みと自動解析:ディレクトリを走査してセッション記録を抽出し、会話・コード断片・ファイル操作などを分離して扱えるようにする。
  • LLM による日次サマリ生成:各日の作業を LLM に要約させ、問題点、決定事項、未解決タスクを明確にすることで振り返りを容易にする。
  • ブラウズ可能な Web UI を提供:生成されたサマリと元のトランスクリプトをタイムラインや検索インターフェイスで閲覧可能。
  • CLI ベースのワークフロー:ローカルで実行する CLI を通してインジェスト、要約、サーブ(Web UI 起動)などの操作を行う設計。

技術的なポイント

Engineering Notebook は TypeScript で実装され、bun.lock が含まれていることから Bun 環境での実行や依存管理を想定しています。ツールの中心的なフローは「インジェスト → 要約(LLM 呼び出し) → 永続化 → サーブ」の 4 段階で、各段階における注目点は以下の通りです。

インジェスト段階ではファイルシステムを走査し、Claude Code のセッション形式(トランスクリプトや JSON ログなど)をパースして、発話ごとやコードスニペットごとに分割します。解析時にタイムスタンプ、参加者(ユーザ / モデル)、言語(ナチュラル・コード)といったメタデータを付与することで、後段の要約や検索で精度の高いフィルタリングが可能になります。

要約フェーズは外部 LLM(README にある Claude Code)を活用することが想定され、API 呼び出しでセッションのまとまり(例:日次・トピック単位)を送り、タスク、障害、決定事項、コードの重要スニペットといったカテゴリーに分けて要約を生成します。実運用ではプロンプト設計やトークンコスト、要約の再現性(同一入力での一貫性)に配慮し、長大なトランスクリプトをチャンク分割して逐次要約→集約するストラテジーを取ることが多いです。

永続化はリポジトリ構成から明確な DB は見えませんが、ローカルファイル(JSON/YAML)や軽量 DB(SQLite)への保存、あるいはインデックス生成(全文検索用のメタデータ)を行う設計が自然です。保存物には元トランスクリプトの参照、生成サマリ、タイムライン、タグ付け情報などが含まれ、Web UI はこれらを読み出して動的に表示します。

サーブ(Web UI)部分はシンプルなブラウズインターフェイスを提供し、日付フィルタ、タグ検索、キーワード検索、サマリと元発話の相互参照が可能です。実装は TypeScript/フロントエンドフレームワーク(React/Vite など)を想定できますが、README が示す目的は「簡単に振り返れるジャーナル」を立ち上げる点にあり、ローカルホストで完結する構成になっている可能性が高いです。

セキュリティとプライバシーの観点では、ローカルでセッションを扱い、外部 API(Anthropic)へは要約リクエスト時に限定して通信するムーブが適切です。API キーの管理、送信データの最小化、トークン量削減のための差分送信やメタデータ先行抽出といった実装上の配慮が必要になります。CLI によるワークフロー自動化は、開発者の日次作業ログを低摩擦で記録する点で有用であり、CI 連携やチーム共有の導入余地も残されています。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .github: dir — GitHub Actions 等のワークフローを置くためのディレクトリ(PR テンプレや CI 設定がある可能性)
  • .gitignore: file — ビルド成果物や環境依存ファイルを除外
  • LICENSE: file — ライセンス情報
  • README.md: file — プロジェクトの使い方と設計意図(抜粋あり)
  • bun.lock: file — Bun 用のロックファイル、Bun を使った依存管理を示唆
  • src/: 想定ディレクトリ(TypeScript ソース) — CLI コマンド実装、インジェスト・要約ロジック・サーバー起動コードを内包
  • package.json / bunfig 相当: 想定ファイル — スクリプト定義、依存、エントリポイント
  • web/: 想定ディレクトリ — Web UI の静的ファイルやフロントエンドコード(React/Vite 等)
  • data/ または storage/: 想定ディレクトリ — 生成サマリやメタデータの保存先(JSON/SQLite など)
  • scripts/ または bin/: 想定ファイル — 実行可能 CLI ラッパーやユーティリティ

典型的なワークフロー(想定コマンド例):

  • engineering-notebook ingest ./claude-sessions — ローカルディレクトリをスキャンしてトランスクリプトを取り込む
  • engineering-notebook summarize —daily — 取り込んだセッションを LLM で日次サマリに変換
  • engineering-notebook serve —port 3000 — Web UI を起動してブラウズ可能にする

補足:リポジトリ自体は比較的シンプルなファイル数・コミット数で、実証的な MVP(最小実用プロダクト)としてローカル中心のワークフローを提供する構成に見えます。拡張点としてはチーム共有ストレージ、認証、検索インデックス(Elasticsearch/MeiliSearch など)、細かな UI/UX 改善が考えられます。

まとめ

Claude Code セッションを自動で日誌化する実用的な CLI ツールで、個人の作業記録を手軽にドキュメント化・検索・振り返りできる点が魅力です。

リポジトリ情報:

READMEの抜粋:

Engineering Notebook

A CLI tool that ingests Claude Code session transcripts, generates LLM-powered daily summaries, and serves a web UI for browsing your engineering journal.

Think of it as an automatic engineering diary — it watches your AI coding sessions and distills them into a searchable, browsable narrative of what you built, what problems you hit, and what decisions you made.

How It Works

  1. Ingest — Scans directories of Clau…