Pantrix UI

FOR CODING ASSISTANTS

Your assistant writes Pantrix, not Material.

Pantrix writes its own documents for coding assistants from its sources at every build: an MCP server, a skill, llms.txt and the whole library as JSON. An assistant asks for what it needs and gets today's API, not a guess from Material.

12

tools on the MCP server

3

prompts: a component, a screen, a test

7

rules the skill keeps

An assistant with the Pantrix server, step by step

Add a comment box under each order, 280 characters at most.

pantrix-ui · search_components

search_components("comment, several lines")

PantrixTextArea · PantrixFilledTextArea · PantrixTextField

pantrix-ui · get_component

get_component("PantrixTextArea")

Its page: the examples with their imports, its parameters, the tags it writes

pantrix-ui · get_rules

get_rules()

No Material · text through Pantrix · values from the theme · a tagKey on every control

import com.pantrixui.components.inputs.textarea.PantrixTextArea

val comment = rememberTextFieldState()
PantrixTextArea(
    state = comment,
    label = stringResource(Res.string.order_comment),
    maxLength = 280,
    tagKey = "orderComment"
)

✓ No Material import

✓ A tagKey, the same in every language

✓ The label from the strings

✓ Imports from the documents

Four ways in, one source

All four are written by the same build from the library's KDoc, its components' annotations, the demo's pages and the guides. They cannot drift from the code: the build stops when they would.

MCP

The MCP server

At this site's address, or in one jar that runs by itself. The assistant chooses what to ask and takes only what it needs.

pantrixui.com/mcp

SK

The skill

How to work with Pantrix: its rules, the steps of writing and reviewing a screen, Material's names in Pantrix.

pantrix-ui@pantrix-ui

txt

llms.txt

The index an assistant reads first, about 8,500 tokens. llms-full.txt holds everything in one file.

pantrixui.com/llms.txt

{ }

pantrix-ui.json

The library as data, with its JSON Schema: for tools, code generators and this site.

pantrix-ui.schema.json

What to give, and when

Writing a screen or a feature

llms.txt: the assistant reads the page or the module it needs

The work is with one component

That component's page, pages/data-table.md: its examples with their imports, every parameter

Everything at once

llms-full.txt, about 1.3 million tokens: for a wide context or a document index

A tool reads Pantrix

pantrix-ui.json and its schema

Set it up in a minute

The server answers at pantrixui.com/mcp, so an assistant needs nothing but the address. Its jar runs it on your own machine instead, on JDK 17 or newer.

1.

Give your assistant the address, pantrixui.com/mcp.

2.

Or take the jar from a release, mcp-0.1.0-alpha03-all.jar.

3.

Write the skill into the project, so the team gets it through git.

4.

Ask for a screen: the assistant loads the skill and calls the tools.

Fewer tools, fewer wrong turns. --tools search_components,get_component opens the jar's server with those two alone.

# The server, by its address

claude mcp add -t http pantrix-ui https://pantrixui.com/mcp

# The skill, with Pantrix UI's plugin

claude plugin marketplace add develappsancho/pantrix-ui-cmp-package

claude plugin install pantrix-ui@pantrix-ui

Then /mcp lists pantrix-ui as connected, and /skills lists the plugin's skill.

What the server answers

Tools for asking, resources for reading whole, prompts that carry the rules in themselves.

search_components

The components found by what they are for: "toast", "bottom sheet".

get_component

A component’s page: its features, its examples with their imports, its API.

get_component_metadata

A component as data: its import, artifact, keywords, tags and every form.

search_api · get_api

A declaration found by its name or what it does, and the whole of it.

search_icons

The icons of PantrixIcons.

search_documentation

Every page, guide and reference of the skill.

get_documentation_page

One of them whole: guide/adaptive-usage, skill/forms.

list_examples · get_example

A page’s examples, and the whole code of one.

get_changelog

The changelog, or one version’s part of it.

get_rules

The skill itself, for an assistant that has not installed it.

Resources

pantrix://components

pantrix://api

pantrix://examples

pantrix://documentation

pantrix://icons

pantrix://llms.txt

pantrix://llms-full.txt

pantrix://schema

pantrix://skill

Prompts

find_component_for_use_case the component for a need, and how it is used

implement_screen a screen, with its rules

write_ui_test a component's test, with its tags

The rules it keeps

The skill's core rules are the library's own. llms.txt, get_rules and the prompts say the same, from one place.

1

No Material

Pantrix’s components and PantrixTheme, never Material’s.

2

Text through Pantrix

PantrixText and Pantrix’s fields, never BasicText or BasicTextField.

3

Values from the theme

Colours, type, gaps and corners from PantrixTheme, not written into a screen.

4

Every control a tagKey

The same in every language: Button_save. Never from visible text.

5

An image says what it shows

A contentDescription, or null for decoration; never empty.

6

Start and end, not left and right

So a screen turns round in a language read from right to left.

7

Imports from the documents

Every component lives in a package of its own; take the import given.

Why it does not drift

The documents are built with the library, and the build stops on any of these:

✗

A component no page of the demo documents

✗

An example that calls a parameter no form has

✗

The skill naming what the library does not have, or a version it is not published in

✗

A block of Kotlin that uses a name it does not import

✗

A component without keywords, or a text of the demo without its English

✗

A guide whose English has parted from its Turkish

Every page of this site has "Copy page". It copies the page as Markdown, the same text the server gives, for a chat with any assistant.

Apache License 2.0

English

·