Our take
Newless than six months old- 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 commit | 2026-09-05 (2 months ago) |
|---|---|
| Commits, last 90 days | 10 |
| Releases, last 12 months | 0 |
| Contributors | 1 |
| Issues closed, last 90 days | 0 |
| Pull requests merged, last 90 days | 0 |
| Project age | 4 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.