The best way
for Claude to do UI.

Writing once is enough.

Loom
Rust Logo
Rust Compiler
28mslatency
0kboverhead
React
Vue
Svelte

Elegantly simple

card.loom20 lines
- generics
  T extends string

- props
  title: string
  initialCount: number = 0

- state
  count: number = initialCount

- computed
  isBig = count > 10

- view
  section.card
    h2 {title}
    p Count: {count}
    button
      @click
        count++
      Increment
    if isBig
      p.warning Big number
- propsComponent interface

Typed props with optional defaults. Compiles to framework-native declarations — no boilerplate.

- statePortable reactivity

Mutable local state lowered to React hooks, Vue refs, or Svelte variables.

- viewTemplate

Indentation-based markup. :: for scoped styles, @event for handlers.

- computedDerived values

Dependency-aware expressions become useMemo, computed(), or Svelte reactive statements.

- genericsTypeScript generics

Generic type parameters for type-safe, reusable component APIs.

Built for the
agent era.

Loom gives AI agents a structured projection of your component. They read and patch only what they need, block by block.

Interactive Simulation
Counter.loom
- props
title: string
- state
count: number = 0
- computed
isBig = count >10
- view
div.card
h2 {title}
button
@click
count++
Increment
Compiler: Ready
Agent Activity Log
Step 1 of 41. Standby
Standard Agent Edit: ~510 tokens
Loom Block Patch: 18 tokens96% saved

Fits your stack
by design.

Matches your existing compiler, type systems, and directory layout through the Vite plugin.

terminal — dev server
$ loom compile
✓ Compiled components28ms
Watching for changes...

Instant Compiles

Written in Rust for sub-30ms compile speeds. Hot reloading happens so fast that it feels completely transparent.

import { Counter } from './Counter.loom'
<Counter ti
Component PropsLoom LSP
title: stringprop
initialCount?: numberprop

TypeScript-Native

Loom keeps props and generics typed, then emits native React TSX, Vue SFCs, or Svelte components.

src/
├─ Header.tsx
├─ Hero.loom Compatible with React, Vue & Svelte
└─ Footer.vue

Incremental Adoption

No massive rewrites. Drop .loom components into your current framework directories and compile them with Vite.

Start weaving.

Loom is open source and ready to drop into your Vite configs today.

© 2026 Loom. Open source under MIT License.