Skip to main content

With CocoIndex, users declare the transformation, CocoIndex creates & maintains an index, and keeps the derived index up to date based on source update, with minimal computation and changes.

Project description

Enterprise corpus — codebase, Slack, meeting notes, and documentation — flowing continuously through the CocoIndex incremental sync engine into a production AI agent with always-fresh context. Only the Δ (delta) is reprocessed on every change. Keywords: RAG pipeline, agent memory, enterprise retrieval, AI agent context, live indexing, retrieval-augmented generation, production LLM apps, streaming ETL, incremental ingestion.

Your agents deserve fresh context.

Star us ❤️ → Star CocoIndex on GitHub — open-source Python framework for RAG, vector search, and live agent context  ·  cocoindex.io — the CocoIndex homepage: incremental data pipelines for AI agents  ·  CocoIndex documentation — quickstart, connectors, ops, transformations, target stores, RAG and knowledge graph recipes  ·  Join the CocoIndex Discord community — help, showcase, release notes, and live chat with maintainers

CocoIndex turns codebases, meeting notes, inboxes, Slack, PDFs, and videos into live, continuously fresh context for your AI agents and LLM apps to reason over effectively — with minimal incremental processing. Get your production AI agent ready in 10 minutes with reliable, continuously fresh data — no stale batches, no context gap

Incremental · only the delta  ·  Any scale · parallel by default  ·  Declarative · Python, 5 min

stars downloads pypi python rust license discord

CI release links

cocoindex-io/cocoindex | Trendshift




Built with CocoIndex ❤️

CocoIndex-code — flagship MCP server for AI coding agents. AST-aware incremental semantic code index that keeps live call graphs, symbols, vectors, and chunks fresh on every commit. 70% fewer tokens per turn, 80-90% cache hits on re-index, sub-second freshness. Supports Python, TypeScript, Rust, and Go. Features: Δ-only incremental processing, semantic search by meaning (not grep), call graphs and blast-radius analysis, global repo view for duplicates and architecture. Build coding agents (generate, refactor) and code-review agents (catch, approve). One install — Claude Code, Cursor, and other MCP-aware agents see your whole repository instantly. Keywords: MCP server, coding agent, code intelligence, AST chunking, semantic code search, call graph, vector embedding, repository context, Claude Code, Cursor, incremental indexing, blast radius.

See all 20+ examples · updated every week →


Get started

pip install -U --pre cocoindex     # v1 is in preview — the --pre flag is required

Declare what should be in your target — CocoIndex keeps it in sync forever, recomputing only the Δ.

import cocoindex as coco
from cocoindex.connectors import localfs, postgres
from cocoindex.ops.text import RecursiveSplitter

@coco.fn(memo=True)                          # ← cached by hash(input) + hash(code)
async def index_file(file, table):
    for chunk in RecursiveSplitter().split(await file.read_text()):
        table.declare_row(text=chunk.text, embedding=embed(chunk.text))

@coco.fn
async def main(src):
    table = await postgres.mount_table_target(PG, table_name="docs")
    table.declare_vector_index(column="embedding")
    await coco.mount_each(index_file, localfs.walk_dir(src).items(), table)

coco.App(coco.AppConfig(name="docs"), main, src="./docs").update_blocking()

Run once to backfill. Re-run anytime — only the changed files re-embed.

Full quickstart — open-book icon linking to the CocoIndex documentation quickstart: pip install, declare sources and targets, run the incremental engine    Learn the concept — lightbulb icon linking to the CocoIndex core-concepts guide: sources, targets, flows, incremental engine, and data lineage

Animated GitHub Star button for the cocoindex-io/cocoindex repository: a cursor clicks the star, it fills yellow, confetti bursts, the star count ticks up 6.9k → 7.0k, and an 'Appreciate a star if you like it!' caption with a beating heart shows below the button



React — for data engineering

React — for data engineering. The CocoIndex mental model: Target = F(Source). A persistent-state-driven dataflow where you declare the desired target state and the engine keeps it in sync with the latest source data and code, forever, at low latency and low cost. Source files (.py, .md, .pdf, .ts) flow through your Python transformation F into a live target dots-matrix index; only the Δ is reprocessed on every change, and every target dot traces back to its exact source byte. Four core properties: Python not a DAG (sky), declare target state (yellow bullseye), lineage end-to-end (coral connected dots), and incremental at any scale (mint Δ+1). Your code is as simple as the one-off version — the engine does the rest. Keywords: React for data engineering, declarative ETL, persistent state, data lineage, dataflow, Δ only, incremental indexing, CocoIndex.

What happens when either side changes — CocoIndex tracks per-row provenance so the Δ propagates at minimum cost. Two scenarios shown in one illustration: (top) Source change — one file (b.md) is edited and only one target dot re-syncs (coral pulse). (bottom) Code change — the transformation function F is rewritten from v1 to v2 and only the dots whose outputs depend on the changed code re-run (amber/yellow pulses). Source on the left, F in the center (Python code block), target dots-matrix on the right. Keywords: incremental indexing, change data capture, delta processing, fine-grained invalidation, code-aware caching, hash-of-code invalidation, memoization, reproducible pipelines, incremental recomputation.

See the React ↔ CocoIndex mental model →



Incremental engine for long-horizon agents

Data transformation for any engineer, designed for AI workloads —
with a smart incremental engine for always-fresh, explainable data.

Learn the concept — purple button with a lightbulb icon linking to the CocoIndex core-concepts guide: sources, targets, flows, incremental engine, and data lineage

CocoIndex's Python-native transformation flows connect 8 source categories (Codebases, Meeting Notes, Web · APIs, File System · Blob Stores, Databases, Message Queues, Images · Video, Voice · Transcripts) through the incremental engine out to 6 target stores (Relational DB, Data Warehouse, Vector DB, Graph DB, Message Queue, Feature Store). A flow.py code block (@coco.fn · def f(src): · chunks = split(src) · target.row(embed(chunks))) shows the shared pipeline; only the Δ is reprocessed — unchanged src hits the cache, changed src re-runs split() and Δ → re-embed. The persistent data-pipeline control plane runs eight always-on subsystems: live caching, pipeline catalog, version tracking, continuously learning, lineage, task scheduling, metrics collection, and failure management. Keywords: data pipeline, ETL, source connectors, vector database, graph database, incremental engine, streaming ingestion, caching, lineage, versioning, scheduling, metrics, retries.



Why incremental?

Your agents are only as good as the data they see.
Batch pipelines drift stale. CocoIndex stays live — and only runs the Δ.

Why incremental? — one illustration combining the four core benefits of CocoIndex's incremental engine. Sub-second fresh (mint): a stopwatch ticking under a second, source changes propagate to the target in under a second so agents see the world as it is, not as it was yesterday. 10× cheaper at scale (yellow): a 10,000-row corpus block where only a thin Δ 0.1% column re-runs and 99.9% stays cached — you skip the other 99.9% of your corpus and pay a fraction of the compute, embedding, and LLM bill. Explainable by default (coral): a lineage thread links a source byte (handbook.md L42) to a target vector — every vector, row, or graph node in the target traces back to its exact source byte for debuggable, auditable, regulator-friendly AI pipelines. Production-grade (purple): a shield stamped with the Rust crab surrounded by retry loops, back-off dots, a DLQ tray, and a no-data-loss check — Rust core with retries, exponential back-off, dead-letter queues, and no-data-loss guarantees, production-ready for long-horizon AI agents. Keywords: incremental indexing, Δ-only reprocessing, sub-second freshness, low-latency RAG, cost-efficient embeddings, data lineage, retrieval-augmented generation, Rust core, retries, back-off, dead letters, no data loss, long-horizon agents.



What can you build?

See all 20+ examples · updated every week →

Working starters from the examples tree — clone, plug your source, ship.

Real-time code index — walk a git repo, AST-chunk source files, embed with sentence-transformers, upsert to pgvector / LanceDB, incremental on every commit. Keywords: code search, code embedding, semantic code retrieval, Python.

PDF → RAG index — ingest PDFs from local, S3, or GDrive, extract + chunk text, embed chunks, upsert to pgvector / LanceDB. Classic retrieval-augmented-generation stack, incremental. Keywords: RAG, document Q&A, PDF search, vector database.

HN trending topics — pull Hacker News threads via Algolia, recursively parse comments, LLM-extract topics with Gemini 2.5 Flash, rank by weighted hit count (thread=5, comment=1), store in Postgres. Incremental. Keywords: Hacker News, trending topics, LLM extraction, Gemini, Postgres, news intelligence, topic ranking.

Conversation → knowledge graph — LLM extracts people, topics, decisions, action items from transcripts and upserts into Neo4j / Kuzu. Live graph, incremental. Keywords: knowledge graph, entity extraction, meeting intelligence, agent memory.

Multi-repo summarization — walk N git repos, extract structure, LLM-summarize per-repo + a rolled-up org summary, refresh on every push. Keywords: internal platform, developer experience, monorepo, SDK docs.

Structured extraction — BAML / DSPy typed schema extraction from forms, PDFs, intakes, invoices into Postgres / warehouse. Incremental. Keywords: ETL, LLM extraction, schema-first, patient intake, invoice processing, KYC, contracts.

Podcast → knowledge graph — transcribe YouTube / Spotify audio with speaker diarization, LLM-extract speakers and statements, resolve entities across episodes, store in SurrealDB / Neo4j. Keywords: podcast, diarization, YouTube, Whisper, SurrealDB, knowledge graph, entity resolution.

CSV → Kafka live — watch a folder of CSV files, publish each row as a JSON message to a Kafka topic via CocoIndex's Kafka target connector. Incremental, sub-second, no producer loop. Keywords: Kafka, CDC, streaming, StreamNative, Confluent, CSV ingestion, event streaming.


Share what you build — a banner with a trail of tiny hearts rising from the bottom behind the text, inviting the CocoIndex community to share projects built with the framework

Building something with CocoIndex? We want to see it.
Tag @cocoindex_io on X or drop a link in #showcase on Discord. We'll boost it. 🥥



Community

Join the CocoIndex Discord community — live chat with maintainers and users, showcase your projects, get help building RAG pipelines and knowledge graphs Subscribe to the CocoIndex YouTube channel — video tutorials, live demos, architecture deep dives, and AI agent recipes Read the CocoIndex blog — engineering deep dives, release notes, RAG and knowledge graph tutorials, and case studies Follow @cocoindex_io on X (formerly Twitter) for release notes, demos, launches, and AI data pipeline updates



We love Contributors — section title banner with a pulsing coral heart badge and cream twinkle sparkles. Every typo fix, new connector, and doc tweak makes CocoIndex better. Keywords: open-source contribution, pull request, typo fix, new connector, good first issue, Hacktoberfest, community, coconut heart.

We are so excited to meet you.
Every typo fix, new connector, doc tweak, or full-on rewrite makes CocoIndex better.
Come hang out — big PRs and small ones, both welcome.

📝 Read the contributing guide  ·  🐛 good first issues  ·  💬 Say hi on Discord



CocoIndex Enterprise

CocoIndex Enterprise — built for enterprise scale. Four headline stats for PB-scale incremental indexing: PB corpus scale incrementally indexed (coral), 10× fewer LLM embedding calls vs. full recompute (yellow), 100% lineage coverage with every byte traceable (mint), Δ only the delta always (sky). Below, a wide 50×8 corpus matrix of 400 dim tiles represents a petabyte-scale store where a single coral Δ slice of 8 tiles re-runs while the other 99.9% stays cached. Keywords: enterprise RAG, petabyte-scale indexing, incremental compute, delta-only, lineage, parallel chunking, zero-copy, failure isolation.

Large corpus — built for enterprise scale.

Incremental compute is the only way to keep large corpora fresh without re-embedding them every cycle.
CocoIndex scales from a single repo to petabyte-scale stores — parallel by default, delta-only by design.


Process once. Reconcile forever.

When a source changes, CocoIndex identifies the affected records, propagates the change
across joins and lookups, updates the target, and retires stale rows —
without touching anything that didn't change.


Built on a Rust engine.

The core is Rust — production-grade from day zero.
Parallel chunking, zero-copy transforms where possible, and failure isolation
so one bad record doesn't stall the flow.



Explore CocoIndex Enterprise — bright blue pill button linking to cocoindex.io/enterprise, the PB-scale incremental data pipeline for AI agents



Apache 2.0 · © CocoIndex contributors 🥥

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

cocoindex-1.0.1.tar.gz (381.1 kB view details)

Uploaded Source

Built Distributions

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

cocoindex-1.0.1-cp314-cp314t-win_amd64.whl (8.0 MB view details)

Uploaded CPython 3.14tWindows x86-64

cocoindex-1.0.1-cp314-cp314t-manylinux_2_28_x86_64.whl (7.8 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ x86-64

cocoindex-1.0.1-cp314-cp314t-manylinux_2_28_aarch64.whl (7.6 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARM64

cocoindex-1.0.1-cp314-cp314t-macosx_11_0_arm64.whl (7.7 MB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

cocoindex-1.0.1-cp311-abi3-win_amd64.whl (8.0 MB view details)

Uploaded CPython 3.11+Windows x86-64

cocoindex-1.0.1-cp311-abi3-manylinux_2_28_x86_64.whl (7.8 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.28+ x86-64

cocoindex-1.0.1-cp311-abi3-manylinux_2_28_aarch64.whl (7.6 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.28+ ARM64

cocoindex-1.0.1-cp311-abi3-macosx_11_0_arm64.whl (7.7 MB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

cocoindex-1.0.1-cp311-abi3-macosx_10_12_x86_64.whl (7.6 MB view details)

Uploaded CPython 3.11+macOS 10.12+ x86-64

File details

Details for the file cocoindex-1.0.1.tar.gz.

File metadata

  • Download URL: cocoindex-1.0.1.tar.gz
  • Upload date:
  • Size: 381.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.13.1

File hashes

Hashes for cocoindex-1.0.1.tar.gz
Algorithm Hash digest
SHA256 97f20f5e687858a38b6b49eaf7c6568e7382b0a65c0d82b90a3fca354268cf7e
MD5 9e00cb0652ff2c3de60ecabe7213dc61
BLAKE2b-256 9d2822ec3ef0dd295b4239c6a1dae26227b5db530bb3ef6ffd8ba48022452b4c

See more details on using hashes here.

File details

Details for the file cocoindex-1.0.1-cp314-cp314t-win_amd64.whl.

File metadata

File hashes

Hashes for cocoindex-1.0.1-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 f425a8410e28fc528208545a3f98216cbca3da95de774bd80fd8d9cfdd0f270b
MD5 7f26c557ad2381a76a50bfc395baef4b
BLAKE2b-256 6f4568447c8e7ae8ac28341cf0aa567e25629cbba7cf794ec9dd22cc5fe3ae02

See more details on using hashes here.

File details

Details for the file cocoindex-1.0.1-cp314-cp314t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cocoindex-1.0.1-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6a6551bbb5595f19110112f1d75a11c47cb0be1c5c80b4ae7b3165a9f74a5556
MD5 4eff50ca946b497765c7a8c960468692
BLAKE2b-256 5bdf6bd64f3fe63f1a0f97064a6c848a8ad9da7c8e2db59ddd3bf0e2d4a6cdd2

See more details on using hashes here.

File details

Details for the file cocoindex-1.0.1-cp314-cp314t-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cocoindex-1.0.1-cp314-cp314t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0ed3ae59ab23bc71f3161932f19aa144299dea5e76153fa30c41313fd62e242c
MD5 17795d98389643346a672370d4d38f2c
BLAKE2b-256 a58300479eda907b1db81e30b4f28221dfab89ec855618143b0d392b5dd172ca

See more details on using hashes here.

File details

Details for the file cocoindex-1.0.1-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cocoindex-1.0.1-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 23013403de2432140cc697d90b8b20e38c1f3428812a2d6a6b4041a14d142943
MD5 8de05d039e2baee120085fdb4788a24f
BLAKE2b-256 3bfca6fd20f829e7d7dc54a5cbb3d1e00f4369741236c4591b46ea5fe9eb20d1

See more details on using hashes here.

File details

Details for the file cocoindex-1.0.1-cp311-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for cocoindex-1.0.1-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 dd76ab52ea3db1b608f6c0f2089bd5a98eac85299b5ff3385142ed1154ed454b
MD5 69bd685f7dafebeffd32fece20d702bc
BLAKE2b-256 2ada396c3904f4280417e1fb4162299059be1b30d942f22c681b4cda9dad3660

See more details on using hashes here.

File details

Details for the file cocoindex-1.0.1-cp311-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cocoindex-1.0.1-cp311-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 74069638c2403689d12fbc26c094eaaa3a1e2eec734b5aa3ece7d2534e7cdb01
MD5 0877c6631513959e10387157313264e9
BLAKE2b-256 9b2d519198e4804d916cdbca0f1b6648c511c207b3e4f71c7066c9c3c9b07e49

See more details on using hashes here.

File details

Details for the file cocoindex-1.0.1-cp311-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cocoindex-1.0.1-cp311-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ed35326d1c0970aa0caf01e4c8cb4f88fe7382fda8f81038af9efd1e0d6aa417
MD5 11630346ff865cfb78e02525b0e51db5
BLAKE2b-256 228f7d729b0e24f29fe0c25d218765c2a4c8ac9008723a9c32e39a0b2f6576c6

See more details on using hashes here.

File details

Details for the file cocoindex-1.0.1-cp311-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cocoindex-1.0.1-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1b367b3056f87883c988b943794991bd2b936b111c44161ad57641bd3e0e5a8a
MD5 a8915b635f1bb84a5814e31c10180b67
BLAKE2b-256 2c814f577862e21686bdb6ef23e6da77eba0fdd810764a6cb61faac91fd879d7

See more details on using hashes here.

File details

Details for the file cocoindex-1.0.1-cp311-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for cocoindex-1.0.1-cp311-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c6f0c7de9c8b762a5aadc12d1d58606eeceae3178906c34461072bcb6c013afc
MD5 13dc2c2e9f20aceeb4426386a9f20df0
BLAKE2b-256 a07f374eb9cbf5fb65d37d24514eb891306f96133a8b6528d56daf503df351e6

See more details on using hashes here.

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