Spec-driven CLI
Nuvyn
The whole-ecosystem door: spec-driven CLI for .NET MAUI apps on the Nuvyntra stack
NuvyntraLabs.Nuvyn.Cli · 1.2.0
Nuvyn is the whole-ecosystem door. It creates a new four-platform MAUI host and locks plan/implement to MVVMExpress, Lumina UIKit, and the smallest Plugin.Maui.* set. nuvyn adopt attaches the same slash chain to an existing MAUI app without rewriting its host. Individual plugins and NuvyntraLabs.UIKit stay installable without Nuvyn. The product is whatever you specify — any domain.
Install
dotnet tool install -g NuvyntraLabs.Nuvyn.Cli --source https://api.nuget.org/v3/index.json
nuvyn init ClinicApp --agent cursorNuvyn is a standalone PackAsTool CLI. It depends only on System.CommandLine and Spectre.Console. nuvyn init copies an embedded three-project host, adds the default Nuvyntra packages from nuget.org, writes .nuvyn/ standing law, and installs slash commands for the Spec Kit coding-agent set — Cursor, GitHub Copilot, Claude Code, Gemini CLI, Codex, Windsurf, and 30+ more. nuvyn adopt attaches that slash chain to an existing MAUI app and writes .nuvyn/, skills, and adopt-report.md only — it does not change host architecture, UI kit, or HTTP. init never overlays an existing folder. init / adopt / check compose maui-dev doctor --path when MauiDev is on PATH. On an interactive terminal it asks every 4 hours whether to update from nuget.org.
Adopt an existing app
Attach the slash chain without rewriting MVVM, UI kit, or HTTP. Refuses a non-MAUI folder or a tree that already has .nuvyn/. Then run the same slash chain; read adopt-report.md before /nuvyn.plan.
cd FieldApp
nuvyn adopt
nuvyn adopt --agent cursor
nuvyn adopt --path ../FieldApp --agent copilotStep-by-step: Adopt an existing app.
Refresh skills
After you update the global CLI, refresh templates and slash files in an existing Nuvyn app (from init or adopt). Host code, specs/, .nuvyn/constitution.md, and .nuvyn/adopt-report.md stay as they are. PackageReference versions are not changed.
cd ClinicApp
nuvyn update
nuvyn update --agent cursorStep-by-step: Refresh skills.
Default host
Five product packages on the MAUI app, plus MVVMExpress satellites on Core and Tests. Versions are the latest nuget.org stable — not pinned. Do not add anything else until the spec asks.
Slash chain
Open the project in the agent you selected at init or adopt. Run these in order. Domain comes from your spec.
| Command | Writes | Purpose |
|---|---|---|
/nuvyn.constitution | .nuvyn/constitution.md | Nuvyntra principles plus optional product rules |
/nuvyn.specify | specs/<nnn>/spec.md | What / why — the mobile product spec |
/nuvyn.clarify | updates spec.md | Resolve ambiguities with at most five questions |
/nuvyn.plan | plan.md + research.md | Packages and one Lumina recipe per screen |
/nuvyn.checklist | checklists/<domain>.md | Optional reviewer quality gate |
/nuvyn.task | tasks.md | Dependency-ordered tasks (T001 [P] [US1]) |
/nuvyn.analysis | report only | Spec / plan / tasks consistency |
/nuvyn.implement | host code | Build the feature on the locked stack |
/nuvyn.converge | appends tasks.md | Remaining work after implement |
Coding agents
Omit --agent for a searchable Spec Kit picker. Pass a key to skip the prompt. Slash commands land in the folder that agent already reads.
| Agent | --agent | On disk |
|---|---|---|
| Cursor | cursor | .cursor/skills/nuvyn-*/ |
| GitHub Copilot | copilot | .github/skills/ |
| Claude Code | claude | .claude/commands/ |
| Gemini CLI | gemini | .gemini/commands/ |
| Codex CLI | codex | .agents/skills/ |
| Goose | goose | .goose/recipes/ |
| Windsurf | windsurf | .windsurf/workflows/ |
| Generic | generic | .agents/commands/ |
Also: agy, alquimia, amp, auggie, bob, cline, codebuddy, command-code, cursor-agent, devin, docker-agent, droid, dsh, firebender, forge, grok, hermes, iflow, junie, kilocode, kimi, kiro-cli (kiro), lingma, muse, omp, opencode, pi, qodercli, qwen, roo, rovodev, shai, tabnine, trae, vibe, zcode, zed.
Read next
- .NET MAUI
- CLI
- spec-driven
- agentic
- MVVMExpress
- UIKit
Discussion
Comment on Nuvyn. The thread lives on this component's GitHub repository (nuvyntralabs/Nuvyn). Sign in with GitHub — Giscus uses Discussions, Utterances uses Issues.