The governed web meta-framework

One component. Rendered for people,exposed for agents.

Write a single .aihu component. It renders as a fast custom element for humans and exposes a discoverable, permissioned surface for AI — the same reactivity, the same governance, no second codebase.

reactive core
≤ 2 kB
packages
37
output
SSG + islands
agent protocols
MCP · A2A · ACP
SRC one component
@state {
  // one declaration — reactive for humans, discoverable for agents
  let city = prop({
    default: 'London',
    describe: 'City to forecast',
    expose: 'read write',
  })

  const refresh = action(
    { describe: 'Fetch the latest forecast', expose: 'read write' },
    async () => { forecast = await getForecast(city) },
  )
}

@template {
  <button on:click={refresh}>Forecast {city}</button>
}
Human renderlive
Agent surfacevia MCP · A2A
  • propcityCity to forecastexpose: read write
  • actionrefreshFetch the latest forecastexpose: read write

01 the duality

humans / experience

Experience, governed

Static-first HTML that hydrates into interactive islands. Accessible primitives, theming, and a real css-engine — the fast, crafted surface people actually touch.

AI / security

Security, governed

Every prop and action can carry describe /expose and scope guards, so agents discover and invoke exactly what you permit — over MCP, A2A, and ACP.

02 start here

03 specification

Static output
Every route prerenders to real HTML, then hydrates. Crawlers and agents read content; humans get the live app.
Islands
Ship ~0 JS on static pages. Only the interactive components hydrate.
One agent contract
The serving gate is a supersede chain plus sign-off — governance is a first-class primitive, not a bolt-on.
css-engine
Design tokens and a utility layer compiled by a real Rust engine — the one styling this very site.