Upgrade to Pro — share decks privately, control downloads, hide ads and more …

kura: ローカルで完結するナレッジ管理 CLI

kura: ローカルで完結するナレッジ管理 CLI

Avatar for Kazuyuki Suzuki

Kazuyuki Suzuki

July 19, 2026

More Decks by Kazuyuki Suzuki

Other Decks in Programming

Transcript

  1. ローカルで完結する ナレッジ管理 CLI kura Local knowledge, hybrid search, for humans

    and agents 散らばった知識を、SQLite ひとつのファイルに。人にも、AI にも引けるように。
  2. そこで kura を作りました kura は、Markdown や HTML のドキュメントを手元の SQLite ひとつに収め、

    人からも AI からも引き出せるようにする CLI です。 置き場所を強制しない — Bucket ・階層タグ・相互リンク(+任意のパス)で整 理 日本語に強いハイブリッド検索 — 形態素解析+ベクトル+リランク まるごとローカル — データは ~/.kura/kura.db ただ 1 つ AI エージェント連携 — MCP サーバーと、全コマンドの --json 出力 クラウドも、アカウントも、テレメトリーもいりません。 kura — Local knowledge, hybrid search, for humans and agents 3
  3. 自己組織化: 仕舞わずに、つなぐ フォルダは、置き場所を 1 つに決めろと迫ってきます。でも、メモが 2 つの 場所にまたがった瞬間、その決断は破綻します。だから kura は、置き場所を

    強制するフォルダをやめました。パスを添えることもできますが、フォルダと 違って必須ではありません。bucket 直下が、そのまま未整理の受け皿になります。 仕組み 役割 Bucket フラットな最上位のグループ(main など) 階層タグ #tech/db/sqlite は 3 階層すべてに同時に現れる 相互リンク [[タイトル]] 。先に書けば、後から自動でつながる ドキュメントパス clips/技術 の任意の名前空間。フォルダではなく、強制もされない 相互リンクは「先に書ける」のが強みです。まだ無いページへのリンクでも、 書いておけばそのページを作った瞬間につながります。バックリンクも、 2 ホップ先のつながりも、あとから勝手に見えてきます。 kura — Local knowledge, hybrid search, for humans and agents 4
  4. 中核: 日本語のためのハイブリッド検索 この「引き出しにくさ」に、kura は検索で正面から応えます。 3 つのステージを、1 つの SQLite の中だけで回します。 キーワード

    FTS5 + sqlite-vaporetto の形態素解析。日本語を単語の単位で切って探す(trigram フォールバックあり) セマンティッ ク sqlite-vec のベクトル KNN 。ローカル embedding で、語ではなく意味で手繰る リランク 両者を束ね、ローカル LLM で並べ替え。いちばん効く順に返す 検索は、kura search (キーワード)/ kura vsearch (セマンティック)/ kura query (ハイブリッド)の 3 つを使い分けるだけです。 kura — Local knowledge, hybrid search, for humans and agents 5
  5. CLI: 溜めて、引く # 追加 kura add notes/sqlite-wal.md --tags tech/db/sqlite echo

    "# 今日のメモ" | kura add - --title "今日のメモ" kura clip https://example.com/article # Web ページを LLM で整形して取り込み # 検索(3 モード) kura search "WAL チェックポイント" # キーワード(< 100ms) kura vsearch "書き込み中も読める仕組み" # セマンティック kura query "SQLite の並行性" # ハイブリッド + リランク # つながりを辿る kura link ls "今日のメモ" # アウトリンク / バックリンク / 2 ホップ # 移動・整理([[リンク]] も貼り替わる) kura mv "今日のメモ" --path db/sqlite # パス名前空間へ移動 kura mv suggest # 未整理ドキュメントに置き場所を提案 コミットは待ちません。書いたそばから、インデックスに乗ります。 読み取り系のコマンドは、どれも --json を返せます。 kura — Local knowledge, hybrid search, for humans and agents 6
  6. ブラウザでも、読んで・書いて・整える kura browser でローカルサーバを起動。同じコアを、今度はブラウザから。 バケットでスコープ — サイドバーで選んだ 1 つに、一覧も検索もツリーも揃う その場で編集

    — 読んでいる画面のまま手を入れられる。Markdown ショートカッ トと自動保存 お気に入り — ★ を付けたドキュメントをサイドバーに固定 検索モーダル — Ctrl + P で打ちながら絞り込み。キーボードだけで動く 統計と気づき — 未整理・未タグ・孤立・壊れたリンクを、直すコマンドつきで教 えてくれる ドキュメントツリー・タグツリー・バックリンク・知識グラフも、そのまま。 kura — Local knowledge, hybrid search, for humans and agents 7
  7. AI エージェントの「長期記憶」になる kura は MCP サーバーにもなります。検索も読み書きも、エージェントの道具 として差し出す。エージェントはいつものツール操作のまま、過去の知識を 思い出し、気づいたことを書き足していけます。 claude mcp

    add kura -- kura mcp # Claude Code に接続 公開ツール: kura_query (ハイブリッド検索), kura_search , kura_get , kura_add , kura_update , kura_list_tags , kura_related , kura_status セッションをまたいで積み上がっていく記憶。それが、kura のもう 1 つの顔です。 kura — Local knowledge, hybrid search, for humans and agents 8
  8. ローカル LLM で、もっと強力に キーワード検索・CRUD ・リンク・タグは、モデルなしでいつでも動きます。 キーワード検索 CRUD リンク タグ ここに

    Ollama や LM Studio をつなぐと、kura はさらに賢くなります。 セマンティック検索 — 語ではなく意味で手繰る(ローカル embedding ) ハイブリッドのリランク — いちばん効く順に並べ替え clip 整形 — Web ページを読みやすい Markdown に タグ提案 / クエリ展開 — 既存タグ優先の付与と、検索語の言い換え・拡張 mv suggest — 未整理ドキュメントに、理由つきで置き場所を提案 プロバイダは自動検出。無ければそっと警告して代替へ切り替わるので、 飛行機の中でも止まりません。 kura — Local knowledge, hybrid search, for humans and agents 9
  9. 内部アーキテクチャ 中身は、SQLite ファイル 1 つにすべて収まります。SQL トリガーは使いません。 派生テーブルの整合は、リポジトリ層が 1 トランザクションでまとめて取ります。 CLI

    / Browser / MCP — 3 つのフロントエンド。同じコアを再利用 ↓ core — ドキュメント・検索・リンク・タグのドメインロジック ↓ SQLite + 拡張 — FTS5 / sqlite-vec / sqlite-vaporetto 配布は、bun build --compile で作るプラットフォームごとの単一バイナリ。 SPA アセットも sqlite-vec 拡張も、その中に埋め込み済みです。 kura — Local knowledge, hybrid search, for humans and agents 10
  10. Appendix: コマンド早見表 分類 コマンド セットアップ kura init / kura doctor

    / kura status / kura config ドキュメント kura add / kura get / kura edit / kura rm / kura mv / kura ls / kura clip 検索 kura search / kura vsearch / kura query / kura embed 整理 kura bucket / kura tag / kura link 入出力 kura export / kura import サーバー kura browser / kura mcp 前提(macOS ): brew install sqlite (拡張のロードに Homebrew 版の SQLite が要ります) 。LLM (任意): Ollama / LM Studio 。 kura — Local knowledge, hybrid search, for humans and agents 12