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.
@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>
}cityCity to forecastexpose: read writerefreshFetch the latest forecastexpose: read write01 the duality
Static-first HTML that hydrates into interactive islands. Accessible primitives, theming, and a real css-engine — the fast, crafted surface people actually touch.
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
Learn the model — state, templates, routing, SSR, and the agent surface.
Start learning →API · 37Typed signatures for every export across all 37 packages.
Read the API →EX · 9 + 12A governed example set and a fluency cookbook — with a live playground.
Explore →03 specification