Skip to main content

Shared frontend foundation and SPA app shell for the llming ecosystem — vendor JS, fonts, icons, and a lazy-loading client-side router

Project description

LLMing Stage

llming-stage

Python 3.14+ License: MIT PyPI version Code style: ruff

Build Vue + Quasar UIs that AI can build, drive, and debug.

llming-stage is the SPA foundation for AI-assisted frontend work. You write a real Vue + Quasar app, not a Python shim. Reactive traffic and sessions flow through llming-com, and that's the same channel an AI assistant uses to inspect state, invoke commands, and push events into the running page.

llming-stage sample showcase

llming-com ships the sessions, auth, command dispatcher, and the debug surface — without it, the AI side of the picture goes away. When you eventually deploy and the app no longer needs server reactivity, the same shell + view modules can ship as a static bundle to any CDN.


What you get

  • An AI-debuggable runtime — every reactive command, session, and event is browseable, invokable, and observable through one HTTP / MCP surface.
  • FastAPI-native app mounting — create your own FastAPI() app and attach Stage(app), or let Stage() create the default FastAPI app for compact demos. The internal /_stage routes and development reload are ensured once; server startup stays normal FastAPI/ASGI (uvicorn main:app --reload, deployment servers, etc.).
  • Modern frontend, zero boilerplate — Vue 3 + Quasar 2 + bundled Tailwind utilities with a lazy-load orchestrator and an SPA router that keeps the WebSocket and view state alive across navigations.
  • Per-user sessions out of the boxllming-com runs the wire and the auth; you write JS views and Python handlers.
  • Static-deployable — when there's no server-side reactivity at runtime, the same code ships to GitHub Pages, S3, or any CDN.
  • No third-party network — every asset is vendored. A page loaded from an llming-stage app makes zero requests to Google Fonts, jsDelivr, or any other external host. Privacy/GDPR-friendly by default; enforced by static and runtime tests.

See it in action

poetry install
./samples/run.sh        # opens a web gallery at http://localhost:8000

Fourteen sample apps — from a tiny static app to generated decorator views, llming-com reactive loops, a Three.js particle tornado, an 8-chart ECharts dashboard, Plotly full-bundle charts, a core component workbench, and an optional-extension workbench — with dark/light theme, hot reload, and AI-debug control.


Minimal app

from llming_stage import Stage

if __name__ == "__main__":
    Stage(title="Hello world").add_view("/", "hello.vue").run()
<template>
  <main class="min-h-screen grid place-items-center p-8">
    <h1 class="text-5xl font-bold">Hello llming-stage</h1>
  </main>
</template>

For a purely static app, no Python file is needed:

llming-stage serve hello.vue

Stage() mounts the bundled assets, the Vue + Quasar shell, the SPA router, bundled Tailwind utilities, and content-hash development reload by default.

stage.run() is a thin local-development wrapper around uvicorn.run. If you need workers, custom logging, TLS, or deployment process management, run the same app directly with normal ASGI tooling.

Reactive apps add a typed session router and let Stage mount the conventional session routes:

from fastapi import FastAPI
from llming_stage import Stage

app = FastAPI()
stage = Stage(app)
sessions = stage.session()
counter = sessions.add_router("counter")

@counter.handler("inc")
async def inc(session, by: int = 1):
    value = int(session.state.get("count", 0)) + by
    session.state["count"] = value
    await session.call("home.setCounter", value)
    return {"ok": True}

stage.add_view("/", "home.vue")

The browser gets a real Vue + Quasar SPA from .vue view files. llming-com carries the wire, the sessions, and the debug surface the AI uses.


Learn more

Full docs in docs/content/:

llming-stage runtime architecture


MIT licensed. © 2026 Michael Ikemann. Bundled third-party files are listed in THIRD_PARTY.md; no AGPL/GPL/LGPL is ever permitted.

Project details


Download files

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

Source Distribution

llming_stage-0.1.4.tar.gz (21.5 MB view details)

Uploaded Source

Built Distribution

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

llming_stage-0.1.4-py3-none-any.whl (21.6 MB view details)

Uploaded Python 3

File details

Details for the file llming_stage-0.1.4.tar.gz.

File metadata

  • Download URL: llming_stage-0.1.4.tar.gz
  • Upload date:
  • Size: 21.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.13.11 Darwin/25.2.0

File hashes

Hashes for llming_stage-0.1.4.tar.gz
Algorithm Hash digest
SHA256 d422384455c54510908edbf6d778ecee0861773021e78897fe65ced4a8dc4e37
MD5 f1308209ac1834186d0dc0c3d54dedd1
BLAKE2b-256 747c244c230947c50a9d395fcc48188795c94530bb3d00dc3ae3d31a9584b7d2

See more details on using hashes here.

File details

Details for the file llming_stage-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: llming_stage-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 21.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.13.11 Darwin/25.2.0

File hashes

Hashes for llming_stage-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 e05848fa4da56437484362abda9d904fce6757623596c5d75c3c4122776c2ca2
MD5 76bfc92f23d6f9865360748d3b1040d9
BLAKE2b-256 589ec38cbdd7e2fbdf479dae2578a2ad0ec5ec79af429894c8822e241c7e319e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page