Your software already knows how to do useful things. Give agents a clear, reliable way to do them too.
Agent Native is an open-source TypeScript library. Define what your software can do, the input it accepts, and who can call it. Then expose that same capability wherever it belongs.
identity catalog.lookup
input { slug: string }
output found | missing
risk read
access public
Validate→Authorize→Execute
EXPOSE IT WHERE IT BELONGS
Local
HTTP
CLI
MCP
Browser
Shared rules. Explicit runtime bindings.
ADD IT TO YOUR PROJECTNode.js 22+ · ESM · TypeScript
npm install @uppercut-labs/agent-native@1.0.0
WHAT MAKES IT AGENT NATIVE?
An agent should know what it can do. And your software should stay in control.
A capability gives an agent a named operation and a schema it can understand. Your application supplies the implementation and makes the permission decision on every call.
The same input validation, authorization and output checks apply across adapters. Human interfaces keep working alongside them.
TRY IT YOURSELF
A real capability. Running right here.
Change the input. Deny permission. Inspect the result. Powered by the published Agent Native 1.0.0 package.
This demo runs entirely in your browser. It does not send inputs to a server, require an account or use an AI service. The permission switch tests this demo's policy; production authorization belongs to your application.
Recorded in Chrome: valid input, validation rejection, permission denial and recovery.
Screenshot of the runnable album catalog · human lookupScreenshot of the browser-only example
02 / A PAGE-LOCAL ACTION
A theme toggle. A permission boundary.
The theme-control example changes only its own page. The button and browser capability share the same implementation, and the protected write is authorized on every invocation.
WebMCP is an evolving browser API. Native support has been tested in opt-in Chrome; support from a shipping browser agent is not claimed.