Skip to main content

MikiUI

A Python-first UI framework that renders UIs as standalone desktops or websites.

Quick Start

pip install -e .
mikiui new myapp
cd myapp
mikiui dev           # development server
# or
mikiui desktop        # native desktop window

Styling

MikiUI supports two styling frameworks. Choose one during project creation:

mikiui new myapp
# Follow the prompts to choose Tailwind or plain CSS
Framework Description Node.js Required
tailwind Tailwind CSS + optional DaisyUI Yes
plain Plain CSS, no framework No

Tailwind CSS

cd myapp
npm install          # Install Node.js dependencies
mikiui dev           # Start dev server
mikiui tailwind dev  # Watch & rebuild CSS (second terminal)

Production build:

mikiui build --target web --theme tailwind

Add DaisyUI:

mikiui install tailwind daisyui

Plain CSS

cd myapp
mikiui dev           # No extra setup needed

What's Available

  • Components — all HTML elements as Python classes (Button, Input, Form, Table, Dialog, Tabs, etc.)
  • Widgets — high-level composite UI (DataGrid, MediaPlayer, DockablePanel, IDE Editor, ThemeSwitcher, etc.)
  • Themes — 4 built-in themes (light, dark, solarized-dark, dracula) with custom theme support
  • Styling — Tailwind CSS or plain CSS
  • Plugins — extend with custom themes, components, and widgets
  • Desktop — native pywebview window or system browser fallback
  • Full-stack — FastAPI backend with HTMX + Alpine.js runtime

Commands

Command Description
mikiui new <name> Scaffold a new project (prompts for framework)
mikiui dev Development server (auto-discovers app.py)
mikiui desktop Native desktop window (pywebview)
mikiui desktop --reload Desktop with auto-reload
mikiui desktop --browser Force system browser
mikiui build --target web Static web build
mikiui build --target desktop Desktop package build
mikiui tailwind dev Watch and rebuild Tailwind CSS
mikiui tailwind build Production Tailwind build
mikiui install tailwind Install Tailwind + npm deps

Running Your App

# app.py
from mikiui import MikiApp, Div, H1, Button

app = MikiApp(title="My App")
app.set_theme("dark")

@app.route("/", title="Home")
def home():
    return Div(H1("Welcome to MikiUI!"), Button("Click me"))

if __name__ == "__main__":
    app.run()       # python app.py
    # or: app.run(desktop=True)  for native window

Documentation

Production readiness

Use the following commands to validate the package and production build flow before shipping a release:

pip install -e .
python -m build
mikiui build --target web
mikiui build --target desktop
pytest

The framework is intended to support:

  • web deployment via static HTML/HTMX + FastAPI
  • desktop deployment via pywebview or browser fallback
  • a single Python codebase for component and widget reuse
  • Tailwind or plain CSS styling without changing app logic

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mikiui-0.0.1.tar.gz (391.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mikiui-0.0.1-py3-none-any.whl (440.1 kB view details)

Uploaded Python 3

File details

Details for the file mikiui-0.0.1.tar.gz.

File metadata

  • Download URL: mikiui-0.0.1.tar.gz
  • Upload date:
  • Size: 391.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for mikiui-0.0.1.tar.gz
Algorithm Hash digest
SHA256 c33ef873d9992184699ebbb79b0c6fe43b53c0c88420e4937041a442ef876bf3
MD5 9b364877ddecf0a976205d21ec1b6b34
BLAKE2b-256 4150a22e6d8125998e59d981266bc3f4a4575c9a3845c1cf52cb6f88ba66090c

See more details on using hashes here.

Provenance

The following attestation bundles were made for mikiui-0.0.1.tar.gz:

Publisher: release.yml on alainmiki/mikiUI

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mikiui-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: mikiui-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 440.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for mikiui-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3c71bf4e3d02be8d653486b98f46bf8e5b5a854676d72ae6be22fb8fea8a4fbe
MD5 0d1e9de97fc9b3fe4f30c0a80b9c59ae
BLAKE2b-256 3e37c38b51565bc04f231d1f8c7d31212a550eaccc6ef0edeb3c29b48531bc83

See more details on using hashes here.

Provenance

The following attestation bundles were made for mikiui-0.0.1-py3-none-any.whl:

Publisher: release.yml on alainmiki/mikiUI

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.2.0

2 files

This release

0.0.1 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page