Welcome
Welcome to XMLUI! Here's what you need to know to get started.
Demo apps
We provide these demo apps:
xmlui-hello-world: A minimal XMLUI app. Run it in an online playground, or use the XMLUI CLI to download and run locally.
xmlui-weather: A simple weather dashboard. Run it in an online playground, or use the XMLUI CLI to download and run locally.
xmlui-invoice: A complete database-backed app. Use the XMLUI CLI to download and run locally.
The XMLUI CLI
You will use the XMLUI CLI (command line interface) to run demo apps locally, and to provide MCP (model context protocol) tools for coding assistants like Claude and Cursor. To install it, visit the release page, download the zip file for your platform, extract the xmlui binary it contains, and place it on your system path.
Once installed you can acquire and run all three apps locally.
xmlui run https://github.com/xmlui-org/xmlui-hello-world/releases/latest/download/xmlui-hello-world.zip
xmlui run https://github.com/xmlui-org/xmlui-weather/releases/latest/download/xmlui-weather.zip
xmlui run https://github.com/xmlui-org/xmlui-invoice/releases/latest/download/xmlui-invoice.zip
See this blog post for details.
Working with AIs
Once the XMLUI CLI is installed, you can configure AI coding assistants to use its bunded MCP server. Here's a sample claude_desktop_config.json that works with Claude Desktop or (using claude mcp add-from-claude-desktop) Claude Code.
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/YOURNAME/xmlui-invoice",
"/Users/YOURNAME/xmlui-weather"
]
},
"xmlui": {
"command": "/usr/local/bin/xmlui",
"args": [
"mcp",
"-e",
"/Users/YOURNAME/xmlui-invoice",
"-e",
"/Users/YOURNAME/xmlui-weather",
]
}
}
}
Other AIs
Cursor and Kiro: same as above.
Copilot
{
"servers": {
"xmlui": {
"type": "stdio",
"command": "/usr/local/bin/xmlui",
"args": [
"mcp",
"-e",
"/Users/YOURNAME/xmlui-invoice",
"-e",
"/Users/YOURNAME/xmlui-weather",
]
}
}
}
Codex
[mcp_servers.xmlui] command = "/usr/local/bin/xmlui" args = [ "mcp", "-e", "/Users/YOURNAME/xmlui-invoice", "-e", "/Users/YOURNAME/xmlui-weather" ]