hacifootprint

What is hcifootprint?

Turn a web app's interaction surface into a typed, traversable journey graph an LLM agent can plan over and act on — as the signed-in user, through the app's own buttons and handlers.

For decades we designed the interaction between a human and a computer — that's HCI. Now the human isn't alone: an agent joins their side, acting for them. Human and agent, working the computer as a team — that's HACI, and this library is the layer for it.

An agent can already reach your app; the problem is how it operates one. Screenshots are slow and redone every turn, a DOM dump costs ~100k tokens and still guesses, and hard-coded selectors break on the next redesign. A returning human carries a mental model — where things are, what leads where, what they're allowed to do. Your app holds that same map. hcifootprint hands it to the agent as a typed journey graph the agent traverses, with a you-are-here pin so it only ever sees what is actually doable right now.

The key idea, and the reason it's safe to adopt: you are not opening your backend to an agent — you are letting it drive the frontend a human already can. Auth and permissions are unchanged; the agent acts as the signed-in user, through your app's own handlers, and inherits exactly the capability envelope that user already has.

Where to go

Honest by construction

Everything the runtime derives rather than observes is flagged — guardUnevaluated, activation: 'assumed', toNodeClaimed: true — and every refused action returns a typed reason instead of a success-shaped no-op. That honesty calculus runs through every page of these docs; where a result is a claim, the docs say so.

Also on this site

  • The story-deck home — the pitch in three lenses.
  • /llms.txt and /llms-full.txt — this documentation as machine-readable Markdown, generated from the same source so it can't drift. (The repo-root llms.txt remains the hand-curated agent front door.)

On this page