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
@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>
}@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
- prop
cityCity to forecastexpose: read write - action
refreshFetch 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
G · 8
Guides
Learn the model — state, templates, routing, SSR, and the agent surface.
Start learning →API · 37API Reference
Typed signatures for every export across all 37 packages.
Read the API →EX · 9 + 12Examples & Cookbook
A governed example set and a fluency cookbook — with a live playground.
Explore →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.