← Go to all posts

Introducing the XMLUI CLI

Your all-in-one tool for working with XMLUI.
Jon Udell • 19 Dec 2025

To try XMLUI frictionlessly you can run and modify demo apps online: xmlui-hello-world, xmlui-weather. But if you use one of these as a springboard for your own app you'll want to download and run locally. For that you'll need a minimal static web server. And if you are using an AI coding assistant you'll want it to use XMLUI's MCP server. To streamline the setup we provide the XMLUI CLI (command line interface). When you download and install the CLI you'll add a single binary, xmlui to your system. Here's how you'll use it.

List demo apps

We maintain a growing catalog of demo apps you can explore and use as springboards for your own work. Use xmlui list to list them.

$ xmlui list-demos
xmlui-hello-world: The simplest XMLUI app to get you started.

xmlui-weather: A simple weather dashboard that displays current weather conditions for any city.

xmlui-invoice: A complete business application for invoice management with a local server and database.

Acquire a demo app

Use xmlui new to acquire an app.

$ xmlui new xmlui-weather
Downloading xmlui-weather (XMLUI Weather Dashboard)...
Extracting to xmlui-weather...
To run the app, visit xmlui-weather and use `xmlui run`

In the app's directory xmlui run suffices, from elsewhere you can use the full path.

$ xmlui run /Users/elvis/xmlui-weather
Serving /Users/elvis/xmlui-weather
Available on: http://localhost:8080

xmlui uses its bundled static webserver to host the app. Your system will launch the default browser and open the app on port 8080 (or another if that's taken).

Configure the MCP server

The xmlui mcp subcommand launches the MCP server in stdio mode. When a coding agent invokes it, the MCP server downloads portions of the main XMLUI repository, including the documentation and source code, so it can inform the agent about XMLUI syntax and idioms.

As with any MCP server you'll need to use a configuration file to make it available to agents, and the names and formats of those files are unfortunately not standard. Here's an example that works with Claude's claude_desktop_config.json. The first argument to xmlui names the mcp subcommand. You'll probably want to place the xmlui binary on your system path but it never hurts to be explicit about its location.

{
  "mcpServers": {
    "xmlui": {
      "command": "/usr/local/bin/xmlui",
      "args": [
        "mcp"
      ]
    }
  }
}

You can optionally add one or more apps to the pool of examples that an agent can use XMLUI's MCP server to search. To do that, use the -e argument and a path argument one or more times, and use the filesystem MCP server to grant access to those locations.

{
  "mcpServers": {
    "xmlui": {
      "command": "/usr/local/bin/xmlui",
      "args": [
        "mcp"
        "-e",
        "/Users/elvis/xmlui-weather",
        "-e",
        "/Users/elvis/xmlui-invoice"
      ]
    },
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/elvis/xmlui-weather",
        "/Users/elvis/xmlui-invoice",
      ]
    },
  }
}

Build and share

The CLI will help you manage the tools needed for effective XMLUI development. If you build an app that you want to share, you can use this mode of xmlui run.

xmlui run https://github.com/xmlui-org/xmlui-weather/releases/latest/download/xmlui-weather.zip

This works not only for our demos but also for any XMLUI app bundled as a zip file. The CLI will download the zip file, unzip it, and launch it using its bundled webserver.

One of our demos, xmlui-invoice, includes a webserver that embeds SQLite. The release bundle for xmlui-invoice includes prebuilt server binaries and a start script to run them. When xmlui run finds a start script it will run that script instead of launching its own test server. You can use this pattern to build shareable apps that need custom infrastructure.

When you've built something you want to share, please let us know!