Metrix187

qwennie: Run a Tiny Transformer Entirely in CSS

qwennie is a 78,672-parameter decoder-only transformer implemented entirely in CSS, with no JavaScript. It demonstrates real attention and token-by-token replies in the browser, and is best suited to experimentation rather than production chat.

Stars
4
Forks
1
Last commit
2 months ago
Contributors
1
Releases, 12 months
0

Our take

Newless than six months old

Health score

20/100

How it is scored
Activity
34
Community
4
Issues
21
Pull requests
21
  • Fewer contributors than 91% of the projects we track

qwennie is a carefully verified browser experiment with unusually complete reproducibility, but its narrow purpose, browser constraints and single-contributor development make it a poor choice for production chat.

Good fit if

  • You want a concrete demonstration of transformer inference implemented in CSS, not a conventional language-model runtime.
  • You can use Chromium and are comfortable with slow, computation-heavy style recalculation.
  • You want to inspect or rebuild the model using the included Python training and compilation scripts.

Look elsewhere if

  • You need a responsive chat model for users; the README reports seconds of style recalculation per reply.
  • Your users need reliable behavior across browsers; the README says changing prompts works properly only in Chromium.
  • You need a project with a broader maintainer base or established release history.
All health signals
Last commit2026-09-05 (2 months ago)
Commits, last 90 days10
Releases, last 12 months0
Contributors1
Issues closed, last 90 days0
Pull requests merged, last 90 days0
Project age4 months

Checked on 2026-11-09 with the GitHub API.

Overview

qwennie is a small decoder-only transformer whose inference runs entirely in CSS, with no JavaScript engine or server. It uses a real transformer architecture, including RoPE, RMSNorm, SwiGLU, causal attention and a KV cache, to generate replies word by word. The project explores whether CSS can execute a neural model, rather than simply display a prewritten response.

The v1 demo offers replies to preset messages; v2 adds a 205,040-parameter model and two-turn conversations. Both are browser experiments, not general-purpose chat systems. The project is useful to people exploring CSS capabilities, neural-network implementation and browser rendering internals, not to teams seeking a practical LLM deployment.

Key Features

  • Implements transformer inference in CSS custom properties and calc(), with no JavaScript.
  • Uses int8-quantized weights, RoPE, RMSNorm, SwiGLU, causal attention and an inherited-property KV cache.
  • Provides v1 with preset prompts and v2 with two-turn conversations and a longer context.
  • Includes Python training and build scripts to compile model weights into generated stylesheets and HTML.
  • Supplies NumPy reference outputs and browser parity tools to check generated replies against the model implementation.
  • Offers a live demo and generated site files, with no server or build step needed to try the shipped demo.

Use Cases

  • CSS and browser-engine researchers can inspect how deeply nested custom properties and style recalculation behave under computation-heavy workloads.
  • Machine-learning educators can use the project to demonstrate transformer components and compare CSS inference with a Python reference.
  • Creative coders can explore an intentionally unconventional, JavaScript-free interactive text generator.
  • Developers evaluating CSS limits can try the demo in Chromium and observe how a model's output changes with different inputs.

What you need

Detected in the repository

  • CSS (main language on GitHub)

Getting Started

Open the live demo in Chromium 138 or newer. To run a local copy, clone the repository and open index.html. See the README for browser details, verification instructions and retraining steps.

License in Plain Words

No standard license was detected. Without a license, the default copyright rules apply: you may read the code, but not reuse it. Check the repository or ask the authors.

Considerations

The project is new, with recent commits but no release history reported. Development is concentrated in one contributor, so ongoing maintenance depends on that person. The README reports no open issues, but the measured data shows no recent issue closures or merged pull requests, which offers little evidence about how incoming work is handled.

Browser support is a practical limitation: the README reports correct initial output in several engines, but prompt changes work properly only in Chromium. The model is also intentionally small and trained on a limited original chat corpus; its replies are not a substitute for a general-purpose language model. The README declares the WTFPUP license, while repository metadata reports no asserted license, so verify the license file before incorporating it into a project.

Found this useful?

Share it with someone who would like qwennie.