Repolode
goniszewski

goniszewski/grimoire

A local-first, self-hosted bookmark manager that saves, extracts, searches and organizes links with optional AI enrichment.

Open-source alternative to:Pocket

Stars
2,874
Forks
91
Open issues
17
Last commit
26 days ago

What is it?

Grimoire is a bookmark manager for developers and others who save technical resources and need to find them later. You can save URLs from the app, API, MCP, a browser bookmarklet, or by importing browser bookmarks. The daemon fetches each page, extracts readable text and metadata, and stores everything in local SQLite and files, so the library stays on your machine.

Search combines SQLite FTS5 keyword matching with semantic embedding search, and can use a hybrid ranking mode. Bookmarks are usable immediately after saving, while summaries, tags, categories and embeddings are produced in a background pipeline that can be retried. AI providers such as OpenAI, Ollama, Anthropic, OpenRouter and custom OpenAI-compatible endpoints are optional; the app works without them.

The project runs as a React frontend and a Bun/Hono daemon. It can be installed natively, through Homebrew on macOS, or with Docker Compose, and includes encrypted backups, a CLI, and an MCP endpoint for local AI clients.

Key features

  • 01Saves links from the app, API, MCP, bookmarklet, or browser bookmark import.
  • 02Extracts readable content from web pages, PDFs, GitHub repos and issues, and YouTube metadata.
  • 03Offers keyword, semantic and hybrid search over the library.
  • 04Supports optional AI summaries, tags and categories from several providers.
  • 05Provides encrypted backups, restore, and a grimoire CLI.
  • 06Runs locally with data stored in SQLite and local files.

Use cases

  • Keeping a searchable archive of technical articles, repos and documentation.
  • Replacing a cloud read-it-later service with a self-hosted library.
  • Exposing a personal knowledge base to local AI tools through MCP.
  • Importing an existing browser bookmark collection and organizing it with tags.

Quick start

  1. 1

    Clone the repository

    git clone https://github.com/goniszewski/grimoire.git
  2. 2

    Enter the project folder

    cd grimoire
  3. 3

    Start Grimoire with Docker Compose

    docker compose up -d
  4. 4

    Open http://127.0.0.1:3210 in your browser

Things to know

  • Public-network exposure is not a supported mode; remote access needs your own authenticated tunnel, VPN, or reverse proxy.
  • The Linux Homebrew install path is unverified; use the native Linux archive or Docker Compose there.

In collections

Topics

FAQ

What is grimoire?
A local-first, self-hosted bookmark manager that saves, extracts, searches and organizes links with optional AI enrichment. Grimoire is a bookmark manager for developers and others who save technical resources and need to find them later. You can save URLs from the app, API, MCP, a browser bookmarklet, or by importing browser bookmarks. The daemon fetches each page, extracts readable text and metadata, and stores everything in local SQLite and files, so the library stays on your machine.
Is grimoire free to use? What license does it have?
grimoire is open source under the MIT license. Check the license terms before using it in commercial products.
Is grimoire still maintained?
Actively maintained. The last commit to grimoire was on Sep 28, 2026.
What can I use grimoire for?
Keeping a searchable archive of technical articles, repos and documentation. Replacing a cloud read-it-later service with a self-hosted library. Exposing a personal knowledge base to local AI tools through MCP. Importing an existing browser bookmark collection and organizing it with tags.
How do I install grimoire?
Clone the repository: git clone https://github.com/goniszewski/grimoire.git Enter the project folder: cd grimoire Start Grimoire with Docker Compose: docker compose up -d Open http://127.0.0.1:3210 in your browser
Where can I get grimoire?
The source code and installation instructions are on GitHub: https://github.com/goniszewski/grimoire

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects