librarian-index

Builds a deterministic semantic vector index for registered library files using FastEmbed and Qdrant.

63|8|Updated Feb 16, 2026
One-click install
npx skills add https://github.com/JoranHonig/grimoire --skill librarian-index
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: librarian-index
Source: https://github.com/JoranHonig/grimoire/tree/main/skills/librarian-index
Command: npx skills add https://github.com/JoranHonig/grimoire --skill librarian-index

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires qdrant-client[fastembed], pyyaml, fire, and includes scripts (resource) components.

What problem does it solve?

Converts scattered library files into a unified semantic index so researchers can retrieve conceptually relevant content even when exact keywords differ.

Core Features & Use Cases

  • Deterministic, idempotent indexing: content hashes produce stable IDs so re-indexing overwrites instead of duplicating.
  • Local embeddings and storage: chunks are embedded locally with FastEmbed and stored in a local Qdrant database for offline semantic search.
  • Flexible chunking and filters: splits markdown by headings and code by line windows, skips large files, and supports configurable extensions and collections.
  • Use Case: After adding a new git-backed library to libraries.yaml, run the indexer to make its documentation and code searchable by the librarian agent.

Quick Start

Run the librarian-index skill to build a semantic search index for all registered libraries.

Frequently Asked Questions about librarian-index

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build a semantic search index for local markdown and source code files?

To build a semantic vector index, the skill chunks library content by markdown headings or line windows, embeds chunks locally using FastEmbed, and upserts embeddings with metadata into a local Qdrant collection for deterministic offline semantic search.

How does local semantic search handle re-indexing without duplicating vectors?

Local semantic search handles re-indexing deterministically by generating content hashes that produce stable vector IDs. Re-indexing overwrites existing Qdrant entries instead of duplicating them, ensuring the local collection remains idempotent and accurate.

What is the best way to make git-backed library documentation searchable offline?

The best way to make git-backed libraries searchable offline is registering them in a libraries.yaml file and running an indexer. It embeds text and code locally with FastEmbed, storing vectors in a local Qdrant database without external API dependencies.

Can I use Qdrant and FastEmbed to index only specific file types in my library?

Yes, you can index specific file types by applying configurable file filters and extensions. The indexer processes registered libraries, skipping large files while chunking allowed markdown and source code before embedding and upserting into Qdrant.

Does semantic chunking for code work differently than markdown chunking?

Markdown chunking splits documents by headings, whereas code chunking uses configurable line windows. Both methods prepare content for local FastEmbed embedding before upserting the resulting vectors into a local Qdrant collection.

What are the limitations of using local FastEmbed models for semantic library indexing?

Limitations of local FastEmbed indexing include skipping large files to manage memory and relying on local compute resources. It is designed for registered libraries in libraries.yaml, so unregistered or oversized files outside configured filters will be ignored.