open source · prompt infrastructure

Prompts are code.
Treat them like it.

Stop hardcoding prompts. px0 brings versioned Jinja templates, in-process caching, A/B testing, and OTEL prompt observability to your AI stack - so you can iterate faster and deploy with confidence.

Still building. Reach out if you want early access.

customer_support.j2v7 · live
template
{# customer_support · v7 #}
{% set tone = "formal" if user.tier == "enterprise" else "friendly" %}

You are a {{ tone }} assistant for {{ company.name }}.
User: {{ query }}
Lang: {{ lang | default("English") }}
sdk call
import px0

prompt = px0.render("customer_support", {
    "user":    user,
    "company": company,
    "query":   query,
})
import { px0 } from "px0"

const prompt = await px0.render("customer_support", {
  user, company, query,
})

prompt, err := px0.Render("customer_support",
    map[string]any{
        "user":    user,
        "company": company,
        "query":   query,
    },
)

// what px0 gives you

Prompt Registry

". ."

No Hardcoded Strings

Prompt text lives in version-controlled templates, not scattered across your codebase. No more grep-and-replace to update a prompt.

zero hardcoding
sdk

5-Line Integration

One render() call, same API across Python, Node, and Go. Swap the template name, never touch calling code again.

python · node · go
∅ ci

Deploy-Free Updates

Push a new template version and it goes live instantly. No PR, no build pipeline, no service restart required.

instant rollout
{ }

Jinja Templates

Write prompts as code: variables, conditionals, loops, filters, macros. Sandboxed rendering. No more concatenated strings.

jinja2 · sandboxed
v1 v2 v3

Atomic Versioning

Published versions are immutable. Go-live is atomic, no partial deployments. Roll back to any version in one operation.

immutable · diff
~ <2ms

Smart Caching

In-process cache with TTL and push-based invalidation. Background async refresh before expiry. Cache warming on startup.

<2ms p99
A / B

A/B Testing

Split traffic across multiple prompt versions by percentage. Let your metrics pick the winner, not gut feelings.

traffic split
◎ otel

OTEL Observability

Every render is traced and measured. Push latency, cache hit rate, and error metrics to any OpenTelemetry-compatible backend.

otel · metrics
≡ Δ

Draft & Audit

Draft - Review - Publish workflow. Visual diff between any two versions. Full audit trail of every change, by whom, and when.

audit trail