<nil>NILScript

Reference

Comparison

NILScript is the governed action layer for AI agents. MCP and OpenAPI are integration layers that standardize what an agent can reach; guardrails are probabilistic filters over an action the agent can already name; OAuth is the closest analogy, server-side authorization for writes. NIL is none of these, and it composes with them rather than replacing them.

Standard vs product

The distinction that matters most is what the spec guarantees versus what you build yourself. NILScript defines a wire protocol and a DSL that any conformant system can implement; it is not something you run.

Capability matrix

CapabilityRaw APIsMCP / function callingn8n / ZapierNILScript
Neutral across backendsNoPartialPartialYes
Agent-authored at runtimeNoYesNoYes
Preview before side effectNoNoNoYes
Tiered human approvalDIYDIYManual nodesBy spec
Idempotency + audit by specNoNoVariesYes (G4, G6)
Safe by constructionNoNoPartialYes
Intent, not implementationNoPartialNoYes
Durable executionNoNoYesYes
Governed reversal by specNoNoPartialYes
Every row is a real trade-off
The question is not which tool is “better” but how much safety the spec guarantees for you versus how much you wire up yourself.

NILScript, MCP, guardrails, and OAuth

MCP / OpenAPI / function-calling are integration layers. They describe a surface so a client can discover and call it; the agent still authors the call. NIL sits underneath the effect and governs it: it removes the agent’s ability to author an undeclared call at all. An agent can use MCP to read context and NIL to act on it, under a scoped grant with a preview the owner approves. NIL composes with MCP; it does not replace it.

Guardrails are probabilistic filters. A classifier or policy prompt inspects an action the agent can already name and blocks it with some probability. Under NIL the unauthorized action is not namable, so the rate is zero by construction within the threat model, not small by tuning. NIL is a single structural boundary, not a per-step filter.

OAuth is the closest correct analogy. NIL is authorization for agent writes, enforced at the effect boundary on the server, independent of the model. It does not make the model correct or the agent wise; it makes the unauthorized action uncommittable.

The structural guarantee has a boundary
Zero unauthorized writes holds while NIL is the sole effect path, confirmed on a live backend. On the kernel API path the kernel performs the read-back; on the MCP path that confirmation currently rests on the adapter envelope, and kernel-side re-verification per request is future work.

vs workflow tools

Workflow tools are products where a human designs flows ahead of time in a GUI. NILScript is a specification where an agent authors flows at runtime as validated DSL programs.

n8n / Zapier / MakeNILScript
Who authors the flowA human, ahead of timeAn agent, at runtime
What it isA hosted productAn open spec + reference
Backend couplingPer-connectorAny conformant system
Safety modelManual approval nodesTiers, previews, grants by spec
Failure recoveryEngine-dependentDurable; non-determinism quarantined

If flows are fixed and human-designed, a workflow tool is the right call. NILScript exists for when an agent decides what to do at runtime and it still must be safe, previewable, and auditable.

vs raw APIs

Raw APIs give maximum power and zero guardrails — and connecting M agents to N systems is the M×N problem, with hallucinated amounts going straight through. Hardcoded workflows are safe but rigid, encoding only the flows you anticipated, for one backend. NILScript collapses the false choice: an agent authors a plan at runtime (flexibility), and validation, two-phase commit, scoped grants, and tiered approval keep it safe.

Hallucinations die at the server
The agent proposes intent; the system validates, previews, and decides. The agent never executes anything directly.

NILScript is an open standard, stewarded by the Wosool project. The spec is extracted from running code.

Draft standard v0.3.0 · 0.x stage · NIL wire 0.1 · DSL 0.1