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: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
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.
inference("mock", ...) as its provider; none
need an API key to try.
