Skip to main content
tenmol is a fork of PyMOL that keeps the C++/Python engine and replaces the Qt desktop front-end with a React web app. One PyMOL process, one browser, on localhost, with full filesystem access — a local desktop replacement, not a multi-tenant server.

Architecture

Process and threads, boot order, offscreen GL, the wire, the two render modes, picking. Start here.

Build & tooling

How the engine compiles, what bootstrap does, the failure catalogue, the JS toolchain.

Packages

The wire protocol, client, stores, viewport, the Python bridge, and the web app.

API reference

The generated cmd.* command surface — 424 commands, settings, and colors.

Run it

Open http://localhost:5173. Then, in the app’s command line:
pnpm run doctor checks every prerequisite (node, pnpm, the venv, import pymol, offscreen GL, the dev ports) and tells you which one is missing before you try to start anything.

Checks

The two render modes

The viewport has two render modes. Mode P has the server rasterize and stream pixels — full PyMOL fidelity, and it needs an offscreen GL context on the host. Mode G extracts geometry and draws it in the browser with WebGL, so the server never draws at all.
docs/feature-parity.md (the 365-row definition of done) and docs/code-ownership.md are machine-readable inputs to scripts/parity.mjs and scripts/ownership.mjs. They live in the repository and are intentionally kept out of this navigation.