Praxis AI is an AI gateway built on Praxis. It brings provider-aware routing, protocol translation, stateful OpenAI APIs, and agent traffic into a configurable proxy. Clients keep their API shape while the gateway selects backends and applies policy.
- Route by what a request contains. Classify OpenAI Responses, Chat Completions, and Anthropic Messages traffic; select backends by API format, model, or MCP tool name. See the unified gateway and intelligent routing examples.
- Proxy or translate provider APIs. Forward native provider traffic or serve Anthropic Messages and OpenAI Responses clients from Chat Completions-compatible backends, including streaming responses. See the Anthropic and Responses examples.
- Reach managed cloud models. Adapt OpenAI Chat Completions traffic to the managed-provider wire formats of Azure OpenAI, AWS Bedrock Converse, and Google Vertex AI Gemini — streaming included — and authenticate each upstream with AWS SigV4, Entra ID, or Google ADC. See the Azure, Bedrock, and Vertex examples.
- Code harness support. Run Codex through OpenAI Responses, Claude Code through Anthropic Messages, and OpenCode through Chat Completions. The coding client guide shows each client reaching native vLLM endpoints or Chat Completions through translation.
- Manage OpenAI response state. Persist and rehydrate Responses history, serve Conversations endpoints locally, and use PostgreSQL or SQLite for storage. Fully supports both OpenAI Python SDK 2.x and 3.x client versions. See the response store guide and Conversations example.
- Connect tools and agents. Run Responses tool loops with MCP, web search, and file search; route stateless MCP calls and A2A task follow-ups. See the agentic Responses, MCP broker, and A2A routing examples.
- Apply policy and control cost. Inject upstream credentials, enrich prompts, call external guardrails, enforce token rate limits and ceilings, expose token usage, and report metering data. See the token rate limit and external metering examples, and the feature overview for the full list.
- Extend the pipeline with custom Rust filters built on Praxis's
HttpFilterinterface.
See the complete feature overview and filter reference for the full list.
Clients keep their provider-native protocols while Praxis AI classifies, transforms, and routes traffic through one policy-driven gateway.
Praxis supplies the proxy runtime, listeners, TLS, load balancing, and filter framework. Praxis AI packages the AI-specific filters and server on top of it. Keeping them in separate repositories lets the AI integrations evolve independently while Praxis remains useful for general proxy workloads. See our conventions for the project structure and development practices.
Build and start the gateway with its built-in configuration:
make release
./target/release/praxis-aimake release builds the full feature set. A plain
cargo build -p praxis-ai-proxy builds the smaller standard set, which
leaves out the stateful OpenAI filter groups and their dependencies; see
Cargo features.
Then check that it is running:
curl http://127.0.0.1:8080/{"status": "ok", "server": "praxis-ai"}Ready to connect a backend? Follow the quickstart, or choose from the example configurations for OpenAI, Anthropic, MCP, A2A, routing, guardrails, token usage, and more.
| If you want to… | Start here |
|---|---|
| Run Praxis AI locally | Quickstart |
| Browse supported capabilities | Feature overview |
| Configure a filter | Filter reference |
| Understand the design | Architecture docs |
| Build or test the workspace | Development guide |
| Add a new filter | Adding filters |
Praxis AI handles the AI-specific layer. For listeners, TLS, load balancing, rate limiting, health checks, and other core proxy features, visit the Praxis repository.
Important
Praxis AI is alpha software. APIs, configuration, and operational
behavior may change before v1.0.0. See the security policy
for the supported release line.
Released container images are available from
ghcr.io/praxis-proxy/ai. Source builds and local
development instructions are in the development guide.
docker pull ghcr.io/praxis-proxy/ai:latestPodman can pull the same OCI image. See the quickstart for a source build
and the release documentation for image contents and tagging. A FIPS 140-3
build for Red Hat Enterprise Linux hosts is published under the same tags
with a -fips suffix (for example latest-fips); see
FIPS 140-3.
Contributions are welcome, from bug reports and documentation fixes to new filters and protocol support. Before opening a pull request, please read the contributing guide and development setup.
For larger changes, open a feature request and follow the proposal process so we can shape the idea together.
Open an issue · Request a feature · Open a pull request
Apache 2.0