{"library":"prompty","title":"Prompty Python Runtime","description":"Prompty is a new asset class and format for LLM prompts that aims to provide observability, understandability, and portability for developers. It includes a specification, tooling, and a runtime. The Python runtime (current version 0.1.50) allows developers to load, render, parse, and execute Prompty files within Python applications. It's actively developed by Microsoft, with distinct release cycles for its Python, C#, and TypeScript bindings.","language":"python","status":"active","last_verified":"Sat May 16","install":{"commands":["pip install prompty","pip install prompty[openai,azure,jinja2,all]"],"cli":null},"imports":["import prompty","from prompty.tracer import Tracer, console_tracer, PromptyTracer, trace"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nimport prompty\n\n# Create a dummy .prompty file for the example\nprompty_content = \"\"\"\n---\nname: greeting\nmodel:\n  id: gpt-4o-mini\n  provider: openai\n  connection:\n    kind: key\n    apiKey: ${env:OPENAI_API_KEY}\ninputSchema:\n  properties:\n    name:\n      kind: string\n      default: World\ntemplate:\n  format:\n    kind: jinja2\n  parser:\n    kind: prompty\n---\nsystem: You are a friendly assistant.\nuser: Say hello to {{name}}.\n\"\"\"\n\nwith open(\"greeting.prompty\", \"w\") as f:\n    f.write(prompty_content)\n\n# Ensure OPENAI_API_KEY is set in your environment\n# For local testing, you might set it like this:\n# os.environ[\"OPENAI_API_KEY\"] = \"your_openai_api_key_here\"\nopenai_api_key = os.environ.get('OPENAI_API_KEY', '')\n\nif not openai_api_key:\n    print(\"Warning: OPENAI_API_KEY environment variable not set. Skipping execution.\")\n    print(\"Please set OPENAI_API_KEY for the quickstart to run successfully.\")\nelse:\n    try:\n        # One-shot: load + prepare + run\n        result = prompty.execute(\n            \"greeting.prompty\", \n            inputs={\"name\": \"Jane\"}\n        )\n        print(\"\\nPrompty execution result (one-shot):\")\n        print(result)\n\n        # Step-by-step example\n        agent = prompty.load(\"greeting.prompty\")\n        messages = prompty.prepare(\n            agent, \n            inputs={\"name\": \"World\"}\n        )\n        step_by_step_result = prompty.run(agent, messages)\n        print(\"\\nPrompty execution result (step-by-step):\")\n        print(step_by_step_result)\n    except Exception as e:\n        print(f\"\\nAn error occurred during Prompty execution: {e}\")\n        print(\"Ensure your OPENAI_API_KEY is valid and has access to gpt-4o-mini.\")\n\n# Clean up the dummy file\nos.remove(\"greeting.prompty\")\n","lang":"python","description":"This quickstart demonstrates how to create a `.prompty` file and execute it using the `prompty.execute` function for a one-shot operation, or `prompty.load`, `prompty.prepare`, and `prompty.run` for a step-by-step pipeline. It uses an OpenAI model and requires the `OPENAI_API_KEY` environment variable to be set.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-16","installed_version":"0.1.50","pypi_latest":"0.1.50","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":4.9,"avg_import_s":0.48,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"prompty","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"22.5M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"openai,azure,jinja2,all","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.31,"mem_mb":8.3,"disk_size":"76.7M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"prompty","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":2.2,"import_time_s":null,"mem_mb":null,"disk_size":"24M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"openai,azure,jinja2,all","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":8.4,"import_time_s":0.21,"mem_mb":8.3,"disk_size":"76M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"prompty","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"25.2M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"openai,azure,jinja2,all","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.59,"mem_mb":9.8,"disk_size":"82.9M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"prompty","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":2.1,"import_time_s":null,"mem_mb":null,"disk_size":"26M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"openai,azure,jinja2,all","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":7.6,"import_time_s":0.51,"mem_mb":9.8,"disk_size":"83M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"prompty","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"16.9M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"openai,azure,jinja2,all","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.67,"mem_mb":9.7,"disk_size":"73.7M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"prompty","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":1.9,"import_time_s":null,"mem_mb":null,"disk_size":"18M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"openai,azure,jinja2,all","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":6.3,"import_time_s":0.7,"mem_mb":9.7,"disk_size":"74M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"prompty","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"16.7M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"openai,azure,jinja2,all","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.68,"mem_mb":10.2,"disk_size":"73.5M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"prompty","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":2,"import_time_s":null,"mem_mb":null,"disk_size":"18M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"openai,azure,jinja2,all","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":6.4,"import_time_s":0.64,"mem_mb":10.2,"disk_size":"73M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"prompty","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"21.9M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"openai,azure,jinja2,all","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.25,"mem_mb":8.3,"disk_size":"76.5M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"prompty","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":2.4,"import_time_s":null,"mem_mb":null,"disk_size":"23M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"openai,azure,jinja2,all","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":9.4,"import_time_s":0.26,"mem_mb":8.3,"disk_size":"76M"}]}}