Ecosystem Overview

Five packages, one coherent framework: library, API, CLI, MCP gateway, and frontend.

Orchid is delivered as five separable packages with a clear, one-direction dependency graph. Each package can be replaced or forked independently — the only coupling is the HTTP API contract between the server-side packages and their consumers.

Python depPython depHTTPHTTPpip packagepip packagepip packageboilerplateboilerplate

Package summary

PackageKindDepends onPurpose
orchidpip packageCore framework: ABCs, GenericAgent, LangGraph graph, RAG pipeline, document parsing, MCP client, chat persistence
orchid-apipip packageorchid (Python)FastAPI server — REST and SSE streaming, auth, admin, diagnostics
orchid-clipip packageorchid (Python)CLI tool — interactive chat, config validation, RAG indexing
orchid-frontendboilerplateorchid-api (HTTP)Next.js 15 multi-chat UI — forkable starting point
orchid-mcpboilerplateorchid-api (HTTP)MCP gateway — exposes Orchid agents to any MCP-capable host LLM

Why this split?

The library (orchid) contains only ABCs, the GenericAgent implementation, and framework infrastructure with no vendor or product coupling. It is installable as a standalone pip package so teams can build their own server, CLI, or integration on top of it without pulling in FastAPI, a specific auth system, or a frontend framework.

Plugin dependencies by configuration

The core orchid-ai library ships with null and in_memory backends only — no Qdrant, no PostgreSQL, no ChromaDB. Concrete backends live in separate plugin packages that auto-register via Python entry points. The table below shows which plugin to install for each configuration choice:

If your config uses this…Install thisBackend provided
rag.vector_backend: qdrantpip install orchid-rag-qdrantQdrant vector store + doc store
rag.vector_backend: chromapip install orchid-rag-chromaChromaDB on-disk vector store
rag.vector_backend: neo4jpip install orchid-rag-neo4jNeo4j graph store
storage.class: orchid_storage_postgres.*pip install orchid-storage-postgresPostgreSQL chat persistence
checkpointer_type: postgrespip install orchid-storage-postgresLangGraph Postgres checkpointer
Events with PostgreSQL backendspip install orchid-storage-postgresPostgres signal queue + event storage

Missing a plugin raises a clear startup error. For example, setting vector_backend: qdrant without installing orchid-rag-qdrant produces:

ValueError: Unknown vector backend 'qdrant'. Install the missing
plugin: pip install orchid-rag-qdrant. Registered built-ins: ['null'].

orchid-api and orchid-cli are thin consumers. They import orchid as a Python dependency, add the runtime surface (HTTP routes, CLI commands, Docker entrypoints), and delegate all agent execution back to the framework library. Because the split is at the Python package boundary, the framework can be upgraded independently of the serving layer.

orchid-frontend and orchid-mcp talk to orchid-api over HTTP only — they have no Python import dependency on the framework. This makes them portable boilerplate: fork either one, point it at any orchid-api deployment, and it works. The MCP gateway, in particular, is designed to be forked by integrators who want to expose Orchid agents inside their own MCP host infrastructure without touching the Python layer.