{"id":48918570,"url":"https://github.com/vulcanshen/clerk","last_synced_at":"2026-04-23T13:00:50.917Z","repository":{"id":351821372,"uuid":"1212639739","full_name":"vulcanshen/clerk","owner":"vulcanshen","description":"Auto-summarize Claude Code sessions as local markdown —  session summaries, keyword index, on-demand reports.","archived":false,"fork":false,"pushed_at":"2026-04-22T06:09:54.000Z","size":10648,"stargazers_count":20,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-22T12:02:59.523Z","etag":null,"topics":["anthropic","claude-code","claude-code-hooks","cli","cross-platform","golang","markdown","mcp","obsidian","productivity","report-generator"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vulcanshen.png","metadata":{"files":{"readme":"README.ja.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-16T15:23:47.000Z","updated_at":"2026-04-22T06:09:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"5cd6c8bc-d20e-4a63-a195-11eeed6c2b3a","html_url":"https://github.com/vulcanshen/clerk","commit_stats":null,"previous_names":["vulcanshen/clerk"],"tags_count":37,"template":false,"template_full_name":null,"purl":"pkg:github/vulcanshen/clerk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vulcanshen%2Fclerk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vulcanshen%2Fclerk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vulcanshen%2Fclerk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vulcanshen%2Fclerk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vulcanshen","download_url":"https://codeload.github.com/vulcanshen/clerk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vulcanshen%2Fclerk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32181374,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-23T11:42:27.955Z","status":"ssl_error","status_checked_at":"2026-04-23T11:42:18.877Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anthropic","claude-code","claude-code-hooks","cli","cross-platform","golang","markdown","mcp","obsidian","productivity","report-generator"],"created_at":"2026-04-17T04:04:44.999Z","updated_at":"2026-04-23T13:00:50.909Z","avatar_url":"https://github.com/vulcanshen.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# clerk\n\n[![GitHub Release](https://img.shields.io/github/v/release/vulcanshen/clerk)](https://github.com/vulcanshen/clerk/releases)\n[![Go Version](https://img.shields.io/github/go-mod/go-version/vulcanshen/clerk)](https://go.dev/)\n[![CI](https://img.shields.io/github/actions/workflow/status/vulcanshen/clerk/ci.yml?label=CI)](https://github.com/vulcanshen/clerk/actions)\n[![Go Report Card](https://goreportcard.com/badge/github.com/vulcanshen/clerk)](https://goreportcard.com/report/github.com/vulcanshen/clerk)\n[![License](https://img.shields.io/github/license/vulcanshen/clerk)](LICENSE)\n\n[English](README.md) | [繁體中文](README.zh-TW.md) | [한국어](README.ko.md)\n\nClaude Code のセッションはターミナルを閉じると消えてしまいます。clerk があれば、自分が何をしたか見失うことはありません。\n\n## 課題\n\nClaude Code を毎日使っているなら、こんな壁にぶつかったことがあるはずです：\n\n- **コンテキストの喪失** — `-c` や `--resume` を付け忘れて、ゼロからやり直し。前のセッションには完全なコンテキストがあったのに、大量のセッション ID の中から見つけ出すのは至難の業。\n- **セッションの混乱** — 複数のプロジェクト、複数のセッション、すべてが並行稼働。今朝 API サーバーで何をした？認証の修正はどのセッションだった？全く思い出せない。\n- **週報パニック** — 金曜の午後、週報の時間。`git log` を掘り返して、今週実際に何をしたか必死に思い出そうとする。\n- **手動の記録管理** — Claude に「要約を保存して」と頼んだけど、前回は忘れた。あるいはセッションがクラッシュした。あるいはターミナルを閉じた。コンテキストは消えた。\n\nこれらはすべて一つのことに帰結します：**Claude Code はセッション間の記憶を持たない。そしてあなたが覚えておく必要もないはずです。**\n\n## 解決策\n\n```bash\nclerk install\n```\n\n以上です。clerk は完全にローカルで動作します — リモートサービスへの接続なし、アカウント不要、データがマシンの外に出ることはありません。必要なのは Claude Code だけです。\n\nclerk は Claude Code に連携し、バックグラウンドで静かに動作します：\n\n| 課題 | clerk の解決方法 |\n|------|----------------|\n| コンテキストの喪失 | `/clerk-resume` — 以前のセッションからコンテキストを即座に復元 |\n| セッションの混乱 | プロジェクトごとの日次要約を自動生成、日付別に整理 |\n| 週報 | `clerk report --days 7` — AI が生成するレポート、日付別・プロジェクト別に整理、そのまま貼り付け可能 |\n| 手動の記録管理 | 完全自動 — 覚えるコマンドなし、身につける習慣なし |\n\nclerk は**一度設定したら忘れていい**ツールです。一度インストールするだけで、すべてのセッションが自動的に要約、追跡、タグ付け、検索可能になります。コンテキストが必要になったら、スラッシュコマンド一つで呼び出せます。週報が必要な時も、いつでもすぐに：\n\n```bash\nclerk report --days 7\n```\n\n\u003e **注意：** clerk は AI メモリツールではありません。claude-mem のようなツールは AI が思い出すためのコンテキストを保存します。clerk は**あなた**が読むための要約を保存します — 日付別に整理され、キーワードで検索でき、週次レビューにすぐ使えます。\n\n## 機能\n\n- **自動要約** — Claude Code セッション終了時に増分要約を自動生成\n- **レポート生成** — `clerk report --days 7` でサマリー・日付別・プロジェクト別の3視点で週次レポートを生成\n- **コンテキスト復元** — `/clerk-resume` で前回のセッションからコンテキストを再構築\n- **セマンティック検索** — `/clerk-search` で AI セマンティック推論による過去の作業検索\n- **Obsidian 互換** — 出力ディレクトリを Obsidian vault として使用可能、タグのグラフビュー対応\n- **セッション追跡** — 履歴検索のためにすべてのセッション開始を記録\n- **タグシステム** — 要約からキーワードを自動抽出し、検索可能なインデックスを構築\n- **カーソル追跡** — 前回以降の新しいメッセージのみを処理し、トークンと時間を節約\n- **プロセス管理** — アクティブな feed の監視、強制終了、中断されたものの再試行\n- **プロジェクトレベル設定** — プロジェクトごとに feed を無効化、グローバル設定を上書き\n- **ワンコマンド設定** — `clerk install` でフック、MCP サーバー、スキルを一括設定\n- クロスプラットフォーム：macOS、Linux、Windows\n- シェル補完（bash、zsh、fish、powershell）\n\n## 仕組み\n\n### インストールされるもの\n\n| コンポーネント | 機能 |\n|----------------|------|\n| **hook** | SessionStart でセッション ID を記録、SessionEnd で要約生成をトリガー |\n| **mcp** | `clerk-resume` と `clerk-search` ツールを提供する MCP stdio サーバー |\n| **skills** | Claude Code 用の `/clerk-resume` と `/clerk-search` スラッシュコマンド |\n\n### 要約フロー\n\n1. セッション終了 → フックが `clerk feed` をトリガー\n2. Feed がバックグラウンドにフォーク（フックは即座に返る）\n3. 前回以降の新しいメッセージのみを読み取り（カーソル追跡）\n4. 既存の日次要約を読み込み、`claude -p` を呼び出してマージ\n5. 更新された要約を保存 + 検索インデックス用のタグを抽出\n\n### 復元フロー\n\n1. Claude Code で `/clerk-resume` と入力\n2. Claude がプロジェクトの作業ディレクトリを指定して `clerk-resume` MCP ツールを呼び出す\n3. clerk がファイルパスを返す：日次要約 + 完全なトランスクリプトファイル\n4. Claude がまず要約を読み取り、概要を素早く把握\n5. より詳細が必要な場合、Claude がトランスクリプトファイルを読み取る\n6. Claude が以前の作業内容を要約し、コンテキストが復元されたことを確認\n\n### 検索フロー\n\n1. Claude Code で `/clerk-search` と入力\n2. Claude が検索したいキーワードを尋ねる（または引数として直接指定）\n3. Claude が `clerk-tags-list` を呼び出して利用可能なすべてのタグを取得\n4. Claude がセマンティック推論で関連タグを特定（例：「database」→ `postgres`、`sql`、`migration` を選択）\n5. Claude が `clerk-tags-read` を呼び出して関連タグの要約とトランスクリプトのパスを取得\n6. Claude がそれらのファイルを読み取り、関連するコンテキストを提示\n\n```\n~/.clerk/\n├── summary/\n│   └── 20260416/\n│       ├── projects-my-app.md\n│       └── work-frontend.md\n├── sessions/\n│   ├── projects-my-app.md\n│   └── work-frontend.md\n├── tags/\n│   ├── mcp.md\n│   ├── refactor.md\n│   └── auth.md\n├── log/\n│   └── 20260416-clerk.log\n├── running/\n└── cursor/\n```\n\n## レポート\n\n金曜の午後、週報の時間？コマンド一つで：\n\n```bash\nclerk report --days 7\n```\n\nclerk が過去7日間のすべての要約を読み取り、Claude に送って整理し、3つの視点で構造化レポートを出力します：\n\n- **サマリー** — 期間全体の概要、プロジェクト別に整理\n- **日付別** — 各日に何をしたか、プロジェクト別に分類\n- **プロジェクト別** — 各プロジェクトの進捗、日付別に分類\n\nstdout に出力。保存、貼り付け、お好みで：\n\n```bash\nclerk report --days 7 \u003e weekly-report.md\n```\n\nデフォルトは `--days 1`（当日のみ）— デイリースタンドアップの要約に最適。\n\n出力例：\n\n```markdown\n### サマリー (2026-04-14 ~ 2026-04-18)\n\n#### my-api-server\nJWT によるユーザー認証の実装、レート制限ミドルウェアの追加、\n高負荷時のコネクションプールリークの修正。\n\n#### frontend-app\nVue 2 から Vue 3 への移行、Vuex を Pinia に置き換え、全ユニットテストを更新。\n\n---\n\n### 日付別\n\n#### 2026-04-14\n- **my-api-server**: リフレッシュトークンローテーション付き JWT 認証を構築\n- **frontend-app**: Vue 3 移行開始、ビルド設定を更新\n\n#### 2026-04-16\n- **my-api-server**: レート制限ミドルウェア追加、コネクションプールリーク修正\n- **frontend-app**: Vuex を Pinia に置き換え、12 ストアモジュールを移行\n\n---\n\n### プロジェクト別\n\n#### my-api-server\n- **2026-04-14**: リフレッシュトークンローテーション付き JWT 認証\n- **2026-04-16**: レート制限ミドルウェア、コネクションプールリーク修正\n\n#### frontend-app\n- **2026-04-14**: Vue 3 移行開始、ビルド設定更新\n- **2026-04-16**: Vuex → Pinia 移行、12 ストアモジュール変換\n```\n\n## インストール\n\n### クイックインストール\n\nmacOS / Linux / Git Bash：\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/vulcanshen/clerk/main/install.sh | sh\n```\n\nWindows（PowerShell）：\n\n```powershell\nirm https://raw.githubusercontent.com/vulcanshen/clerk/main/install.ps1 | iex\n```\n\n次にフック、MCP サーバー、スキルを設定します：\n\n```bash\nclerk install\n```\n\n### パッケージマネージャー\n\n| プラットフォーム | コマンド |\n|------------------|----------|\n| Homebrew（macOS / Linux） | `brew install vulcanshen/tap/clerk` |\n| Scoop（Windows） | `scoop bucket add vulcanshen https://github.com/vulcanshen/scoop-bucket \u0026\u0026 scoop install clerk` |\n| Debian / Ubuntu | `sudo dpkg -i clerk_\u003cversion\u003e_linux_amd64.deb` |\n| RHEL / Fedora | `sudo rpm -i clerk_\u003cversion\u003e_linux_amd64.rpm` |\n\n### ソースからビルド\n\n```bash\ngo install github.com/vulcanshen/clerk@latest\n```\n\n## コマンド一覧\n\n| コマンド | 説明 |\n|----------|------|\n| `install` | すべてのコンポーネントをインストール（hook + mcp + skills） |\n| `install hook` | SessionStart/SessionEnd フックのみをインストール |\n| `install mcp` | MCP サーバーのみを登録 |\n| `install skills` | スラッシュコマンドスキルのみをインストール |\n| `uninstall` | すべてのコンポーネントを削除 |\n| `config` | 現在の設定を表示（`config show` のエイリアス） |\n| `config show` | マージされた設定とファイルパスを表示 |\n| `config set \u003ckey\u003e \u003cvalue\u003e` | プロジェクトレベルの設定値を変更 |\n| `config set -g \u003ckey\u003e \u003cvalue\u003e` | グローバル設定値を変更 |\n| `status` | アクティブな feed プロセスと中断されたセッションを表示 |\n| `status --watch` | ステータスをリアルタイム更新（毎秒） |\n| `retry \u003cslug\u003e` | 指定した中断セッションを再試行 |\n| `retry --all` | すべての中断セッションを再試行 |\n| `kill \u003cslug\u003e` | 指定したアクティブ feed プロセスを強制終了 |\n| `kill --all` | すべてのアクティブ feed プロセスを強制終了 |\n| `report` | 最近の要約からレポートを生成（デフォルト：当日） |\n| `report --days 7` | プロジェクト横断の週次レポート |\n| `version` | clerk のバージョンを表示 |\n| `moveto \u003cpath\u003e` | clerk データを新しいディレクトリに移動し設定を更新 |\n| `migrate` | データディレクトリ構造を最新形式に移行（v3.0.0 からのアップグレード後に実行） |\n\n内部コマンド（フックから呼び出されるもので、ユーザーが直接使用するものではありません）：\n\n| コマンド | 説明 |\n|----------|------|\n| `feed` | セッションのトランスクリプトを処理し要約を生成 |\n| `punch` | セッション開始時にセッション ID を記録 |\n| `mcp` | MCP stdio サーバーを起動 |\n\n## 設定\n\n### 設定ファイル\n\n- グローバル：`~/.config/clerk/.clerk.json`\n- プロジェクト：`\u003ccwd\u003e/.clerk.json`（グローバル設定を上書き）\n\n### 利用可能な設定\n\n```json\n{\n  \"output\": {\n    \"dir\": \"~/.clerk/\",\n    \"language\": \"en\"\n  },\n  \"summary\": {\n    \"model\": \"\"\n  },\n  \"log\": {\n    \"retention_days\": 30\n  },\n  \"feed\": {\n    \"enabled\": true\n  }\n}\n```\n\n| 設定項目 | デフォルト値 | 説明 |\n|----------|-------------|------|\n| `output.dir` | `~/.clerk/` | 要約の保存ルートディレクトリ |\n| `output.language` | `en` | 要約の出力言語 |\n| `summary.model` | `\"\"`（claude デフォルト） | `claude -p` で使用するモデル |\n| `log.retention_days` | `30` | ログとカーソルファイルの保持日数 |\n| `feed.enabled` | `true` | このプロジェクトの feed を有効/無効にする |\n\n### 使用例\n\n```bash\n# 特定のプロジェクトで feed を無効化\ncd /path/to/unimportant-project\nclerk config set feed.enabled false\n\n# グローバルでより安価なモデルを使用\nclerk config set -g summary.model haiku\n\n# グローバルで出力言語を変更\nclerk config set -g output.language en\n```\n\n## MCP ツール\n\nMCP サーバーのインストール後に利用可能（`clerk install mcp`）。これらは Claude Code がスキルを通じて呼び出すもので、直接使用する必要はありません：\n\n| ツール | 説明 |\n|--------|------|\n| `clerk-resume` | コンテキスト復元のための要約 + トランスクリプトファイルパスを返す |\n| `clerk-tags-list` | 利用可能なすべてのセッションタグを一覧表示 |\n| `clerk-tags-read` | 1つ以上のタグの内容を読み取る |\n\n## スキル\n\nスキルのインストール後に利用可能（`clerk install skills`）：\n\n| スキル | 説明 |\n|--------|------|\n| `/clerk-resume` | 前回のセッションからコンテキストを復元 — MCP ツールを呼び出し、ファイルを読み込み、コンテキストを再構築 |\n| `/clerk-search` | キーワードで過去のセッションを検索 — MCP ツールを呼び出し、一致するファイルを読み込み |\n\n## トラブルシューティング\n\nログは `~/.clerk/log/YYYYMMDD-clerk.log` に保存されます：\n\n```bash\ncat ~/.clerk/log/$(date +%Y%m%d)-clerk.log\n```\n\nよくある問題：\n\n- **要約が生成されない** — `claude` が PATH にあるか確認\n- **Hook cancelled** — clerk はバックグラウンドフォークで対応済み。最新版にアップデート\n- **MCP ツールが見つからない** — `clerk install mcp` を実行してセッションを再起動\n\n## シェル補完\n\n```bash\n# Zsh\nmkdir -p ~/.zsh/completions\nclerk completion zsh \u003e ~/.zsh/completions/_clerk\necho 'fpath=(~/.zsh/completions $fpath)' \u003e\u003e ~/.zshrc\necho 'autoload -Uz compinit \u0026\u0026 compinit' \u003e\u003e ~/.zshrc\nsource ~/.zshrc\n\n# Bash\nclerk completion bash \u003e /etc/bash_completion.d/clerk\n\n# Fish\nclerk completion fish \u003e ~/.config/fish/completions/clerk.fish\n\n# PowerShell\nclerk completion powershell \u003e clerk.ps1\n```\n\n## ライセンス\n\n[GPL-3.0](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvulcanshen%2Fclerk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvulcanshen%2Fclerk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvulcanshen%2Fclerk/lists"}