POML: Structured Prompt Engineering for LLMs with a Markup Language

This repository profile is provided by osrepos.com, an open source repository discovery platform.

POML: Structured Prompt Engineering for LLMs with a Markup Language

Summary

POML (Prompt Orchestration Markup Language) is a novel markup language developed by Microsoft for advanced prompt engineering. It brings structure, maintainability, and versatility to LLM applications by addressing common challenges like unstructured prompts and complex data integration. Developers can systematically organize prompt components, integrate diverse data types, and manage presentation variations for more sophisticated and reliable LLM interactions.

Repository Information

Analyzed by OSRepos on January 25, 2026

Topics

Click on any tag to explore related repositories

Use at your own risk

OSRepos shares public repositories for knowledge and discovery only. Any installation, execution, configuration, or use of code from these repositories is the user's own responsibility. Always review the repository, source code, dependencies, licenses, and security implications before running or installing anything. OSRepos is not responsible for issues, damages, or losses resulting from third-party repositories.

Introduction

POML (Prompt Orchestration Markup Language) is a novel markup language developed by Microsoft, designed to bring structure, maintainability, and versatility to advanced prompt engineering for Large Language Models (LLMs). It addresses common challenges in prompt development, such as lack of structure, complex data integration, and format sensitivity. POML empowers developers to create more sophisticated and reliable LLM applications by providing a systematic way to organize prompt components, integrate diverse data types seamlessly, and manage presentation variations. Key features include structured prompting markup, comprehensive data handling, decoupled presentation styling, an integrated templating engine, and a rich development toolkit.

Installation

Getting started with POML is straightforward, whether you prefer a Visual Studio Code extension or SDKs for Node.js and Python.

Visual Studio Code Extension

Install the POML extension directly from the Visual Studio Code Marketplace. After installation, ensure you configure your preferred LLM model, API key, and endpoint within the extension settings to enable prompt testing.

Node.js (via npm)

npm install pomljs

Python (via pip)

pip install poml

For more detailed installation instructions, including nightly builds, please refer to the official documentation.

Examples

Here is a simple POML example that demonstrates defining a role, a task, including an image, and specifying an output format for an LLM.

<poml>
  <role>You are a patient teacher explaining concepts to a 10-year-old.</role>
  <task>Explain the concept of photosynthesis using the provided image as a reference.</task>

  <img src="photosynthesis_diagram.png" alt="Diagram of photosynthesis" />

  <output-format>
    Keep the explanation simple, engaging, and under 100 words.
    Start with "Hey there, future scientist!".
  </output-format>
</poml>

This example illustrates how POML allows for clear separation of concerns, making prompts more readable and manageable. With the POML toolkit, this prompt can be easily rendered and tested with a vision LLM.

Why Use POML

POML offers significant advantages for anyone working with LLMs, from individual developers to large teams:

  • Structured Prompting: Employs an HTML-like syntax with semantic components, such as <role>, <task>, and <example>, promoting modular design and enhancing prompt readability, reusability, and maintainability.
  • Comprehensive Data Integration: Incorporates specialized data components like <document>, <table>, and <img> to seamlessly embed or reference external data sources, including text files, spreadsheets, and images, with customizable formatting options.
  • Decoupled Presentation Styling: Features a CSS-like styling system that separates content from presentation. This allows developers to modify styling, such as verbosity or syntax format, via <stylesheet> definitions or inline attributes without altering core prompt logic, effectively mitigating LLM format sensitivity.
  • Dynamic Prompt Generation: Includes a built-in templating engine with support for variables ({{ }}), loops (for), conditionals (if), and variable definitions (<let>) for dynamically generating complex, data-driven prompts.
  • Rich Development Toolkit: Provides an essential IDE extension for Visual Studio Code, offering syntax highlighting, context-aware auto-completion, real-time previews, inline diagnostics, and integrated interactive testing. SDKs for Node.js and Python ensure seamless integration into various application workflows.

Links

Explore POML further through these official resources:

Related repositories

Similar repositories that may be relevant next.

mcp-gateway: Unifying AI Tool Access with Reduced Context Overhead

mcp-gateway: Unifying AI Tool Access with Reduced Context Overhead

August 15, 2026

mcp-gateway is a powerful Rust binary designed to streamline AI agent interaction with diverse tools. It consolidates unlimited MCP servers and REST APIs behind a single, compact endpoint, drastically reducing context token overhead and enabling efficient tool access.

aillmmcp
Jan: An Open-Source, Offline ChatGPT Alternative for Your Desktop

Jan: An Open-Source, Offline ChatGPT Alternative for Your Desktop

August 14, 2026

Jan is a powerful open-source desktop application that provides a 100% offline alternative to ChatGPT. It allows users to download and run various large language models locally, ensuring complete control and privacy over their AI interactions. With support for multiple platforms, Jan offers a robust solution for personal and private AI use.

chatgptllmopen-source
TurboLLM: Run Local LLMs with Auto-Tuning, Any Engine, and a Polished UI

TurboLLM: Run Local LLMs with Auto-Tuning, Any Engine, and a Polished UI

August 13, 2026

TurboLLM is a powerful, lightweight solution for running local LLM engines, offering auto-tuning for your GPU and a polished web UI. It supports any llama-server compatible binary, including community forks, and provides both OpenAI and Anthropic-compatible APIs. This offline-first tool allows users to maximize performance and flexibility with their local language models.

aillmlocal-llm
Mercury Agent: A Soul-Driven AI with Hardened Permissions and Multi-Channel Access

Mercury Agent: A Soul-Driven AI with Hardened Permissions and Multi-Channel Access

August 12, 2026

Mercury Agent is a sophisticated, soul-driven AI agent designed for continuous 24/7 operation, offering robust permission-hardened tools, intelligent token budgeting, and versatile multi-channel access. It remembers what matters, asks for permission before acting, and runs seamlessly from the CLI, Telegram, or a web dashboard. With 31 built-in tools, Kanban boards, and a SQLite-backed Second Brain memory, Mercury provides a comprehensive and secure AI assistant experience.

ai-agentai-assistantllm

Source repository

Open the original repository on GitHub.

10 counted GitHub visits

View on GitHub
OS
OSRepos

Analysis and discovery of open source repositories. Find interesting projects and follow their updates.

Monitor your website with YourWebsiteScore

OSRepos shares public repositories for knowledge and discovery only. Any installation, execution, configuration, or use of third-party repository code is at your own risk. Always review source code, dependencies, licenses, and security implications before running anything.

© 2025 OSRepos. Built with Nuxt 3 and lots of ❤️