Preview. The Allternit Apps SDK packages and the allternit CLI are not published to npm yet, so the install commands on this page do not work outside the Allternit repository today. To build an MCP App now, follow the Quickstart, which uses the open MCP SDK directly. Your app will not need changes to adopt the SDK later.
A look pack is a set of DTCG design tokens that styles an app’s Views. @allternit/look-packs defines the type, validates it, turns it into CSS variables and warns about unreadable color pairs.

A pack

Supported groups are color, typography (font), radius and spacing. Aliases ("{color.base}") and $type inheritance from groups are resolved.

CSS variables

Token paths become --vp-<path>: color.on-brand is --vp-color-on-brand. The view kit reads these names. Values that could break out of a CSS declaration (;, braces, url(, @import, comments) are dropped and reported, never emitted. Alias cycles and unknown aliases are reported too.

Validate

Errors (bad id, missing name, tokens that do not import) block use. defineApp throws on errors.

Contrast check

checkContrast measures these foreground/background pairs, in light mode and again with the dark overrides applied, and skips any pair the pack does not define: A pair under 4.5:1 is a warning, not an error: it shows in validateLookPack, app.lint() and allternit test, and does not block. Colors the checker cannot parse (for example oklch()) are reported as info, since they cannot be measured here.

The default look

ALLTERNIT_DEFAULT_LOOK is the pack Allternit uses when an app has none: a white surface and neutral ink. Start from it if you only want to change one or two tokens.