Changelog
What's in ClicheFactory
A snapshot of what the platform does today, plus an append-only log of what's shipped since.
What's in ClicheFactory today
Evergreen reference. Edited when features change. Dated release notes are below.
Surfaces
- REST API — language-agnostic. Single
extractendpoint plusto_markdown, batch, and training endpoints. - Python SDK — fluent client, sync and async, Pydantic schema validation, batch helpers.
- CLI —
configure,extract,to-markdown, batch processing. - MCP Server — native integration for Cursor IDE and Claude Desktop. No glue code.
- Web app — project-based workflow. Three ways to use it:
- Extract documents directly (full service or BYOK).
- Label documents with AI pre-fills, correct as needed, and export the result as a clean golden dataset you can use anywhere — even outside ClicheFactory, with your own training stack.
- Train custom extraction pipelines from your labeled data. Trained pipelines are then callable from the SDK, CLI, and REST API.
Document support
- PDF — digital-native and scanned (OCR routed automatically).
- Images — PNG, JPG, WEBP, GIF, BMP.
- Office — DOC, DOCX, ODT.
- Spreadsheets — XLSX (with sheet selection), CSV.
- Plain text — TXT, MD.
- Email — EML, with recursive attachment extraction.
- Raw text input — pass a string, no file required.
Key differentiators
- Trainable pipelines (BYOK) — fine-tune extraction on your own labeled documents. Not prompt engineering, an actual compiled pipeline (DSPy under the hood). Two optimizer tiers: Tiny for fast iteration (< 75 examples), MIPRO for production accuracy (≥ 75 examples).
- Labeling as a standalone tool — use the web app purely as a fast ground-truth builder. AI prefills get you most of the way, you correct, and you export the resulting golden dataset. Take it elsewhere if you want — works fine outside ClicheFactory with your own training stack.
- Double Pydantic enforcement — schema validated server-side at inference time and client-side at deserialization. Two independent layers.
- Graceful degradation —
allow_partial=Truereturns whatever validated with per-field errors, instead of failing the whole call. Partial responses are not billed. - EML recursive attachment parsing — email files parsed through all nested attachments, not just the top level.
- Dual model configuration — route OCR to a cheaper model independently of the extraction model. Two dials, one call.
- Extraction debugging —
include_doc=Truereturns the exact markdown the LLM received, so you can see what the model actually saw. - Smart document routing — text-vs-OCR decision happens automatically per page. No preprocessing required.
- Batch processing — configurable concurrency, per-call model override without changing global client config.
- Native MCP integration — works as a tool inside Cursor IDE and Claude Desktop. No glue code, no shim.
- Full local mode with Ollama — entire pipeline runs on your machine. Air-gapped, no API key required, no credits consumed, no data leaves your infrastructure. Quality is your call: strong cloud models and larger local models handle complex schemas well; smaller local models are fine for simple ones. We don't publish a quality matrix for Ollama models — the landscape changes too fast to commit to one.
Extraction modes
- Default — balanced pipeline. Smart routing + structured extraction.
- Fast — one-shot extraction; document sent directly to a vision-capable LLM. No OCR step.
- Trained — your custom DSPy pipeline (BYOK only during MVP).
- Robust — extract + independent verification pass, for high-stakes documents.
- Robust + Trained — combine the two; trained pipeline plus verification, one call.
Execution modes
- Service — runs on ClicheFactory cloud with a ClicheFactory API key. All operations, including trained and robust.
- BYOK-service — ClicheFactory handles OCR and infrastructure; you supply your own LLM API key for the inference step. Reduced credit cost.
- Local — full pipeline on your machine via Ollama, OpenAI, Gemini, or Anthropic keys. Supports
extractandto_markdown. Air-gapped with Ollama.
Release notes
Dated, append-only. The block above is the source of truth for what currently exists; entries here describe what changed.
Public changelog started recently. Earlier history is summarized in the snapshot above — entries below describe changes from this point forward.