0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

KIOKU v0.7.0 — Gemini / Codex CLI でも自動セッションログが走る (マルチエージェント Hook 移植)

0
Posted at

Generated Image April 16, 2026 - 10_20PM.jpg

Claude Code / Desktop の記憶 OSS「KIOKU」の v0.7.0 を 2026-04-28 にリリースしました。

  • 🔀 マルチエージェントの自動セッションログ (主役) — Gemini CLI / Codex CLI で会話すると自動で session-logs/ に記録される (v0.6 ではスキル共有のみ、v0.7 で記憶共有まで完成)
  • 📚 マルチエージェント MCP セットアップ手順書 — Codex / Gemini / OpenCode への導入手順を 3 エージェント分公式化 (英語 + 日本語、未検証バナー付き)
  • 🎬 Visualizer α (kioku_generate_viz) — Wiki の成長を時間軸で見る最初の HTML 出力 (UI はラフ、v0.8 で polish)
  • verify-multi-agent-e2e.sh — 導入後の 6 ステップ対話式の動作確認スクリプト

v0.6 でスキルが共有された second brain、v0.7 で記憶も共有される」リリースです。

前提 (KIOKU を初めて見る方向け)

Claude Code は過去のセッションで得た知識をどんどん忘れます。KIOKU はあなたが Claude と話した記憶を自動で Wiki に蓄積し、次のセッションで呼び戻せるようにする OSS です。Obsidian Vault 上に構造化されたナレッジベース (Andrej Karpathy の LLM Wiki パターン がベース) を作って、Git で複数マシン間同期します。

v0.6 でマルチエージェント対応 (Codex CLI / OpenCode / Gemini CLI でスキル共有) を入れたので、合わせて v0.6 記事 も読んでもらえると context がつながります。

v0.6 で残っていた隔たり

v0.6 の setup-multi-agent.sh は KIOKU のスキルディレクトリを各エージェントのスキル配置場所にシンボリックリンクで貼る手順で、これで /wiki-ingest などのスラッシュコマンドは Codex / Gemini / OpenCode から呼べるようになりました。

ただ、KIOKU の重要機能の 1 つ「会話している間、勝手に session-logs/ に Markdown が積まれる」は Claude Code の Hook システム専用 でした。

v0.6 までの実態:

エージェント スキル共有 (v0.6) 自動セッションログ (v0.6)
Claude Code
Codex CLI
Gemini CLI
OpenCode

スキルは呼べるが自動記憶は走らない、という中途半端な状態でした。

1. マルチエージェントの自動セッションログ — Hook の移植

変更点

hooks/session-logger.mjs (591 行モノリシック) を エージェント非依存 core + 3 adapter 構造にリファクタしました:

hooks/
├── session-logger.mjs         (core: エージェント非依存)
├── adapters/
│   ├── claude.mjs             (Claude Code の Hook スキーマを正規化)
│   ├── gemini.mjs             (Gemini CLI の Hook スキーマを正規化)
│   └── codex.mjs              (Codex CLI の Hook スキーマを正規化)
└── _common.mjs                (safeMain — exit-0 契約)

各アダプターがエージェント固有の Hook 入力を NormalizedEvent という共通型に変換し、core 側はそれだけを見る構造。マスキングのパイプライン / frontmatter 生成 / session-logs/ 配置先決定はすべて core に集約。

v0.7 の状態

エージェント スキル共有 自動セッションログ
Claude Code
Codex CLI
Gemini CLI
OpenCode Hook 用アダプターは v0.7.x に持ち越し (MCP 手順書のみ)

導入

# Gemini CLI 用の Hook を導入
bash scripts/install-hooks-gemini.sh --apply

# Codex CLI 用も同様
bash scripts/install-hooks-codex.sh --apply

# 差分だけ確認したい場合
bash scripts/install-hooks-gemini.sh --probe

--apply は jq による冪等マージで、既存の Hook 設定を壊さずに追記します。

動作確認

# Gemini CLI を起動して何か会話してから...
gemini

# session-logs/ の最新ファイルを確認
ls -lt $OBSIDIAN_VAULT/session-logs/ | head -5
# → frontmatter に agent: gemini が入った Markdown が並ぶ

2. マルチエージェント MCP セットアップ手順書 (Codex / Gemini / OpenCode)

変更点

KIOKU の MCP サーバー自体はエージェント非依存 (stdio + JSON-RPC) で、技術的には Codex / Gemini / OpenCode のどれでも繋がるはずでしたが、各エージェントの設定手順書がゼロでした。

v0.7 で docs/install-guide-multi-agent.md (英語) + .ja.md (日本語) を新設、3 エージェントそれぞれの:

  • 設定ファイルの場所: ~/.codex/config.toml / ~/.gemini/settings.json / ~/.config/opencode/opencode.json
  • 設定スニペット: コピー & ペースト可能な JSON / TOML
  • 動作確認コマンド: codex mcp lsgemini mcp ls 相当の手順
  • トラブルシューティング: 既知の制約と対処

「未検証」バナー

各エージェントの節の冒頭に Verification status: 未検証 (delegation 環境で install 不可) というバナーを明示掲載しています。これは「この手順書の内容が動くかどうかを KIOKU 作者が手元の委譲環境で完全には検証できなかった」ことを読者に正直に伝えるシグナルです。

マルチエージェントの手順書で「動くと書いてあるけど環境次第で動かない」のはありがちな失敗パターンなので、検証できなかった部分を明示するほうが信頼につながると判断しました。動作報告をもらえればバナーを取る、というスタンス。

3. Visualizer α — kioku_generate_viz MCP tool

変更点

v0.6 で内部ライブラリ (mcp/lib/git-history.mjs + wiki-snapshot.mjs) は land 済でしたが、ユーザーが呼べる MCP tool は無い状態でした。v0.7 でその tool を追加:

# Claude Desktop / Claude Code で
"kioku_generate_viz tool で wiki/some-page の成長 timeline を作って"

→ vault/wiki/some-page.html が生成される

生成される HTML は、git history から該当ページの過去の commit を全部辿って、時系列にスナップショットを並べたビューア。Obsidian の Graph View が「ページ間の関係を空間的に見る」ものだとしたら、これは「1 ページの時間軸での成長を見る」もの。

XSS の hardening

生成された HTML はユーザーの vault に置かれて Obsidian で開かれるので、入念な hardening を入れました:

  • スナップショット JSON は safeJsonForScript</, U+2028, U+2029 を escape (</script> injection 等を遮断)
  • DOM 描画は createElement + textContent のみ、innerHTML ゼロ
  • インラインスタイルは CSS に静的に記述、ユーザーコンテンツから動的生成しない

α であることの正直さ

現時点では UI がラフです。スナップショットを時系列に並べた静的な HTML で、Timeline Player (アニメーション) や Diff Viewer (2 時点の差分を色分け) は v0.8 で仕上げ予定

それでも v0.7 で出したのは「時間軸で wiki を見る」という体験への最初の触れ方をユーザーに提供したかったから。

4. verify-multi-agent-e2e.sh — 6 ステップ対話式の動作確認スクリプト

変更点

install-hooks-gemini.sh --apply を走らせた後、ユーザーは「自分の Gemini で本当にセッションログが記録されるようになったか」を確認したくなります。v0.6 までは session-logs/ を手動で ls する程度で確証が薄かった。

v0.7 で 6 ステップの対話式の確認スクリプトを追加:

bash scripts/verify-multi-agent-e2e.sh --agent=gemini

# Step 1: gemini --version 確認
# Step 2: 認証リマインダー (login しているか)
# Step 3: install-hooks --probe で差分表示 → 確認プロンプト
# Step 4: 設定ファイルの構造確認 (jq で必須イベントキーを検証)
# Step 5: 別ターミナルで 1 セッション走らせるよう案内
# Step 6: session-logs/ の最新ファイルを inspect
#   - frontmatter の agent タグ確認 (gemini と書かれている)
#   - マスキングの spot check (テスト API キーを仕込んで *** に置換されているか確認)
#   - Codex は per-turn の git-sync を計上 (commit 数が想定通り)

ステップ 6 で 「マスキング spot check pass」「per-turn git-sync 1 件確認」 が緑で出れば、ユーザーは dogfood する根拠を得られます。

セキュリティ実装の前進

v0.6 では SECURITY.md に CVE 分類 + Safe Harbor + 90 日 Coordinated Disclosure を入れて ポリシーを形式化 しました。v0.7 はその実装側をエージェント境界まで及ぼす方向:

  • agent-aware self-recursion guard (§43): buildContext({ agent }) で Claude のみ self-recursion guard を発火させ、Gemini / Codex では skip。Claude の auto-ingest が claude -p を spawn する経路だけ guard が必要で、Gemini / Codex には該当する再帰経路がないので guard を narrow した
  • アダプターの exit-0 契約 (safeMain): 3 アダプターでエージェントの CLI を絶対にクラッシュさせない (DoS-by-self-fault 防止)
  • マスキングのパイプラインを全エージェントに適用: applyMasks() を core に集約、アダプターを迂回して生のシークレットが session-logs/ に書かれる経路がない
  • NormalizedEvent の core 再検証: アダプターは信頼しない (untrusted) 契約、攻撃者がエージェントのプロセスから偽造イベントを注入しても core で reject

「Hardened LLM Wiki for Professionals」の Hardened 部分が、v0.6 の policy 化 → v0.7 のエージェント境界実装、と段階的に厚くなっています。

前バージョンからのアップグレード

v0.6 → v0.7

# 既存 clone で
git pull origin main

# setup-vault 再実行 (冪等)
bash scripts/setup-vault.sh

# Gemini でセッションログを取る場合
bash scripts/install-hooks-gemini.sh --apply

# Codex でセッションログを取る場合
bash scripts/install-hooks-codex.sh --apply

# 動作確認 (推奨)
bash scripts/verify-multi-agent-e2e.sh --agent=gemini

Claude Desktop (.mcpb) ユーザー

Releases から kioku-wiki-0.7.0.mcpb をダウンロード
Claude Desktop → 設定 → Extensions / Connectors に drag
Vault directory を picker から指定、Install

テスト / Lint

  • Node / Bash の全 suite green
  • npm audit で runtime deps の脆弱性 0 件継続
  • 新規テスト:
    • tests/hooks/adapters/{claude,gemini,codex}.test.mjs — 各アダプターのイベント正規化動作
    • tests/hooks/_common.test.mjs — safeMain の exit-0 契約、forged event の reject
    • tests/mcp/tools-generate-viz.test.mjs — HTML escape、innerHTML ゼロ、</script> injection block
    • tests/install-hooks-{gemini,codex}.test.sh — 冪等マージ、jq による既存 Hook の非破壊

Release 情報

  • v0.7.0 Release Notes
  • .mcpb Direct: kioku-wiki-0.7.0.mcpb
  • SHA-256: 88172463ca6992959d81de70199ef380f838c36568a760dc0b86a23058cb8e4f
  • Changelog は 10 言語対応 (EN / JA / ES / FR / HI / KO / PT-BR / RU / ZH-CN / ZH-TW)

v0.7.1 / v0.8 以降

  • v0.7.1 — 主要な polish 数件 (Gemini アダプターの出力重複の解消、buildContext の realpath fallback、agent: frontmatter フィールド、SECURITY.ja.md 残翻訳 等)
  • v0.8 α — Visualizer の本格 UI: Timeline Player (アニメーション) + Diff Viewer (2 時点比較を色分け)
  • OpenCode の Hook 用アダプター — 需要次第
  • LP β + Discord soft launch — 並行制作中

まとめ

  • v0.7.0: v0.6 でスキルが共有された second brain、v0.7 で記憶も共有される
  • マルチエージェントの自動セッションログ: 591 行モノリシック → core + 3 adapter (claude / gemini / codex) refactor、Gemini / Codex でも自動記録
  • マルチエージェント MCP セットアップ手順書: 3 エージェント分のインストール / 設定 / 動作確認手順を英語 + 日本語で公式化、未検証バナー付き
  • Visualizer α (kioku_generate_viz): 時間軸で wiki を見る最初の HTML 出力 (ラフ、v0.8 で polish)
  • verify-multi-agent-e2e.sh: 導入後の 6 ステップ対話式の動作確認スクリプト
  • セキュリティ実装の前進: agent-aware self-recursion guard / アダプター exit-0 契約 / マスキング全エージェント適用 / NormalizedEvent の core 再検証
  • MIT License、フィードバック歓迎です

他のプロダクト

こんにちは、季節より。 / hello from the seasons.

季節の写真を集めたギャラリーサイトです。作者が撮影した四季折々の写真を眺められるだけでなく、自分の画像と季節の写真を AI で合成する機能もあります。写真が好きで、AI で遊ぶのも好き、という個人的な興味から作りました。


作者: @megaphone_tokyo
コードと AI で何かつくる人 / フリーランスエンジニア 10 年目 / 東京

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?