Build apps in one primitive that spans your whole stack — databases, UIs, AI agents, and services. No glue. 50× less code.
Built for
- 01AI agentsLong-running agents with memory.
- 02Local-first appsApps that live on your machine.
- 03ObservabilityLogs and metrics without a server.
- 04Data-intensive appsTerabytes in one Python program.
- 05Internal toolsScalable dashboards that fit in a single file.
Apache‑2.0Python 3.10+
Build with Nu.
A few of Nu's fabrics — state, UIs, cluster, models. Same Python, same code shape.
Persistent state
Persistent state. Stores any Python type.
Reach any value by name; it survives restarts. Same code local or sharded across a cluster.
- -Serverless, scales to terabytes
- -Store any Python type
Live browser UIs
Reactive UIs from Python. No JS, no build step, no websocket you had to write.
A text block, a chart, a form — set them like variables, they render. Update the value, the browser updates itself.
- -50+ components out of the box
- -Live updates for free
Distributed execution
Same code runs local or across the cluster. No worker pool to run.
Teleport any Nu tree to any worker; it runs there and returns the result. Where it runs is a binding, not a rewrite.
- -Same code, local or remote
- -Distribute with a single line
LLM calls
One wire, N providers. Ollama, OpenAI, OpenRouter, Groq, xAI — same call.
LLM chat as a Ref. Swap the model string, keep the code. Local models and hosted APIs meet at the same interface.
- -Add intelligence to any Nu app
- -7 providers out of the box
And more.
Nu is batteries-included and covers the common cases.
In-memory state, proxy, HTTP, Python objects, Claude Code, local parallelism — same model, same shape, same primitive as the four above.
See Nu live.
Install, run a demo, start hacking.
01 Install
Python 3.10+ · everything ships in the wheel
pip install "nustack-py[all]"02 Run a demo

counter
A live counter, persistent across restarts.
nu demo counter
sampled
An infinite series, live-sampled into a fixed-size chart.
nu demo sampled
movies
A movie tracker: form, filterable table, detail pages.
nu demo moviesHow Nu works.
The primitive Nu is built on, in three words.
A tiny script keeps its values in memory and calls functions on them. Real apps don't stay there. Values live in a database, arrive from a browser form, render into a dashboard, get recomputed by a background job. Almost none of the code is about the values anymore — it's all interaction between systems.
Nu makes interaction the primitive.
- Ref
- A name for a value, wherever it lives — a KV slot, a UI text block, an LLM endpoint, a remote object.
- Interaction
- What you do with a Ref: read, write, branch, iterate, compose.
- Fabric
- Binds Refs to a real system. Compose as many as you need; they all speak the same primitive.
Same primitive, different system. One Ref for any resource, one Interaction for any op. Setting a browser text block is the same interaction as setting a KV slot.
interaction-model
the theoryThe language-agnostic specification.
What an interaction is, how Refs name locations, how Interactions compose into programs. Nu is one implementation; anyone can build another.
nu
the python implementationBatteries-included, ready to run.
The interaction model in pure Python, with fabrics for the everyday jobs: in-memory state, kv-based state, UI, network, cluster compute.
Fabrics.
Each fabric gives your Nu app a new capability. These are the ones Nu ships with today.
Under the hood.
Standalone Python libraries Nu is built on. Each is useful on its own.
Like what you see?
The project is young. Star it, join the room, watch what we ship next.