Blog /
Introducing Cendor: production plumbing for LLM applications
Seven composable libraries and a governed agent SDK for the layer beneath your agent framework — context, cost, guardrails, testing, and audit, in Python and TypeScript. Local-first, Apache-2.0.
You shipped an LLM agent. Then production happened: prompts overflow the context window, cost is a black box, every test hits a paid non-deterministic API, and when something goes wrong there’s no record of what the agent saw, did, or refused. Agent frameworks decide what your agent does — they don’t handle these cross-cutting, under-the-call concerns.
Cendor does. It’s one stack with two doors, sharing the flat cendor.* / @cendor/*
namespace across Python and TypeScript.
Door one — the libraries
Seven small, composable libraries that plug in beneath LangChain, LlamaIndex, or any SDK:
- contextkit — assemble context to a token budget, with a kept/shrunk/dropped receipt.
- squeeze — reversible, content-aware compression.
- tokenguard — pre-flight budget caps and per-feature/user cost attribution.
- guardrails — a deterministic gate at four stages: block, redact, or flag before the call.
- cassette — record a whole run once, replay it forever offline.
- acttrace — a tamper-evident, offline-verifiable audit chain.
…all on a tiny shared core. You wrap your client once with instrument(); every tool subscribes
to one in-process event bus — none monkey-patches your client, none imports another.
pip install cendor-libs # or: npm i @cendor/libs
Door two — the agent SDK
cendor-sdk is a governed, provider-agnostic agent SDK where budgets, tamper-evident audit, PII redaction, and record/replay testing are the foundation, not plugins — a governed agent in about 10 lines, built on the seven libraries so you can always drop down to them.
pip install "cendor-sdk[openai,anthropic]" # or: npm i @cendor/sdk
Honest numbers
Every claim is backed by the reproducible benchmark suite — offline, no network,
no API keys: uv run python benchmarks/run_all.py.
- 0% token-count error vs the real tokenizer (OpenAI, with
tiktokenas a required dependency) — exact, not estimated. - 97% smaller logs — compressed reversibly, restored byte-for-byte.
- ~15 µs
instrument()overhead per call (bus emit + usage extraction + Decimal pricing). - 1 byte — a single edited byte breaks the audit chain and
verify()fails. - Money is always
Decimal/decimal.js, never a float.
acttrace produces evidence to support a compliance case — it is not a compliance guarantee, and
not legal advice.
Get started
- Docs: cendor.ai/docs — one page per library, plus the parity matrix.
- Try it in your browser: cendor.ai/try — the real packages running on Pyodide, no server.
- Recipes: the cookbook — every recipe runs offline, no key.
Local-first. No servers. Apache-2.0. Two doors, one honest stack.