Metadata-Version: 2.5
Name: nuspace
Version: 0.5.3
Summary: Nu runtime built on Nu. A self-hosted programmable space that runs Nu programs as a tree of planes and cells.
Project-URL: Repository, https://github.com/nustackdev/nuspace
Author-email: Gor Arakelyan <gorarkln@gmail.com>
License-Expression: AGPL-3.0-or-later
License-File: LICENSE.md
Keywords: nu,nuspace,nustack,python,runtime,self-hosted,ui
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.10
Requires-Dist: click>=8.0
Requires-Dist: nucore>=0.6.3
Requires-Dist: nuspace-ui>=0.5.3
Requires-Dist: nustd[kv,mp-pool,proxy,ui,valkey]>=0.6.3
Requires-Dist: rich-click>=1.6
Requires-Dist: rich>=10.7
Requires-Dist: typing-extensions>=4.7.0
Requires-Dist: virtuals-py[redis]>=0.1.10
Provides-Extra: all
Requires-Dist: nustd[all]>=0.6.3; extra == 'all'
Provides-Extra: demos
Requires-Dist: nuverse-demos; extra == 'demos'
Description-Content-Type: text/markdown

# nuspace

nuspace is a live computing space for your notes, data, tools and agents.

Everything in it is built from **cells**. A cell can be anything, a note, a table, a chart, a job, an agent at work, and every cell is a running program: it keeps its state, talks to the rest of the space and draws itself on screen.

> Early. Things move fast and the store format is not frozen yet.

## Alive, all the way down

- **It reacts.** Live isn't a websocket someone wired up for one screen. Every value in the space can be reacted to by anything else, so all of it is live.
- **It remembers.** Every write is persisted, in a transaction, as it happens. Storage is sharded by design, so a cell holds a billion rows the same way it holds a counter.
- **It draws.** A cell puts text, tables, charts and forms on screen the same way it saves a value, and every open tab stays in sync.
- **It scales.** The same program runs in a worker, across processes or on a cluster, without changing shape.
- **It grows.** The kernel only runs things. Everything else is built from cells, even the system. Nothing you can't extend or replace.
- **It is programmable.** It doesn't offer an API, it is one. People and agents write programs with the same reach. Not a menu of calls: a language.
- **It is made of itself.** There is no outside. The services that keep your space running, the operations that change it, the screens you use it through: all written in the same language your cells speak. So a cell can do anything nuspace can. Build a plane. Start a job. Rewrite a service. So can an agent. nuspace is a complete computer that can reprogram itself while it runs.

## Why it works

nuspace is built on [Nu](https://github.com/nustackdev/nu) and runs Nu, where everything is an interaction. Reading a disk, drawing a table, running a job, calling a model: same primitive, different place. Persistence, reactivity, interfaces and distribution aren't four systems glued together. They are one primitive on different fabrics, which is why every cell gets all of them for free, and why the space can keep growing without falling apart.

## Try it

```bash
pip install nuspace
nuspace run my.nuspace
```

A browser opens on http://127.0.0.1:8080 and your space is alive. Press `/` on a plane to add a cell. `--headless` runs it with nothing drawn.

For something to look at first, `pip install "nuspace[demos]"` and `nuspace demo` lists what there is to open.

Planes and snippets are extensions, found on install through the `nuspace.extensions` entry point. Bring your own and they live in the space like everything else.

## Yours

Self-hosted. Your space is a directory on your machine.

## License

GNU Affero General Public License v3.0. See [LICENSE.md](LICENSE.md).
