Indexed

Quick Start

Install Indexed (indexed-sh) with uv or pip, initialize your workspace, index a folder, and connect MCP — in under 5 minutes.

Quick Start

By the end of this guide, you will have Indexed installed, a collection indexed, and a working search that any MCP-compatible AI agent can use — all in under 5 minutes.

Prerequisites

  • Python 3.10 or later (python3 --version)
  • pip — usually included with Python
  • A folder with at least a few text files, Markdown, or PDFs to index

Install Indexed

Install the indexed-sh package and run the indexed CLI.

Terminal
uv tool install indexed-sh

Verify:

Terminal
indexed --help
Terminal
pip install indexed-sh
indexed --help

Use uvx to run Indexed without installing a persistent tool:

Terminal
uvx indexed-sh --help
Terminal
git clone https://github.com/LennardZuendorf/indexed.git
cd indexed
uv sync
uv run indexed --help

Source installs use uv run

From a clone, always use uv run indexed … (for example uv run indexed config init, uv run indexed mcp run).

First sync downloads ML models

uv sync installs Docling and tree-sitter language grammars, which bundle ~200 MB of ML models (OCR, layout analysis). This is a one-time download — no network calls are needed at runtime.

Terminal
docker build -t indexed .
docker run indexed --help

For HTTP transport (typical for containers and remote clients), see indexed mcp run in the MCP commands reference.

Initialize Your Workspace

Two different commands run at different times:

CommandWhat it does
indexed config initWrites workspace files: a .indexed/ directory (in the current working directory) with config.toml and .env.example.
indexed initDownloads the default embedding model, creates supporting directories, and validates setup. Run after config init (or when you only need models/dirs refreshed).

indexed config init creates the layout in your current working directory. For a personal default under ~/.indexed/, run it from your home directory:

Terminal
cd ~
indexed config init

Collections are stored under ~/.indexed/data/collections/<name>/ unless you pass --local on indexed index create (then they live under ./.indexed/ in that project). See the Configuration Guide for layout, credentials, and tuning.

Then download embedding models and finish setup:

Terminal
indexed init

From source, prefix both: uv run indexed config init and uv run indexed init. See indexed init --help for --skip-model and --model options.

Index a Folder

Point Indexed at any folder with documents — your project's docs/ directory, a folder of Markdown files, or a directory with a few READMEs.

Terminal
indexed index create files -c my-docs -p ./docs
Indexing collection 'my-docs'...
  Parsed 12 documents
  Created 47 chunks
  Generated embeddings
✓ Collection 'my-docs' created (47 chunks, 3.2 MB)

No docs folder handy?

Use any directory with text files. Indexed supports PDF, DOCX, Markdown, TXT, HTML, and many more formats.

Search It

Terminal
indexed index search "authentication guide"
Results for 'authentication guide' (top 5):

1. [my-docs] auth-setup.md (chunk 2/4)
   Score: 0.82
   ...To configure SSO authentication, first set up your identity
   provider with the following SAML settings...

2. [my-docs] onboarding.md (chunk 5/8)
   Score: 0.74
   ...New team members should request access through the auth
   portal at auth.internal.company.com...

Notice how the search found documents about "SSO authentication" and "access through the auth portal" — even though we searched for "authentication guide." That's semantic search at work: embeddings capture meaning rather than matching keywords. The phrase "SSO refresh" matched "auth token rotation" in the example above because both describe the same concept; the model understands that conceptual similarity, not just string overlap.

Connect to Claude Desktop

Minimal MCP wiring (stdio): add Indexed to mcpServers with command indexed and args mcp, run. Restart Claude Desktop after saving.

claude_desktop_config.json (excerpt)
{
  "mcpServers": {
    "indexed": {
      "command": "indexed",
      "args": ["mcp", "run"]
    }
  }
}

Full paths (macOS, Linux, Windows), local storage, JSON examples, PATH checks (which / where), and troubleshooting are in Claude Plugin Integration. For Cursor, GitHub Copilot, Codex, and other agents, see MCP Setup.

Verify CLI and MCP

Optional smoke checks after install and MCP wiring:

Terminal
indexed --help
indexed index inspect
indexed mcp inspect
indexed index search "test query"

From source, prefix each line with uv run (for example uv run indexed mcp inspect).

Update Your Collection

When your documents change, re-fetch and re-embed only what's new:

Terminal
indexed index update my-docs
Updating collection 'my-docs'...
  Before: 12 documents, 47 chunks
  After:  14 documents, 53 chunks
✓ Collection 'my-docs' updated

Indexed detects which files changed since the last index and re-processes only those. For git repos, it uses git diff automatically; for non-git folders it falls back to content hashing.

What's Next