--- title: DevUI Overview description: Learn how to use DevUI, a sample app for running and testing agents and workflows in the Microsoft Agent Framework. author: moonbox3 ms.topic: overview ms.author: evmattso ms.date: 04/01/2026 ms.service: agent-framework zone_pivot_groups: programming-languages --- # DevUI - A Sample App for Running Agents and Workflows DevUI is a lightweight, standalone sample application for running agents and workflows in the Microsoft Agent Framework. It provides a web interface for interactive testing along with an OpenAI-compatible API backend, allowing you to visually debug, test, and iterate on agents and workflows you build before integrating them into your applications. > [!IMPORTANT] > DevUI is a **sample app** to help you visualize and debug your agents and workflows during development. It is **not** intended for production use. ::: zone pivot="programming-language-csharp" ## Coming Soon DevUI documentation for C# is coming soon. Please check back later or refer to the Python documentation for conceptual guidance. ::: zone-end ::: zone pivot="programming-language-python"

Agent Framework DevUI dashboard showing agent directory and tracing

## Features - **Web Interface**: Interactive UI for testing agents and workflows - **Flexible Input Types**: Support for text, file uploads, and custom input types based on your workflow's first executor - **Directory-Based Discovery**: Automatically discover agents and workflows from a directory structure - **In-Memory Registration**: Register entities programmatically without file system setup - **OpenAI-Compatible API**: Use the OpenAI Python SDK to interact with your agents - **Sample Gallery**: Browse and download curated examples when no entities are discovered - **Tracing**: View OpenTelemetry traces for debugging and observability ## Input Types DevUI adapts its input interface based on the entity type: - **Agents**: Support text input and file attachments (images, documents, etc.) for multimodal interactions - **Workflows**: The input interface is automatically generated based on the first executor's input type. DevUI introspects the workflow and reflects the expected input schema, making it easy to test workflows with structured or custom input types. This dynamic input handling allows you to test your agents and workflows exactly as they would receive input in your application. ## Installation Install DevUI from PyPI: ```bash pip install agent-framework-devui --pre ``` ## Quick Start ### Option 1: Programmatic Registration Launch DevUI with agents registered in-memory: ```python from agent_framework import Agent from agent_framework.openai import OpenAIChatClient from agent_framework.devui import serve def get_weather(location: str) -> str: """Get weather for a location.""" return f"Weather in {location}: 72F and sunny" # Create your agent agent = Agent( name="WeatherAgent", client=OpenAIChatClient(), tools=[get_weather] ) # Launch DevUI serve(entities=[agent], auto_open=True) # Opens browser to http://localhost:8080 ``` ### Option 2: Directory Discovery (CLI) If you have agents and workflows organized in a directory structure, launch DevUI from the command line: ```bash # Launch web UI + API server devui ./agents --port 8080 # Web UI: http://localhost:8080 # API: http://localhost:8080/v1/* ``` See [Directory Discovery](./directory-discovery.md) for details on the required directory structure. ## Using the OpenAI SDK DevUI provides an OpenAI-compatible Responses API. You can use the OpenAI Python SDK to interact with your agents: ```python from openai import OpenAI client = OpenAI( base_url="http://localhost:8080/v1", api_key="not-needed" # API key not required for local DevUI ) response = client.responses.create( metadata={"entity_id": "weather_agent"}, # Your agent/workflow name input="What's the weather in Seattle?" ) # Extract text from response print(response.output[0].content[0].text) ``` For more details on the API, see [API Reference](./api-reference.md). ## CLI Options ```bash devui [directory] [options] Options: --port, -p Port (default: 8080) --host Host (default: 127.0.0.1) --headless API only, no UI --no-open Don't automatically open browser --tracing Enable OpenTelemetry tracing --reload Enable auto-reload --mode developer|user (default: developer) --auth Enable Bearer token authentication --auth-token Custom authentication token ``` ::: zone-end ## Next Steps - [Directory Discovery](./directory-discovery.md) - Learn how to structure your agents for automatic discovery - [API Reference](./api-reference.md) - Explore the OpenAI-compatible API endpoints - [Tracing & Observability](./tracing.md) - View OpenTelemetry traces in DevUI - [Security & Deployment](./security.md) - Best practices for securing DevUI - [Samples](./samples.md) - Browse sample agents and workflows