Moorcheh On-Prem Changelog
Track releases of the self-hosted Moorcheh stack:moorcheh-client on PyPI, the moorcheh/server Docker image, REST API, moorcheh CLI, and MoorchehClient.
File upload (path-based)
Upload and index PDF, DOCX, XLSX, PPTX, TXT, CSV, MD, and JSON from~/.moorcheh/uploads (mounted as /uploads in the server).REST API- File upload - async ingest with chunking, batch summaries (every 100 chunks), and embedding
- List files, get file by id, delete file index
- File job status - poll upload and delete jobs (
file_ingestorfile_delete) - Fetch text data - cursor pagination, up to 100 items per page
upload-file,list-files,file-get,delete-file,file-job-status,fetch-text-data
client.files.upload,list,get,delete,job_statusclient.documents.fetch_text_datafor paginated text chunksMoorchehClientresource layout (namespaces,documents,files,similarity_search,answer) -MoorchehApiClientkept as legacy wrapper
namespaceon each result;summary_texton top hit via baresummary_chunk_id#key:valuemetadata filters and#keywordtext filters in the query string (cloud parity)
file_registry.jsonunder~/.moorcheh/data
/uploads/...). CLI accepts host paths under ~/.moorcheh/uploads. Delete file index or delete namespace removes indexed data only - disk files in uploads/ are kept.Docs: Upload file, CLI upload-file, Python upload filesAI Answer generation
Generate contextual answers from your text namespaces (RAG) or call the LLM directly with an empty namespace - using Ollama, OpenAI, or Cohere.What’s new
- Answer endpoint - Search Mode (namespace + RAG) and Direct AI Mode (
namespace: "") - LLM configuration saved under
llmin~/.moorcheh/config.json; prompted duringmoorcheh configure moorcheh answerCLI command andclient.answer.generate()- Health and status include
llm_providerandllm_model - Structured output - optional
structured_response: { "enabled": true }with default JSON schema - Docs: Generate AI Answer, Python client, CLI
Supported LLM models (examples)
| Provider | Models |
|---|---|
| Ollama | llama3.2, mistral, qwen2.5 |
| OpenAI | gpt-5.5, gpt-5, gpt-4o-mini |
| Cohere | command-a-plus-05-2026, command-r-plus-08-2024, command-r-08-2024 |
Upgrade notes
- Re-run
moorcheh configure --forceto set LLM provider and model, or add allmblock toconfig.jsonmanually. - Rebuild or pull an updated
moorcheh/serverimage that includes the answer endpoint.
Multi-provider text embeddings
Choose how Moorcheh embeds text documents and search queries: Ollama (local), OpenAI, or Cohere. Settings are saved to~/.moorcheh/config.json and applied on every moorcheh up.Install and upgrade
moorcheh/server image (or use your tested build) so the server supports EMBEDDING_PROVIDER / EMBEDDING_MODEL / EMBEDDING_API_KEY.What’s new
moorcheh configure- Interactive setup for provider, model, and API key (cloud providers)moorcheh up- Reads saved config; runs the embedding wizard on first start if config is missing- Ollama (optional) - Bundled
moorcheh-ollamastarts only when provider isollamaand host Ollama is not running; embedding model is pulled automatically when missing - OpenAI / Cohere - Server container only; no Ollama required; API keys stored locally in
config.json - Health -
GET /healthandmoorcheh statusincludeembedding_providerandmodel - CLI flags -
--embedding-provider,--embedding-model,--embedding-api-key,--no-configure,--skip-ollama-model-pull - Docs - Embedding providers, moorcheh configure, updated Prerequisites and moorcheh up
- Tests - Coverage for config, Ollama setup, Docker runtime, and CLI embedding flows
Supported embedding models
| Provider | Models (examples) |
|---|---|
| Ollama | nomic-embed-text, mxbai-embed-large, all-minilm |
| OpenAI | text-embedding-3-small, text-embedding-3-large, text-embedding-ada-002 |
| Cohere | embed-v4.0, embed-english-v3.0, embed-multilingual-v3.0 |
Upgrade notes
- Run
moorcheh configureonce after upgrading the client (or answer prompts on the nextmoorcheh up). - Existing data under
~/.moorcheh/datais unchanged. - If you previously relied on Ollama-only defaults, pick ollama in configure to keep the same behavior, or switch to a cloud provider.
Requirements: Python 3.10+, Docker. Ollama is required only when the embedding provider is
ollama. OpenAI/Cohere need a provider API key and outbound HTTPS from the server container.Client improvements
Patch release formoorcheh-client with improved reliability and broader Python support. No breaking changes to the REST API, CLI, or MoorchehApiClient.Install and upgrade
What’s new
- Python 3.10–3.13 - client package tested across supported Python versions
- Quality - expanded automated tests for the API client, CLI, and Docker runtime helpers
- Packaging - more consistent PyPI releases for
moorcheh-client
Upgrade notes
No code changes are required if you already useMoorchehApiClient or the moorcheh CLI from v0.1.0. Your existing moorcheh up workflows and data under ~/.moorcheh/data are unchanged.Requirements: Python 3.10+, Docker (for
moorcheh up), and Ollama for embeddings (host or bundled).Initial release
First public release of Moorcheh On-Prem - semantic search and vector storage that runs locally with Docker and Ollama. No cloud API keys required.Runtime
moorcheh up/down/status- Start and stop the Moorcheh API server (moorcheh/server:latest) via Docker Compose- Ollama integration - Host Ollama or bundled
moorcheh-ollamacontainer for embeddings (default model:nomic-embed-text) - Local data - Persistent storage under
~/.moorcheh/data
REST API
- Health - Server status, embedding model, and global item quota (
GET /health) - Namespaces - Create, list, and async delete text or vector namespaces
- Data - Async upload of documents (text) and precomputed vectors, with job polling
- Items - Get and delete items by id (up to 100 ids per request)
- Search - Semantic search with text or vector queries across one or more namespaces
CLI and Python client
moorcheh-clienton PyPI - Installs themoorchehCLI andMoorchehApiClientin one package- Full parity - CLI and Python SDK cover the same API surface (namespaces, uploads, items, search)
Limits
- Unlimited namespaces - no cloud-tier namespace count limit; only the global item cap applies
- 100,000 items global cap across all namespaces
- Item ids unique per namespace
Getting started: See Introduction, Prerequisites, and Quickstart.