px0 - Open Source Prompt Infrastructure
open source · prompt infrastructure<br>Prompts are code.<br>Treat them like it.<br>An open-source prompt infrastructure toolkit that lets you version, update, and govern prompts in production, eliminating the need to hardcode prompts or redeploy your application for prompt changes.<br>Get StartedStar the Repo
sql_generator.tmplv3 · live<br>template<br>System: You are a SQL expert.<br>Query to {{ .task }}:
sdk call<br>PythonNode.jsGo<br>import px0
client = px0.ApiClient(px0.Configuration())<br>renders_api = px0.PromptRendersApi(client)<br>response = renders_api.render_live(<br>slug="sql_generator",<br>render_request=px0.RenderRequest(<br>variables={"task": "list active users"}<br>)import {<br>Configuration,<br>PromptRendersApi<br>} from "@px0-ai/px0";
const rendersApi = new PromptRendersApi(<br>new Configuration()<br>);<br>const response = await rendersApi.renderLive(<br>"sql_generator",<br>{ variables: { task: "list active users" } }<br>);import "github.com/px0-ai/px0-go"
client := px0.NewAPIClient(<br>px0.NewConfiguration(),
req := px0.NewRenderRequest()<br>req.SetVariables(map[string]interface{}{<br>"task": "list active users",<br>})
res, _, _ := client.PromptRendersAPI.<br>RenderLive(nil, "sql_generator").<br>RenderRequest(*req).<br>Execute()
// what px0 gives you<br>Prompt Registry<br>⛨ vpc<br>Self-Hosted & Private<br>Deploy in your own cloud, VPC, or on-premises. Retain absolute ownership of your templates, data, and access controls for compliance.<br>on-prem · vpc<br>". ."<br>No Hardcoded Strings<br>Prompt text lives in version-controlled templates, not scattered across your codebase. No more grep-and-replace to update a prompt.<br>zero hardcoding<br>∅ ci<br>Deploy-Free Updates<br>Push a new template version and it goes live instantly. No PR, no build pipeline, no service restart required.<br>instant rollout<br>sdk<br>5-Line Integration<br>One render() call, same API across Python, Node, and Go. Swap the template name, never touch calling code again.<br>python · node · go<br>{ }<br>Easy Templating<br>Write prompts as code: variables, conditionals, loops, filters, macros. Sandboxed rendering. No more concatenated strings.<br>easy · sandboxed<br>v1 v2 v3<br>Atomic Versioning<br>Published versions are immutable. Go-live is atomic, no partial deployments. Roll back to any version in one operation.<br>immutable · diff<br>🔒 rbac<br>Team-Level RBAC<br>Role-based access control and granular team permissions. Define policies for who can view, edit, draft, or publish prompt templates.<br>granular access<br>≡ Δ<br>Draft & Review<br>Draft - Review - Publish workflow. Visual diff between any two versions. Comprehensive change tracking of every edit and revision.<br>change review<br>◎ otel<br>OTEL Observability<br>Every render is traced and measured. Push rendering latency, performance, and error metrics to any OpenTelemetry-compatible backend.<br>otel · metrics