Skip to main content

Search index for agent memory — knowledge graph index for your documents.

Project description

ki logo Knowledge Index (ki)

The safe, easy, fast search engine for your knowledge base.


Point ki at a folder of markdown — notes, docs, a wiki — and it syncs to a Neo4j knowledge-graph index you can search and navigate in seconds, from the CLI or any AI agent. Agents and humans alike go understand → search → retrieve with no prior expertise.

ki is a search index, not a store. It only reflects what's on your filesystem — source files are never modified (safe on an Obsidian vault, a git repo, a research folder), the index is disposable cache you can rebuild with one ki index, and there's no LLM work or embeddings at index time (vendor-neutral, instant to set up, free). See docs/general-philosophy.md for the tenets.

Install

curl -sSfL https://knowledge-index.ai/install.sh | bash   # ki + neo4j-cli + agent skills
ki configure                                              # one-time Neo4j: Local (Podman), Aura, or Existing

Prefer Python tooling? uv tool install knowledge-index (or uvx knowledge-index --help to try without installing).

Quickstart

cd ~/my-notes
ki index . --profile personal     # sync the folder into the graph (first index binds a profile)
ki outline my-notes --full        # table-of-contents view of the vault
ki search "rate limiting"         # find the right slice
ki get --type full "<uri>"        # read it (copy a uri from outline/search)

ki writes one marker per vault — .ki/vault.yaml, holding the vault's slug uri, its bound profile name, and an optional description. It's safe to commit (no credentials). Re-running ki index resyncs; nuke the graph and rebuild anytime.

With an AI agent

Coding agents (Claude Code, Cursor, Windsurf, …) shell out to ki directly. ki skill install drops the bundled knowledge-base skill into each detected agent's config so it knows when to reach for ki"what did I write about X?", "build a knowledge base from this folder," "find related material" — and when not to.

ki skill install      # into all detected agents (the installer already does this)
ki skill list         # what's wired up / detected

The shipped skill scopes to the local, single-vault workflow; see docs/skills.md.

Usage patterns

ki is optimized for one local vault at a time and generalizes from there. The full model — profiles, vaults, and how every command resolves scope — is docs/scoping.md.

  1. Local, single vault (the default, ~95%) — your markdown on disk; the full lifecycle (index/update + search/retrieve). No flags: ki uses the vault you're standing in.
  2. Remote vaults — read-only search/retrieval over a KB you don't have locally (sharing a KB, powering apps/production). Name it explicitly with --profile (+ --vault).
  3. Cross-vault search — query several vaults in one profile at once (--profile; navigation/read commands only).

Commands

ki <cmd> --help is the source of truth for flags.

  • Index / update: index (full sync) — add / rm / mv (incremental) are planned.
  • Read / retrieve: search, outline (alias tree), get, status. Depth docs: search · get · outline.
  • Remove from index: drop (one vault) · nuke (a whole profile). Source files are never touched.
  • Admin / info: configure, profile list, vault list, skill.

ki search is one ranked fulltext sweep over documents + sections (no embeddings) — narrow with --types, scope locally with --under or remotely with --profile / --vault. See docs/commands/search.md.

Neo4j connection

ki configure offers three paths: Local (Podman neo4j:latest + APOC/GenAI — full runbook in skills/knowledge-base/references/neo4j-podman.md), Aura (billable cloud via neo4j-cli; never picked without consent), and Existing (any Bolt URI). Credentials live in ~/.config/ki/config.yaml (mode 0600); vaults reference profiles by name, so syncing a vault folder never leaks them.

Limitations & roadmap

  • Markdown only — convert PDF / docx / HTML first (pandoc, markitdown), then ki index.
  • No vector search yet — fulltext is the substrate (by design — see the philosophy); hybrid is roadmap.
  • No MCP server yet — coding agents work today; chat apps (claude.ai, ChatGPT, …) need an MCP bridge (roadmap).
  • Plaintext passwords (config.yaml, mode 0600) — OS keyring is roadmap.

Full roadmap → open issues.

Docs

Start at docs/: architecture · general-philosophy · scoping · data model. Contributors: AGENTS.md.

Development

git clone https://github.com/zach-blumenfeld/knowledge-index.git && cd knowledge-index
uv sync --extra dev
uv run pytest                                   # integration tests auto-skip without a Neo4j
uv run ruff check src/ tests/ scripts/

Point integration tests at any Neo4j via KI_TEST_NEO4J_URI / KI_TEST_NEO4J_USER / KI_TEST_NEO4J_PASSWORD (the suite is destructive — don't use a Neo4j with real data). Design principles, project map, test fixtures, and the release flow live in AGENTS.md.

License

See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

knowledge_index-0.5.0a0.tar.gz (294.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

knowledge_index-0.5.0a0-py3-none-any.whl (132.1 kB view details)

Uploaded Python 3

File details

Details for the file knowledge_index-0.5.0a0.tar.gz.

File metadata

  • Download URL: knowledge_index-0.5.0a0.tar.gz
  • Upload date:
  • Size: 294.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for knowledge_index-0.5.0a0.tar.gz
Algorithm Hash digest
SHA256 00eb09c273f9120a73c1e5bc6c3e56c3fc53424ef364ea6f15dfeb6090375a1f
MD5 ab2dfc0270b818b2d22b760450cee093
BLAKE2b-256 9826a3f6ddc3000fd2a2501caf5ecc564c5b425ae3163cd56e77544771754d3c

See more details on using hashes here.

Provenance

The following attestation bundles were made for knowledge_index-0.5.0a0.tar.gz:

Publisher: release.yml on zach-blumenfeld/knowledge-index

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file knowledge_index-0.5.0a0-py3-none-any.whl.

File metadata

File hashes

Hashes for knowledge_index-0.5.0a0-py3-none-any.whl
Algorithm Hash digest
SHA256 cff0e876d2c64ad56422b62f431f0269780c076d6df220f610e5b9b505590719
MD5 1d56f6f777e9bab8667b6e5677c27790
BLAKE2b-256 3216d15547460769d63b0639c899e3908f5deef1d224782ed52ccb3cbf78faa9

See more details on using hashes here.

Provenance

The following attestation bundles were made for knowledge_index-0.5.0a0-py3-none-any.whl:

Publisher: release.yml on zach-blumenfeld/knowledge-index

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page