Open-source prompt infrastructure toolkit
An open-source prompt infrastructure toolkit that enables versioning, updating, and governing prompts in production without redeploying your application. Treat prompts as code with version-controlled templates, deploy-free updates, team collaboration features, and observability.
open source · prompt infrastructure
Prompts are code. Treat them like it.
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.
Get StartedStar the Repo
sql_generator.tmplv3 · live
template
System: You are a SQL expert. Query to {{ .task }}:
sdk call
import px0
client = px0.ApiClient(px0.Configuration()) renders_api = px0.PromptRendersApi(client) response = renders_api.render_live( slug="sql_generator", render_request=px0.RenderRequest( variables={"task": "list active users"} ) )import { Configuration, PromptRendersApi } from "@px0-ai/px0";
const rendersApi = new PromptRendersApi( new Configuration() ); const response = await rendersApi.renderLive( "sql_generator", { variables: { task: "list active users" } } );import "github.com/px0-ai/px0-go"
client := px0.NewAPIClient( px0.NewConfiguration(), )
req := px0.NewRenderRequest() req.SetVariables(map[string]interface{}{ "task": "list active users", })
res, _, _ := client.PromptRendersAPI. RenderLive(nil, "sql_generator"). RenderRequest(*req). Execute()
// what px0 gives you
Prompt Registry
⛨ vpc
Self-Hosted & Private
Deploy in your own cloud, VPC, or on-premises. Retain absolute ownership of your templates, data, and access controls for compliance.
on-prem · vpc
". ."
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
∅ 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
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
{ }
Easy Templating
Write prompts as code: variables, conditionals, loops, filters, macros. Sandboxed rendering. No more concatenated strings.
easy · 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
🔒 rbac
Team-Level RBAC
Role-based access control and granular team permissions. Define policies for who can view, edit, draft, or publish prompt templates.
granular access
≡ Δ
Draft & Review
Draft - Review - Publish workflow. Visual diff between any two versions. Comprehensive change tracking of every edit and revision.
change review
◎ otel
OTEL Observability
Every render is traced and measured. Push rendering latency, performance, and error metrics to any OpenTelemetry-compatible backend.
otel · metrics