Skip to main content

Visual Intent Contract Orchestrator: freeze project slices, evolve capsules, verify intent contracts.

Project description

Nexu

AI Cost Tracking

PyPI Version Python License AI Cost Human Time Model

  • 🤖 LLM usage: $2.1564 (18 commits)
  • 👤 Human dev: ~$818 (8.2h @ $100/h, 30min dedup)

Generated on 2026-05-31 using openrouter/qwen/qwen3-coder-next


NexuVisual Intent Contract Orchestrator.

Nexu is a Python package and CLI for creating small, isolated project capsules from a large codebase. It helps you freeze a baseline, extract a slice of code/data/contracts, evolve that slice through multiple LLM or human iterations, and verify the result against formal intent contracts before promoting it back.

The core workflow is:

freeze → capsule create → plan → blueprint → iterate → runtime → export-prompt → verify → report → promote

Nexu is designed to work with Intract-style intent contracts, but it can run as a standalone prototype. The goal is not to make an LLM magically correct. The goal is to keep the LLM inside a small, versioned, contract-bound sandbox and detect when its output diverges from declared intent.

What changed in 0.5.0

The fifth iteration adds LLM orchestration and an MCP service:

  • capsule orchestrate creates an offline or optional LLM-assisted step-by-step capsule evolution plan,
  • orchestration writes orchestration.yaml, orchestration.md, orchestration-prompt.md and context YAML,
  • nexu mcp tools lists tools available to IDE/agent clients,
  • nexu mcp serve exposes Nexu operations through a conservative MCP-compatible stdio JSON-RPC service,
  • MCP promotion remains dry-run only and LLM network calls remain disabled unless explicitly allowed in nexu.yaml.

Why Nexu?

Long-running IDE prompting has a common failure mode:

large repo + vague task + many steps = context drift and hallucinated implementation

Nexu changes the operating model:

large repo
  ↓ freeze baseline
small capsule
  ↓ evolve only this capsule
verified result
  ↓ promote to the real project

Install locally

python -m venv .venv
. .venv/bin/activate
pip install -e .[dev]
nexu --help

First run

nexu init .
nexu freeze . --name baseline
nexu capsule create . --name menu-icons --domain menu --include "examples/frontend_view/src/**" --route /menu-icons
nexu capsule plan menu-icons --steps 10 --goal "Add preview, confidence and reason fields"
nexu capsule blueprint menu-icons --print
nexu capsule iterate menu-icons --steps 3 --goal "Add preview, confidence and reason fields"
nexu capsule runtime menu-icons
nexu capsule orchestrate menu-icons --steps 10 --goal "Add preview, confidence and reason fields"
nexu capsule export-prompt menu-icons
nexu capsule verify menu-icons
nexu capsule review menu-icons
nexu capsule report menu-icons
nexu capsule bundle menu-icons
nexu capsule diff menu-icons
nexu capsule drift menu-icons
nexu capsule promote menu-icons --dry-run

Key Features Added Recently

  • Secure Workspace Promotion: Support for applying capsule changes to the source workspace via the nexu capsule promote --apply command (and via the nexu_capsule_promote_apply MCP tool).
  • Dynamic Intract Policy Engine Integration: Runs the actual sibling intract package validations (including AST verification and contract compliance) during the capsule verify step to guarantee correctness.
  • Web App Dashboard Evolution Example: Fully details multi-stage sandbox visualization and evolution under examples/web_app_dashboard.
  • Web App Calculator Mock Example: Compares a simple arithmetic layout (S0) and a scientific layout (S2) under examples/web_app_calculator (evolving the calc capsule).
  • Web App Database Analytics Example: Showcases transition from raw SQL/NoSQL table logs to glassmorphic visual charts under examples/web_app_analytics.

Important folders

src/nexu/       Python package
docs/           documentation
examples/       runnable example projects
tests/          unit tests

Documentation

Start here:

Main commands

nexu init .
nexu freeze . --name baseline
nexu capsule create . --name my-slice --include "src/my_module/**"
nexu capsule list
nexu capsule status my-slice
nexu capsule blueprint my-slice
nexu capsule iterate my-slice --steps 10 --goal "Evolve final screen"
nexu capsule orchestrate my-slice --steps 10 --goal "Evolve final screen"
nexu capsule export-prompt my-slice
nexu capsule diff my-slice
nexu capsule review my-slice
nexu capsule bundle my-slice
nexu capsule drift my-slice
nexu capsule verify my-slice
nexu capsule review my-slice
nexu capsule bundle my-slice
nexu capsule promote my-slice --dry-run
nexu mcp tools
nexu mcp serve --path .

Cinema (LLM live mode)

To run Cinema with real LLM evolution:

  1. Add API key to .env in repo root:
OPENROUTER_API_KEY=...
  1. Enable network calls in workspace config (examples/web_app_calculator/workspace/nexu.yaml):
llm:
  allow_network_calls: true
  api_key_env: OPENROUTER_API_KEY
  1. Run Cinema iteration:
make cinema

Use the URL printed in the log (Live HTTP Server started for Cinema Player: http://127.0.0.1:…) — not a fixed port (8080 may be taken by another service).

Stop stale cinema servers before restarting:

make cinema-stop
make cinema

Useful helpers:

make cinema-open      # run and open current player URL
make cinema-repair    # re-inject runtime scripts into generated HTML files
NEXU_CINEMA_NO_OPEN=1 make cinema

Simple iteration flow (3 steps):

  1. Goal — type what you want (e.g. chemical calculator) → Add goalGenerate Options A–C.
  2. Compare — review Options A, B, C (workspace on the left stays unchanged).
  3. Promote & refine — click an option to save it to the workspace → drag on buttons (left = keep, right = remove) → Apply marks to workspace.

History & policy (bottom row, two columns): left — Change history with Restore UI + policy (rewinds HTML, ledger, and merges contracts into manifests); right — Policy contracts (baseline + active ledger lines, manifest actions). Use the URL from make cinema output, not a fixed port.

  1. Run tests:
make test
make ci-cinema-smoke   # nexu + sibling intract + cinema policy dry-run

You can override defaults from Makefile inline:

make cinema CINEMA_CAPSULE=scientific_calc CINEMA_PATH=examples/web_app_calculator/workspace

Model override (otherwise LLM_MODEL from workspace .env):

make cinema CINEMA_MODEL=openrouter/google/gemini-3.1-flash-lite-preview

License

Licensed under Apache-2.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nexu-0.5.12.tar.gz (1.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nexu-0.5.12-py3-none-any.whl (81.5 kB view details)

Uploaded Python 3

File details

Details for the file nexu-0.5.12.tar.gz.

File metadata

  • Download URL: nexu-0.5.12.tar.gz
  • Upload date:
  • Size: 1.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for nexu-0.5.12.tar.gz
Algorithm Hash digest
SHA256 bdf45f9aec66c50027e134b47c931f852527a7495bae7ef55eb6983a4b160333
MD5 a97bfbf34ade1295b90e2e02913f49b6
BLAKE2b-256 5f8a78e5707c917ecddafca6695dd914b928e86be190b0a2478b2ecaff1a0ef8

See more details on using hashes here.

File details

Details for the file nexu-0.5.12-py3-none-any.whl.

File metadata

  • Download URL: nexu-0.5.12-py3-none-any.whl
  • Upload date:
  • Size: 81.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for nexu-0.5.12-py3-none-any.whl
Algorithm Hash digest
SHA256 b9cd54dfdc35550ac7fe5e3cfcd566ad8a54fe706deae4a558156c5c67c4470e
MD5 768ee6efff84e54988027c9d4a311300
BLAKE2b-256 812755d81151d8fb368e228445c841c95764302928ebce85af531decb4241f2f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page