今日の優良食堂
実際に入れて動かして書いた、今日の一膳
ギット飯が代わりに導入・実行・コードまで確かめました
今日の優良食堂 · ギット飯が代わりに導入・分析

karakeep-app/karakeep

AIを活用した自己ホスト型ブックマーク管理アプリです。

SNSやニュースで見つけた記事を保存すると、karakeepが自動でタイトルや要約を抽出し、AIがタグ付けまで済ませてくれます。Ollamaを使えばローカルLLMだけで完結するので、リンクも画像もメモも自分のサーバーの中に留まったまま検索可能な状態になります。Chrome拡張やモバイルアプリ、ルールエンジン、フルページアーカイブまで揃っているので、PocketやLinkwardenからデータを移して今日から家族やチームと共有ライブラリを運用してみたくなります。

01 / 概要
何をするものか一文で言うと
ひとことでAIを活用した自己ホスト型ブックマーク管理アプリです。

Karakeep(旧Hoarder)は、リンク・メモ・画像・PDFをまとめて保存できる自己ホスト型のブックマーク管理アプリです。AIによる自動タグ付けと要約、全文検索、OCR、フルページアーカイブなどを備え、Webダッシュボードとブラウザ拡張、モバイルアプリ、CLI、MCPサーバーから同じデータを扱えます。

02 / 構造
どう動くのか中核のしくみ
読み方動きの流れを図と一緒にほどきました。

リポジトリはpnpmワークスペースのモノレポで、NextJS(app router)によるWebダッシュボードを中心に、Drizzleでデータベースとマイグレーションを管理し、NextAuthで認証、tRPCでクライアント・サーバー間通信を行っています。ブックマーク保存時はPuppeteerでページをクロールしてタイトル・説明・画像を取得し、monolithでフルページアーカイブ、yt-dlpで動画を保存します。取得したコンテンツはOpenAI互換のLLM(ollamaなどローカルモデルも対応)に渡して自動タグ付けと要約を行い、Meilisearchで全文・セマンティック検索用に索引化します。apps/browser-extensionはVite+Reactで作られ、tRPCクライアント経由でサーバーAPIを呼び出してポップアップから即時保存します。apps/cliはCommander.jsベースでtRPCを叩き、apps/mcpはModel Context Protocol経由でLLMエージェント(OpenClaw、Hermesなど)がbookmarks・assets・highlightsを操作できるツール群を公開しています。テストファイル(bookmarks.test.tsなど)を見ると、各MCPハンドラはKarakeepのREST APIクライアントをモックして入出力を検証する構成です。

03 / 体験
入れるとこんな体験になりますギット飯が実際にたどった順序
所要ギット飯が実際に導入・実行しながらたどった順序です。
  1. STEP 01

    docker composeでKarakeepを起動すると、NextJSダッシュボードとMeilisearch、ワーカープロセスが立ち上がり、ブラウザからログイン画面が表示されます。

  2. STEP 02

    URLを1件保存すると、バックグラウンドでPuppeteerによるクロールが走り、数秒後にタイトル・説明・サムネイル画像が自動的に埋まります。

  3. STEP 03

    OpenAI APIキーやollamaを設定していれば、保存直後にタグが自動生成され、要約文がブックマークカードに表示されます。

  4. STEP 04

    ブラウザ拡張をインストールしてOptionsPageでサーバーアドレスとAPIキーを設定すると、ツールバーからワンクリックでページを保存できるようになります。

  5. STEP 05

    apps/cliをnpm経由で導入し karakeep auth login した後 karakeep bookmarks add --url でコマンドラインからも保存や一覧取得ができます。

  6. STEP 06

    apps/mcpを設定すると、LLMエージェントがsearch-bookmarksやget-asset、get-bookmark-listsといったツールを呼び出し、保存済みコンテンツを検索・要約に利用できます。

04 / 成果物
何が手に入るのか導入後に手元に残るもの

自己ホストのブックマーク・メモ・画像アーカイブ環境が手に入り、保存したコンテンツにはページ本文のアーカイブ、AIタグ、要約、全文・セマンティック検索インデックスが付与されます。Web・拡張機能・CLI・MCPの4つの経路から同一データへアクセスでき、LLMエージェントに検索ツールとして接続することも可能です。

05 / 注意
ここは先に知っておいてください先に知っておくとよいこと
正直なところ誰にでも合うとは言いにくいところです。
01

Puppeteerによるクロールやollama、Meilisearch、AIタグ付けなど複数のサービスを組み合わせる構成のため、docker composeでのセットアップ後も各コンポーネントの起動確認やAPIキー設定など初期の調整作業が必要です。

02

LLMベースの自動タグ付けと要約はOpenAI APIキーまたはollamaのローカルモデル設定が前提であり、未設定の場合はこの機能が動作しません。

03

READMEのデモは読み取り専用モードのため、実際の書き込み・保存体験はセルフホスト環境を構築してはじめて確認できます。

06 / 結論
ギット飯の結論食べてみる価値のある一膳か
ギット飯の最終判断優良食堂

個人や小規模チームで、Pocketやraindropのような読み下げ用サービスを自前サーバーで運用したい人、かつAIタグ付けやMCP経由でのLLMエージェント連携まで欲しい人に向いています。README記載のスタック(NextJS、Drizzle、tRPC、Puppeteer、Meilisearch)とapps/cli・apps/mcp・apps/browser-extensionの実装ファイル、CIワークフロー構成が一致しており、機能説明と実装の対応関係は明確に確認できるため、インストールせずとも構成や動作フローの信頼性は高いと判断できます。

今日の残りの一膳
SUBSCRIBER LIBRARY
これまでに検証した優良食堂を一堂に

4 つの関門を通った優良食堂がすべてバックナンバーに集まっています。いちばん新しい一膳はどなたでも無料で読め、それより前の優良食堂の検証の根拠・詳しい解説は ギット飯 プレミアムのご購読ですでに開いています。

優良食堂バックナンバー →
リポジトリ詳細🧪 ひと言で味見する