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.0.tar.gz (294.4 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.0-py3-none-any.whl (132.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: knowledge_index-0.5.0.tar.gz
  • Upload date:
  • Size: 294.4 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.0.tar.gz
Algorithm Hash digest
SHA256 2738cc48cd971f91fba8d3a172fb3984f285cb47f6dbeccdb9b3c870d12074f4
MD5 131153c68b72aa5b581ddc2c5b462f49
BLAKE2b-256 4fc34b5c8053770956a9d70888c1bfe2164ea8ebbe225774dcaf6d809271c8af

See more details on using hashes here.

Provenance

The following attestation bundles were made for knowledge_index-0.5.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: knowledge_index-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 132.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for knowledge_index-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6b8845701b9237621d37b891940cf5078b0288a260742b4f5e8e4636f2f3333d
MD5 22b6d841b4da689f1af4ca9df8dd719e
BLAKE2b-256 438221d48d84f89c2933b06d5c65cf8bc65b62550efd5fa7ecc171e015599cc7

See more details on using hashes here.

Provenance

The following attestation bundles were made for knowledge_index-0.5.0-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