Unofficial fan-made directory · External projects · Compare & explain
Quake in the browser — what actually runs, and what it takes
Two different projects can put something Quake-shaped in a browser tab, and they are not the same thing. Qwasm is a WebAssembly port of the Quake engine itself: it downloads the 1996 shareware episode and plays the first episode, and if you own the retail release you can point it at your own PAK files. WebXash is a different engine entirely — the open-source Xash3D-FWGS build from the Half-Life (GoldSource) family — and it runs Half-Life and Counter-Strike, not Quake. This page explains both, tells you what each one asks you to bring, and links straight to each project. Nothing here is hosted by us.
Both buttons leave our site in a new tab. These are independent community projects — we don't operate, monitor or endorse them. Last checked: Nov 8, 2026.
We don't host the game, and we don't host anything you download to play it.
What "Quake in browser" actually means today
There are three different things people are looking for when they type "quake in browser", and only one of them is a Quake port:
- The shareware episode, in a tab. Qwasm downloads the original
quake106.zipshareware archive from the shareware host and runs the first episode in WebAssembly. No installer, no launcher, no download from this site — the engine and the data come from the project's own servers. - The retail game, with your own files. The same Qwasm build will load a full retail install if you supply your own PAK files, and it has dedicated modes for Mission Pack 1 and Mission Pack 2. Nothing copyrighted is bundled with the port.
- A different 1996 shooter. If you want the "old PC shooter in a browser" feeling more than you specifically want Quake, the open-source Xash3D-FWGS build (WebXash) runs Half-Life 1 and Counter-Strike 1.6 in a tab, and it also has a downloadable demo package so you can try it without your own files.
Qwasm — the Quake engine, compiled to WebAssembly
Qwasm is an unofficial WebAssembly port of the Quake engine, maintained by a single developer (Gregory Maynard-Hoare) and published as open source. The engine ships in two builds: a WebGL build that uses your graphics card, and a software-rendered build that draws the frame itself the way the original Windows release did. You pick the build on the start screen, and there is a resolution list if you want to lock the frame size.
The first thing it does is fetch the original quake106.zip shareware archive — about 9 MB — and unpack the game's PAK data out of it. The engine itself is a separate, much smaller download: a little under half a megabyte of WebAssembly. After that, the start screen also lets you point the engine at your own PAK files, or switch to LibreQuake, an open-source game built for the same engine with custom maps and bots.
Two more things the start screen tells you, which are worth knowing before you click:
- There is an age checkbox. The shareware start button stays disabled until you tick "I am over 18 years old". That is the shareware licence's own gate, and it is the first thing that makes a visitor think the page is broken.
- There is a touch-controls checkbox. Tick it and the page loads an on-screen control layer instead of taking the mouse. On a touch device it is selected for you automatically. It is optional, and the default is mouse and keyboard.
The port also documents its own limits honestly: WebSocket multiplayer support has not been added, so online play is not part of this build. Single-player and bot play are what it does. The page states that local saving is supported, and the controls are listed on the page itself — WASD to move, left mouse to fire, right mouse to move forward, middle mouse or space to jump, mouse wheel to change weapon.
WebXash — a different engine, in the same tab
WebXash is not a Quake port and does not run Quake. It is a browser front-end for Xash3D-FWGS, the open-source engine that continues GoldSource — the engine Half-Life 1 was built on — and it runs Half-Life 1 and Counter-Strike 1.6. Its upstream engine project, Xash3D FWGS, is still actively maintained.
What it needs from you is the main difference between the two projects, and it is a real one:
- WebXash ships no game content. You point it at a folder of your own legally-owned Half-Life or Counter-Strike files — the engine reads them locally and runs them in the tab, and it never writes back to that folder. You can also hand it a ZIP containing the same files.
- There is a demo, if you do not own the files yet. The page lists three downloadable demo packages — Half-Life Deathmatch, Uplink and Day One — and the built-in demo packages are the easiest way to see the port work before committing your own folder.
The engine front-end is a separate front-end written by one person rather than by the engine maintainers, and the two halves live in different repositories: the front-end's own README points at an engine repository that is currently not reachable, while the engine project itself is still being worked on. If you plan to run your own multiplayer server from the instructions in that README, check that the repository is back before you start — the multiplayer section links to docker images hosted there.
Two more honest notes from its own documentation: it is a keyboard-and-mouse port, and the upstream FAQ says mobile is not the intended path for it. Saves it captures go into the browser's own storage, and the save manager is disabled when Counter-Strike 1.6 is the selected game.
Side by side
| Qwasm | WebXash | |
|---|---|---|
| Game it actually runs | Quake — shareware episode, or your own retail PAK files, or LibreQuake | Half-Life 1 and Counter-Strike 1.6 |
| Engine | Quake engine, compiled to WebAssembly (WebGL or software-rendered build) | Xash3D-FWGS, the open-source GoldSource-family engine |
| Game content needed | None — it downloads the shareware episode itself | Your own legally-owned Half-Life / Counter-Strike folder or ZIP — or one of its three demo packages |
| Hardware | WebGL build uses your graphics card; a software-rendered build is also offered | WebGL2 rendering, per the engine's own build |
| Multiplayer | Not in this build — the project states WebSocket support has not been added | Possible, but you run the server yourself; the documented server setup is currently unreachable |
| Saves | The page states local saving is supported | Captured saves are kept in the browser's own storage; disabled for Counter-Strike 1.6 |
| Input | Mouse and keyboard, with an optional on-screen touch control layer | Keyboard and mouse; the upstream FAQ says mobile is not the intended path |
| Where the code lives | Public repository, C, 59 stars | Front-end repository, TypeScript, 178 stars; engine project separate and active |
How to pick, in one minute
- You want Quake, and you do not own the retail release. Start with Qwasm. It pulls the shareware episode on its own, and you get the first episode in a tab without assembling anything.
- You own the retail release, or the mission packs. Qwasm again — it has explicit modes for Mission Pack 1 and 2, and it will load your own PAK files. Keep your files to yourself; the page never asks you to upload them.
- You want to try the 1990s PC-shooter feel without any files at all. WebXash's demo packages are the lowest-friction option: pick a download, and the port runs it.
- You want a full Half-Life or Counter-Strike run in a browser. WebXash — but you supply the game folder yourself, so budget a few minutes for that first step.
- You want to play against other people. Neither of these is the easy answer today. Qwasm's build has no WebSocket multiplayer; WebXash's multiplayer needs a server you host yourself, and the documented setup for it is currently unreachable.
What we checked, and what we didn't
Being straight about this matters more than a confident sentence. Here is exactly where our knowledge stops.
- We opened both projects and read what they actually do. We fetched both project pages, both public source repositories, and the start-up code each page runs. Everything we say above about what each project supports comes from those first-party sources, quoted in our own words.
- We confirmed both links respond. Both project links were reachable on Nov 8, 2026.
- We have not played either of them. We have not loaded a game, so we are not going to tell you how it feels, how it runs on your machine, or how long anything takes. Where a project documents a limitation, we repeat the limitation instead of guessing.
- The numbers we do give are file sizes, not performance figures. When we mention about 9 MB, that is the size of the shareware archive on the wire — it is not a promise about how long your download will take.
- These projects change without telling us. If one of them is different when you arrive, that is the project having moved on, not us being wrong on purpose. If a link breaks, tell us and we will update the record.
Report a broken or changed link.
More from this directory
- Quake — the Qwasm project in full — Our own single-project entry for Qwasm: load behaviour, multiplayer status and known rough edges. Details
- Half-Life — the WebXash project in full — What WebXash needs from you, how the folder step works, and what to expect. Details
- All browser classic games — Every project we track, with status, load notes and links. Browse the directory
All of these are unofficial community projects. Nothing is hosted by us, and use your own judgement on any destination site.
Frequently asked questions
Is there actually a Quake that runs in a browser?
Yes — Qwasm is a WebAssembly port of the Quake engine. It downloads the original shareware episode itself and plays the first episode in a tab, and if you own the retail release it can load your own PAK files. What it does not do is multiplayer: the project states WebSocket support has not been added to this build.
Do I need to own the game to play Quake in a browser?
For the shareware episode, no — Qwasm fetches the shareware archive on its own and you get the first episode. To play the full retail game or the mission packs you would need your own PAK files, and the project expects you to supply them from a copy you own.
Is WebXash the same thing as Qwasm?
No. They run different games on different engines. Qwasm runs Quake on the Quake engine. WebXash runs Half-Life 1 and Counter-Strike 1.6 on Xash3D-FWGS, the open-source engine from the Half-Life / GoldSource family. If you are deciding between them, Qwasm is the Quake one and WebXash is the Half-Life one.
Which one should I try first?
If you want Quake specifically and do not own the retail release, start with Qwasm — it needs nothing from you. If you just want a 1990s PC shooter in a tab and have nothing installed, WebXash's demo packages are the quicker start.
Does either of them work on a phone?
Qwasm offers an optional on-screen touch control layer that you tick on the start screen, and it is selected automatically on touch devices — we have not tested how it feels, so treat that as a feature that exists rather than a recommendation. WebXash's own documentation says mobile is not the intended path for it; it wants a keyboard and mouse.
Can I play against other people in either of these?
Not out of the box. Qwasm's build has no WebSocket multiplayer support yet. WebXash can be pointed at a multiplayer server, but you host it yourself, and the server setup its documentation points to is currently unreachable.
How long does anything take to load?
We are not going to guess. We did not run a timed test, so we will not quote you a number. What we can tell you is what gets fetched: Qwasm pulls the shareware archive (about 9 MB) and a small engine binary, and WebXash's demo packages are around 30 MB, 65 MB and 79 MB. Those are file sizes on the wire, not download-time promises — your connection decides.
Who builds these, and can I trust them?
They are independent community projects, published by their own authors, and this directory is not affiliated with or endorsed by the game's publisher. We link out and we do not host anything. Before you run anything, read what the project itself says about your rights as a user — for the shareware episode, that means the shareware licence the project links to.