Network Intent Layer (NIL) + the nilscript DSL — the neutral standard for connecting systems to agents.
Project description
nilscript
The universal standard for connecting systems to agents — a USB port for software.
nilscript is one neutral standard in two layers. The standard is plain JSON +
documentation: any language can read it and implement against it. A thin, optional
Python SDK ships alongside for convenience — but the standard does not depend on it.
| Layer | Name | What it is |
|---|---|---|
| Operations | NIL — Network Intent Layer | The wire contract: how an agent proposes an action to a backend, how the backend answers, the envelope, grants, refusals, and per-domain profiles (commerce, services). The "USB protocol." |
| Orchestration | nilscript DSL | A declarative, JSON-based, LLM-native language a graph layer above NIL: an agent writes a program, a static validator admits it, a durable runtime executes it. |
The two layers are specs, not software. A reference implementation (wosool-cloud)
obeys both, but never defines them — conformance is defined here.
Install
pip install nilscript # the standard only (JSON + docs) — zero heavy deps
pip install nilscript[sdk] # standard + Python SDK (httpx, pydantic)
import nilscript
nilscript.spec_path() # path to bundled NIL schemas
nilscript.load_profile("commerce.process_refund") # a profile's JSON Schema
nilscript.dsl_schema_path() # path to the DSL JSON Schema
from nilscript.sdk import NilClient # only with [sdk]
The core install carries no runtime dependencies — it is data (pydantic[email]
/ uvicorn[standard] style: the heavy parts live behind an optional extra).
Layout
nilscript/
├── README.md LICENSE GOVERNANCE.md VERSIONING.md CHANGELOG.md
└── src/nilscript/
├── nil/ # NIL: schemas/0.1/ (+ profiles), registry/, versions/, examples/
├── dsl/ # nilscript DSL: schema/, conformance/, language docs
├── docs/ # backend conformance + cross-cutting docs
└── sdk/ # optional Python SDK (imported only with [sdk])
Standard files live inside the package so they ship in the wheel and are
reachable via importlib.resources — the same pattern as
jsonschema-specifications.
Writing an SDK in another language
The standard is language-neutral JSON. A Go, TypeScript, or Rust implementer reads
the schemas in src/nilscript/nil/ and src/nilscript/dsl/ straight from this
repository and writes a client in their language. We do not reserve a package per
language — the world writes SDKs from the same files (the OpenAPI / MCP / JSON-Schema
model).
License
Dual-licensed by artifact class: CC BY 4.0 for specification text, Apache 2.0 for schemas, conformance vectors, and SDK code. See LICENSE.
Home: nilscript.org
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nilscript-0.2.0.tar.gz.
File metadata
- Download URL: nilscript-0.2.0.tar.gz
- Upload date:
- Size: 127.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a35212cb1508783f3e549d6b7eb057e142add55d79c0edac1334998e7ba9e7ef
|
|
| MD5 |
ad0922729ddc698a6e6fc9bfed6b932a
|
|
| BLAKE2b-256 |
020afe2f94143122f18c8d6e9cf680e3c73090a0a2d0fb2d98cf38d494bd9398
|
File details
Details for the file nilscript-0.2.0-py3-none-any.whl.
File metadata
- Download URL: nilscript-0.2.0-py3-none-any.whl
- Upload date:
- Size: 173.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b9d4f0d95edcfd8caf7f2ee2f674c5b20c4170d864262d814d98e8f1e42e422d
|
|
| MD5 |
33e867b3824aa0ea8ad771a3c4fd8824
|
|
| BLAKE2b-256 |
8479417982f438cbf2651c09154a7cea461c790ab0d0cb72ee61339b6275e06b
|