$npx skillfedfor your agent

htag

Python3 GUI toolkit for building 'beautiful' applications for mobile, web, and desktop from a single codebase

With conditionsPyPI User InterfacesReleased Jul 2026134.7K downloads / moMITPure Python

Decision gist · record as of 2026-08-14

pure-Python wheel — htag-2.0.28-py3-none-any.whl
v2.0.28 · released 2026-07-02 · Python >=3.10 · 3 runtime deps: starlette, uvicorn, websockets

Yes, if you want to build web or desktop GUIs in Python with a modern reactive framework and cross-platform support. The low install friction, active maintenance, MIT license, and zero known vulnerabilities make it a safe choice. Verify that the fallback communication modes and Android support meet your specific deployment requirements before committing to production use.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Requires Python 3.10 or later.
  • Desktop runners (ChromeApp) need a browser environment; web deployment requires starlette or FastAPI.
  • Low install friction with a pure-Python wheel.

License · maintenance · safety

MIT (permissive) — MIT license permits unrestricted use, modification, and distribution in both open-source and proprietary projects with minimal obligations.

last release 2026-07-02 (43 days) · last repo commit 2026-07-02 · 111 stars

0 known vulnerabilities (OSV.dev, 2026-08-14) · 134,706 downloads/mo, #11,465 on PyPI

Verify before relying

pip install -U htag

from htag import Tag

class App(Tag.App):
    def render(self):
        return Tag.div("Hello, htag")

from htag.runners import ChromeApp
ChromeApp(App).run()
  • Whether the framework's hot-reload and fallback communication modes (WebSocket → HTTP SSE → pure HTTP) work reliably in production environments with strict network policies.
  • Performance characteristics and scalability limits for applications with many concurrent users or complex component trees.
  • Maturity and stability of Android app building support, given the description notes it 'needs to improve'.
Same gist for agents: .md · .json

What it is and what it does

htag is a reactive Python GUI framework that lets you write web, desktop, and mobile applications using a single codebase. It provides HTML-like components (Tag.div, Tag.button, etc.) with a Python-native API, state management via reactive State objects, and automatic UI synchronization. The framework handles communication via WebSocket with graceful fallbacks to HTTP SSE and pure HTTP, making it suitable for environments with restrictive network policies.

Applications are built as component trees using declarative syntax with context managers, scoped CSS styles, and event handling. It integrates with starlette/FastAPI for web deployment, runs as a ChromeApp for desktop, and supports PyScript for SPA HTML pages. The framework emphasizes developer experience with hot-reload, better error handling, and minimal boilerplate compared to its v1 predecessor.

Use it for

  • Build a web dashboard that runs on starlette/FastAPI with real-time updates via WebSocket, falling back to HTTP polling in restricted networks.
  • Create a cross-platform desktop application using ChromeApp that works on Linux, Windows, and macOS from the same Python codebase.
  • Develop a single-page application (SPA) using PyScript that runs entirely in the browser without a Python backend.
  • Build a mobile-first web app with reactive state management and scoped component styles for responsive design.
  • Prototype interactive data visualization or admin tools quickly with minimal boilerplate and automatic UI reactivity.

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

With conditions

Yes, if you want to build web or desktop GUIs in Python with a modern reactive framework and cross-platform support.

The low install friction, active maintenance, MIT license, and zero known vulnerabilities make it a safe choice. Verify that the fallback communication modes and Android support meet your specific deployment requirements before committing to production use.

Install

htag on PyPI

Before you install

Low install friction with a pure-Python wheel. Active maintenance with a recent release (43 days old) and steady repository activity. Requires Python 3.10 or later and depends on starlette, uvicorn, and websockets for runtime.

Requires Python 3.10 or later. Desktop runners (ChromeApp) need a browser environment; web deployment requires starlette or FastAPI.

License in practice

MIT license permits unrestricted use, modification, and distribution in both open-source and proprietary projects with minimal obligations.

Quickstart

pip install -U htag

from htag import Tag

class App(Tag.App):
    def render(self):
        return Tag.div("Hello, htag")

from htag.runners import ChromeApp
ChromeApp(App).run()

Verify before relying

  • Whether the framework's hot-reload and fallback communication modes (WebSocket → HTTP SSE → pure HTTP) work reliably in production environments with strict network policies.
  • Performance characteristics and scalability limits for applications with many concurrent users or complex component trees.
  • Maturity and stability of Android app building support, given the description notes it 'needs to improve'.

Package facts

LicenseMIT permissive
Python supportSupports the current Python release >=3.10
Install frictionLow. Pure-Python wheel
Runtime dependencies
3 packages
starletteuvicornwebsockets
MaintenanceActively maintained 43 days since the last release
Last repo commit
First released
Downloads134,706 / month, #11,465 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
License :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Topic :: Software Development :: User Interfaces

Evidence: htag-2.0.28-py3-none-any.whl

Tags

Capabilities
python gui framework web desktopreactive ui toolkit cross-platformhtml component framework pythonweb app builder single codebasepython frontend frameworkstarlette asgi gui toolkitwebsocket reactive components
Topics
reactive-uicross-platformweb-framework

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “python gui framework web desktop”

  • htaghtag is a Python GUI toolkit for building web, desktop, and mobile…
  • pywebviewpywebview wraps native webview components to display…
  • imgui-bundleDear ImGui Bundle provides Python bindings to a comprehensive…

Give your agent the search over MCP, or paste the wish link into any chat.

More User Interfaces packages

tqdm Worth it
PyPI · Libraries · released Jul 2026

Wraps any iterable to display a real-time progress bar in the terminal or Jupyter notebook, showing iteration count, elapsed time, and estimated time remaining.

copyleftpure Python · 3.8+
648.6Mdownloads / mo
humanfriendly With conditions
PyPI · Software Development · released Sep 2021

Formats and parses numbers, file sizes, timespans, and other values into human-readable text; provides terminal interaction utilities including ANSI text styling and user prompts.

MITpure Pythonabandoned
54.3Mdownloads / mo
coloredlogs With conditions
PyPI · Software Development · released Jun 2021

Adds colored output to Python's standard logging module using ANSI escape sequences, with automatic fallback support for Windows terminals.

However, it is abandoned and receives no maintenance, so it will not adapt to future Python changes or platform updates.

MITpure Pythonabandoned
39.6Mdownloads / mo
rich-argparse Worth it
PyPI · User Interfaces · released May 2026

Formats argparse and optparse help output with rich styling, colors, and markup to improve CLI readability with minimal code changes.

MITpure Python · 3.9+
24.9Mdownloads / mo
progressbar2 Worth it
PyPI · Libraries · released Aug 2026

progressbar2 renders text-based progress bars in the terminal, handling custom widgets, concurrent bars, unknown-length progress, and clean output around logs and prints.

BSD-3-Clausepure Python · 3.10+
19.3Mdownloads / mo
inquirerpy With conditions
PyPI · Software Development · released Jun 2022

InquirerPy provides interactive command-line prompts (text input, confirmations, selections, checkboxes, fuzzy search) for building conversational CLI interfaces in Python.

However, the project is dormant (last release 2022-06-27), so adopt it only if you need its specific feature set (especially the fuzzy prompt) and can tolerate no…

MITpure Pythondormant
16.4Mdownloads / mo

See also prefab-ui · htbuilder · Kivy · solara-ui · flet · solara · reflex-components-core · flet-desktop · solara-server · shiny