Uppercut Labs

Agent Native v1.0.0 / MIT

Built for people.
Ready for agents.

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.

ONE CAPABILITY CONTRACTcatalog.lookup@1
DEFINE THE OPERATION
identity  catalog.lookup
input     { slug: string }
output    found | missing
risk      read
access    public
ValidateAuthorizeExecute
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.

showcase.convert@1 / browser

A number between -1,000,000 and 1,000,000.

EXECUTION RESULT

Ready. Run a capability to inspect its result.

{
  "status": "ready"
}

Validate input → Authorize → Execute → Validate output

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.

SEE IT IN PRACTICE

Real software. Shared capabilities.

Explore the example projects

01 / A STATIC SITE

A catalog people can browse.
An operation agents can call.

The Astro album catalog keeps its pages and ordinary search. A typed album lookup exposes the same public data through a shared capability.

Browser tools register when WebMCP is available. Human lookup works when it isn't.

Read the static-site guide
The real Astro album catalog finding Blue Hour by slug and returning its structured album result.
Screenshot of the runnable album catalog · human lookup
The real browser theme example in dark mode, with a working human control and an explicit WebMCP unavailable message.
Screenshot 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.

Explore browser tools

TAKE THE NEXT STEP

Start small.
Build on a clear contract.

Follow a working example, choose an adapter, and keep identity and deployment in your application.