New · Slint MCP server + llms.txt — build native UIs with Cursor, Claude Code & Copilot
agentic AI

The UI language your AI agent gets right

Slint is an LLM-friendly UI language,
and the only one that compiles to native code.

Model Context Protocol · works with Claude Code, Codex, Cursor & any MCP client

A closed loop

Your agent iterates like a developer

The agent writes .slint, runs it, sees it, drives it, and fixes it.
Not generate-and-pray.

generate run inspect screenshot verify fix

no compile step — hot reload swaps changed .slint instantly, even in Rust apps

settings.slint
export component Settings inherits Window {
  VerticalBox {
    Text { text: "Brightness"; }
    Slider { value: 40; }
    CheckBox { text: "Dark mode"; }
  }
}
agent · MCP
tool click "Dark mode"
tool screenshot()
✓ checkbox.checked == true
✓ verified — shipping

the running app — what the agent sees & verifies

Capabilities

What an assistant can do with a running app

Inspect

  • List windows & properties
  • Walk the element & a11y tree
  • Read role, label, value, geometry
  • Query by id, type, or role

Act

  • Click & invoke a11y actions
  • Type & dispatch keyboard events
  • Drag sliders, handles, scroll areas
  • Set an element's value directly

Verify

  • Screenshots rendered inline
  • Record input & window events
  • Confirm each interaction landed
  • Same path a screen reader sees

The edge

Why models write better Slint than React

Declarative & token-light

Describes what the UI is, not how to mutate it.
Fewer tokens, fewer hallucinated bugs than imperative JSX + hooks.

One source of truth

Layout, style and state bindings live in one file the model holds in context;
not scattered across six packages.

Self-correcting loop

The LSP flags syntax, binding loops and lint errors as the model types; hot reload shows the result with no compile step — so the agent fixes itself before you ever see it.

Targets others can't reach

The same prompt yields an embedded + desktop + mobile app;
not just one more web page.

Straight from a design

Point the Figma MCP at your file — or drop a screenshot into Claude or Codex — and the agent builds it as real Slint: a native app for embedded, desktop, mobile and web, not a throwaway web mock.

Works with your AI agent

Bring your own agent

Standard Model Context Protocol over HTTP — no proprietary lock-in.
Install the Slint Skill in Claude Code, Codex or Cursor and it sets your assistant up for every language Slint supports — Rust, C++, Python and JavaScript.

Cursor Claude Code Codex Copilot Windsurf Any MCP client

Compounding advantage

We feed the models

Every lever that makes the next model fluent in Slint
and your agent productive today.

llms.txt

Machine-readable docs index

MCP server

Scaffold · run · validate

Example corpus

Thousands of permissive snippets

Enable it

One feature flag, one env var

Build Slint with the mcp feature and set a port. With nothing set, there is zero runtime overhead. Runs headless in CI too — the agent still screenshots and verifies without a display.

shell
# dev & testing only — binds to localhost, validates origins
SLINT_MCP_PORT=8080 ./your-slint-app

# CI, containers, sandboxes — no display server needed
SLINT_MCP_PORT=8080 SLINT_BACKEND=headless ./your-slint-app

Frequently asked

What is the Slint MCP server?

An embedded Model Context Protocol server, part of Slint's testing backend, that lets MCP-compatible AI assistants inspect and interact with a running Slint application over local HTTP.

Which AI assistants can I use?

Any MCP-compatible client, such as Claude Code. It's the standard protocol, so it's not tied to a single vendor.

Is it safe to expose?

It binds to localhost only and validates request origins. It's intended for development and testing, not production deployment.

Does it work in CI or headless?

Yes. Run with SLINT_BACKEND=headless — in CI, a container or a sandbox — and the agent still drives the app and captures screenshots without a display server.

Do I need to write Rust?

No. The MCP server and the Slint Skill work the same across Rust, C++, Python and JavaScript — the agent generates .slint and your app's language stays your choice.

Close the loop

Point your agent at Slint.

Generate native UI that runs on embedded, desktop, mobile and web — and verifies itself.