Cookbook

Copy-paste recipes that run offline.

Every sample in the cookbook runs without an API key — each one drives a provider-shaped fake client through the real Cendor seam, so the budgets, the costs and the audit chain are genuine over a canned response. Clone, run, adapt. Two repos, one per toolchain: a recipe folder name means the same thing in both.

18 of them also ship an optional live switch — a documented one-liner (an env var, the playground's Live mode, or a client swap) that trades the fake for a real provider using your key. Nothing needs a key to run; the switch is there when you want to see the same governance against real traffic.

cendor-cookbook (Python) → (opens in a new tab)cendor-cookbook-js (TypeScript) → (opens in a new tab)55 recipes · 109 folders across the two repos · 0 keys needed to run them · 18 with an optional live switch
Language
Category

Showing 55 of 55 recipes

m365-custom-engine-pyruns offline ✓

Govern a Microsoft 365 Agents SDK custom engine agent: a session cap held in TurnState, gates on the inbound Activity, evidence per turn, the whole agent replayed offline for $0 CI — and on the TypeScript side, a negative control for the afterTurn trap that silently stops the cap binding.

PythonTypeScriptMicrosoft 365corecontextkitsqueezetokenguardguardrailscassetteacttrace
Each recipe is also a regression test — CI runs every one of them on two Python versions and two Node versions, with no secrets configured. A recipe that needs a key to go green is treated as a bug in the recipe.
Get started

git clone → uv run — that's it.

$ git clone https://github.com/cendorhq/cendor-cookbook
$ git clone https://github.com/cendorhq/cendor-cookbook-js

Python: uv run python recipes/<category>/<name>/main.py — 20 of them also ship a notebook.ipynb. TypeScript: cd recipes/<category>/<name> && npm install && node index.mjs — typed index.mts source, runnable as plain JS with no build step. No keys · docs →

Two exceptions to the Python line, because their entry point is not main.py: apps/chat-playground is app.py, and testing/pytest-cassette is a pytest module (uv run pytest recipes/testing/pytest-cassette).

Wiring Cendor into an AI coding assistant? See For AI assistants or the MCP server.