GPUI Box GitHub

GPUI Box

Independent GPUI, and the kit that sits on it.

Independent GPUI framework distribution plus a product-neutral component, semantic automation, and visual-test kit. Not an official Zed project. Surfaces group with colour rather than lines, every word is replaceable, and every state is the state it claims to be.

Browse the catalog Compose a scene Read the docs

Specimen

The same Rust scene, live in both themes. Until a renderer is ready, or if this browser cannot start one, the verified capture remains. The documentation stays searchable static HTML.

The complete Box

Framework, kit, tokens, truthful states, a visual gate, and the catalog an agent can post to.

Framework

Cargo package gpui-box imports as gpui. It is derived from GPUI source imported from Zed, but it is not an official Zed project.

Kit

170 builders and 42 views. Components read caller-owned data, emit caller-owned actions, and hold visual transient state only. Open the catalog.

Tokens

Colour, spacing, radius, type, motion and effect come from one token document through the theme. Studio ships dark and light. Token model.

Truthful UI

Loading, Empty, Unavailable, Error and Ready are five things. A refresh failure keeps the last verified value on screen. Anything actionable carries a stable semantic id. Truthful UI · Semantics.

Visual gate

Every signature on this site was compiled and every image was rendered by the same gate that guards the library. Compose · Screenshot testing.

MCP

The same catalog as this repository, answered for an agent — not the crates.io cohort. Hosted render_scene returns the committed capture. Open MCP.

Depend on it

Use Cargo aliases so source code keeps the conventional gpui and gpui_kit imports. Do not add another GPUI implementation to the same application.

[dependencies]
gpui = { package = "gpui-box", version = "0.1.1" }
gpui_platform = { package = "gpui-box-platform", version = "0.1.1" }
gpui_kit = { package = "gpui-box-kit", version = "0.1.1" }
use gpui_kit::prelude::*;

let app = gpui_platform::application().with_assets(gpui_kit::assets::Assets);
app.run(|cx| gpui_kit::install(cx));

Selected plates

Canonical renderings, captured in both themes and compared pixel for pixel. The rest live in compose.