Skip to main content

What Sense is

Every AI app today wires the same things together by hand: an LLM SDK, a permissions layer, a “did this actually run yet” tracker, an approval workflow. Sense builds those into the language itself:
No SDK client, no separate “confidence” convention to remember, no network call — inference("mock", ...) runs fully offline. Compare that to wiring it up by hand:

Four rules, enforced by the runtime — not by convention

A model's answer is never a plain value

ask(...) returns an Answer, not a string. You must write .value to use it. There’s no way to accidentally treat a guess as a fact — the language won’t let the two look the same.

Calling an action never does the thing

send_mail(...) returns an unsent request, not a sent email. Only .commit(), after .verify(), is allowed to touch the outside world.

Permissions are scoped like a variable

policy: deny payment.execute blocks a real call at the language level — inherited by nested code, gone once you leave that scope. No middleware.

An agent can pause and resume

agent is a real runtime entity with state you can inspect. It can suspend itself mid-task — waiting on a human, say — and pick back up exactly where it left off.

Read like plain code, not a C-family reskin

No braces, no semicolons, no let. Indentation is the block syntax; and/or/not instead of symbols. That’s a complete, typed, recursive function — nothing here beyond what the logic needs.

Start here

Quickstart

Install and run your first program in under two minutes.

Tutorials

Three short, hands-on walkthroughs — ask a model, build a safe action, build a pausable agent.

Which keyword do I want?

A one-page decision guide: def vs tool vs action vs agent, settled in one glance.

Roadmap

What’s built, what isn’t, tracked honestly and kept current.
Sense is a real, running interpreter (Python, tree-walking) — not a design document. Every example on this site is offline unless it says otherwise, by picking inference("mock", ...) as its provider; none need an API key to try.