· via dev.to (home feed)
Nuvyn CLI 1.2.0 adds spec-driven .NET MAUI scaffolding for new and existing apps
Nuvyn CLI 1.2.0 lands on nuget.org as a global .NET tool that scaffolds spec-driven .NET MAUI apps for AI coding agents, and its new adopt command extends the workflow to existing codebases.

Nuvyn CLI 1.2.0 is available on nuget.org as the global .NET tool NuvyntraLabs.Nuvyn.Cli. According to a walkthrough post on dev.to, the headline change in this release is a new nuvyn adopt command that attaches the tool's specification-driven workflow to an existing .NET MAUI application, extending Nuvyn beyond greenfield scaffolding.
What the tool does
As described on dev.to, Nuvyn is a standalone PackAsTool CLI that targets .NET 10, builds on System.CommandLine and Spectre.Console, and ships under the MIT licence. It exposes two commands.
nuvyn init scaffolds a new MAUI host for Android, iOS, Mac Catalyst and Windows, structured as a three-project solution: the app, a Core project for view models, and a test project. It also writes a .nuvyn/ directory with the project's constitution and templates, an empty specs/ folder, slash-command skills for a chosen coding agent, and a README. New hosts get a default package set — MVVMExpress with its Dialogs and Navigation plugins, the Lumina UIKit, HttpForge, FormValidation and KeyboardManager — added unpinned at the latest stable versions. The starter page is a Lumina screen with a counter; there are no seeded login or item-list pages, because screens are meant to come from the spec.
nuvyn adopt, new in 1.2.0, targets codebases that already exist. It scans, without modifying anything, how the app handles MVVM, navigation chrome, its UI kit and HTTP calls, then writes .nuvyn/, the agent skills, an empty specs folder and an adopt report. It refuses folders that are not MAUI apps or that already contain .nuvyn/. Importantly, adopt adds no Nuvyntra packages and edits no MauiProgram.cs — subsequent work is expected to continue on the stack the app already uses.
The specification workflow
The underlying method is spec-driven development: a checked-in specification is the source of truth, and code follows it. Per the post, Nuvyn writes five artifacts into the repository: a constitution holding fixed principles such as the stack, target platforms and privacy rules; a specification describing the users, journeys and edge cases of the current increment; a plan fixing a minimal package set and a per-screen recipe; tasks ordered by dependency; and an analysis step that checks consistency before production code is written.
The post is blunt about why this matters once agents write the code: an identical prompt can surface a different MVVM library depending on the day, extended conversations lose acceptance rules that only ever existed in the chat, and agents add login pages or unrequested persistence because a polished-looking app is the quickest way to satisfy the prompt. Each artifact constrains the agent further — the constitution fixes the stack, the specification defines the product, the plan sets the scope of packages and screens, and analysis halts the loop before implementation produces a competing architecture.
Requirements and positioning
Nuvyn needs the .NET 10 SDK, the MAUI workload and a coding agent; the post lists Cursor, GitHub Copilot, Claude Code, Gemini CLI, Codex and Windsurf as options, and non-interactive runs default to Cursor. It supports only the four MAUI platforms and is explicitly the wrong fit for Tizen, Flutter, React Native, WPF, WinUI, Avalonia or Uno.
Installation is the standard global-tool command, dotnet tool install -g NuvyntraLabs.Nuvyn.Cli. On interactive terminals the CLI asks every four hours whether to check nuget.org for an update, a prompt that can be silenced with a flag or an environment variable; the post says the CLIs make no calls home.
On positioning, the post presents GitHub's Spec Kit as the default option when the technology stack is unconstrained, with Nuvyn applying when the host is meant to be Nuvyntra or when an existing MAUI app should follow the same specification workflow.
Why it matters
Drift between sessions is one of the most concrete failure modes of agent-assisted development, and pinning stack decisions into a reviewable, versioned specification is a remedy more teams are reaching for. The adopt command is the more interesting half of this release, since it promises to graft that workflow onto an existing codebase without rewriting it around a vendor's packages. The trade-off deserves attention: init locks new projects to the Nuvyntra package set, so adopting the tool for new work is also adopting that stack. All details here come from the project's own announcement on dev.to, so teams should verify behaviour against the published package before relying on it.
- #dotnet-maui
- #cli
- #ai-agents
- #developer-tools
- #nuget