AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
hyperfixi is a tree-shakeable hyperscript engine: event-driven UI in HTML attributes, upstream _hyperscript's grammar, passing 1401 of upstream's 1467 tests, with a 164-pattern library.
Developer toolsTypeScript · JavaScriptGitHub @codetalcottOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Multilingual, tree-shakeable hyperscript engine — event-driven UI in HTML attributes, writable in 24 natural languages (LokaScript). MIT.
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
A modular \_hyperscript engine, built against upstream's own test suite. Human-readable UI behaviors from 18 KB gzipped (34 KB with everything) — and a verifiable target for LLM agents: generated code that parses or fails with structured diagnostics, checked by a real parser, renderable into 24 human languages for review.
Save this as an HTML file and open it in your browser — or try it live.
No server, no npm, no build step. Just save and open.
Vite — the default. One plugin, zero options: it scans your files for _="..." attributes and emits a bundle with only the engine modules you use.Read the full README ↗A modular _hyperscript engine, built against upstream's own test suite. Human-readable UI behaviors from 18 KB gzipped (34 KB with everything) — and a verifiable target for LLM agents: generated code that parses or fails with structured diagnostics, checked by a real parser, renderable into 24 human languages for review.
Save this as an HTML file and open it in your browser — or try it live.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
</head>
<body>
<button _="on click toggle .active on me">Toggle</button>
<button
_="on click
set my.count to (my.count or 0) + 1
then put 'Clicks: ' + my.count into me"
>
Clicks: 0
</button>
<button _="on click toggle @hidden on #message">Show/Hide</button>
<p id="message">Hello from HyperFixi.</p>
<style>
.active {
background: #0066cc;
color: white;
border-radius: 4px;
}
</style>
<script src="https://unpkg.com/@hyperfixi/engine/dist/hyperfixi-hs.js"></script>
</body>
</html>
No server, no npm, no build step. Just save and open.
Vite — the default. One plugin, zero options: it scans your files for _="..." attributes and emits a bundle with only the engine modules you use.
npm install @hyperfixi/vite-plugin
// vite.config.js
import { hyperfixi } from '@hyperfixi/vite-plugin';
export default { plugins: [hyperfixi()] };
Script tag — the engine's bundle, hyperscript with every module (~34 KB gz):
<script src="https://unpkg.com/@hyperfixi/engine/dist/hyperfixi-hs.js"></script>
For hypermedia attributes, add fixi or htmx 4 beside it
(and @lokascript/htmx-adapter for hx-* names in other languages); the engine runs the
hyperscript in content they swap in. @hyperfixi/core ships the
same file as dist/hyperfixi.js; core's own bundles (the ~352 KB hyperfixi.js, hyperfixi-hx.js,
hyperfixi-multilingual.js) retired in the 4.0 cycle.
An agent emitting hyperscript instead of free-form JavaScript gets properties JS can't offer: every candidate parses or fails with structured diagnostics (a real parser, no LLM in the checker), the parse comes back as a semantic IR to check against intent, diff_behaviors compares two snippets command by command and role by role (across languages too), and the result renders deterministically into 24 languages so a human can review the agent's work in their own language — measured, with the residual published.
The MCP server (@hyperfixi/mcp-server) exposes the whole loop: generate → validate_and_compile → repair from diagnostics → the hyperscript, as is, in an _="..." attribute. See AGENTS.md for the worked example and ground rules.
hyperfixi-hs.js is ~34 KB@lokascript/htmx-adapter localizes hx-* names@hyperfixi/* -- Core engine: runtime, parser, commands, vite-plugin, behaviors@lokascript/* -- Multilingual: semantic parser, i18n grammar, language tools, domain DSLsUse @hyperfixi/* packages. Add @lokascript/* only if you need multilingual support.
The optional @lokascript/* layer lets you author hyperscript in 24 languages with
real SOV/VSO/V2 word-order transformation — and, unusually, it proves the
translation preserved meaning rather than merely "parsed". Two writeups go deep:
Going deeper:
npm install
npm test --prefix packages/core
npm run build:browser --prefix packages/core
MIT