Runnable, self-contained demos and setups for Praxis.
Each demo lives under demos/<name>/ with its own README.
| Demo | Description |
|---|---|
| anthropic-messages | Route Anthropic /v1/messages requests to any backend — Anthropic API, vLLM, or OpenAI-compatible — with optional format transformation via composable filters. |
| authpolicy-transpiler | Offline CLI that transpiles a Kuadrant AuthPolicy into Praxis policy config (a policy-filter block plus a Praxis Policy Engine policy document), with a coverage report showing what maps to CEL and what is out of scope. |
| policy-engine | Policy enforcement on MCP traffic: authorization flows connecting identity to access control decisions with Cedar or CEL PDP, delegation, out-of-band elicitation, data redaction, and session tainting. |
| openai-responses-stateless | Stateless passthrough for OpenAI /v1/responses with store: false. Praxis classifies the request, detects stateless mode, and proxies directly to vLLM — no buffering, no persistence, no transformation. |
| openai-responses-codex-passthrough | Live Codex CLI passthrough to the OpenAI Responses API. Demonstrates model alias rewriting, default injection, effective-model headers, SSE, and a Codex-owned tool loop. Run the all-in-one narrated demo or each step individually. |
| openai-responses-multi-turn | Multi-turn conversation (non-streaming) for the OpenAI Responses API. Praxis stores turn 1 in SQLite, then rehydrates the conversation history on turn 2 via previous_response_id and rebuilds the request body before forwarding to vLLM. |
| openai-responses-streaming-multi-turn | Streaming multi-turn with previous_response_id. Turn 1 non-streaming stored in SQLite, turn 2 streaming with rehydrated history — SSE events accumulated by openai_stream_events and persisted at end-of-stream. |
| openai-conversations | Full CRUD lifecycle for the OpenAI /v1/conversations API handled entirely locally by Praxis — create, retrieve, update, delete conversations and items, all backed by SQLite with no upstream traffic. |
| openai-conversations-multi-turn | Multi-turn via conversation field — create a conversation, reference it by ID on each turn. Praxis rehydrates stored items, forwards full context to vLLM, and auto-appends input+output back to the conversation. |
| openai-responses-file-resolve | File resolution + document extraction — send a file_id in a Responses API request, Praxis resolves it via OGX, extracts text content, and converts input_file → input_text for vLLM. |
| openai-responses-agentic-loop | Server-side agentic loop — model calls an MCP tool, Praxis dispatches to the MCP server and loops the result back to the model for a final answer. No client-side orchestration needed. |
| openai-responses-file-search | Server-side file search — model calls file_search, Praxis dispatches to OGX's vector store search API, loops back with ranked results, and the model answers grounded in retrieved documents. |
| skillberry-agent-proxy | A fully automated demo of Praxis as an agentic gateway for the Skillberry Agent platform, based on skillberry-agent-praxis-poc |
Multi-cluster Grid demos that prove distributed inference routing with
runtime assertions. Each demo requires a local
praxis-proxy/grid checkout
(or set GRID_REPO), Docker, kind, and Rust.
| Demo | Description |
|---|---|
| grid-glb-demo | Local GTM emulator, multiple active edges, independent provider selection |
| grid-workload-inference | Cluster-local workload entry without public ingress |
| grid-llmd-pool-metrics | EPP telemetry, Grid scoring, A-to-B-to-A capacity failover |
| grid-combined-site | Consumer and secured provider roles colocated at each site |
Script-driven Grid demos and reference guides for specific topics.
| Demo | Description |
|---|---|
| grid-route53-edge-entry | Route 53 DNS edge selection with Grid provider routing on existing OpenShift clusters |
| grid-metrics-mtls | Secret-backed TLS and mTLS for InferenceProvider metrics scraping |
| Demo | Description |
|---|---|
| maas-ipp | Single-cluster MaaS IPP lab reproducing the stock MaaS Kind datapath with Forge |
demos/
<name>/
README.md # what it shows and how to run it
... # configs, scripts, and any services
Do not commit videos or other large binary media to this repository. They bloat the git history for everyone who clones or fetches, and git cannot compress already-compressed formats like MP4.
Instead, upload media as GitHub artifacts (e.g. drag files into markdown editor on the web, or use a release asset, or a workflow artifact) and link them from the relevant documentation.
Apache 2.0