Vyuh CLI
Scaffold modular Flutter Apps, portable features, and shared capability plugins. CMS integration is optional and disabled by default.
Install
dart pub global activate vyuh_cli
Create an App workspace
vyuh create project shop --org-name=com.acme --platforms=android,ios,web -o products
Creates a Dart workspace with a Flutter App, a counter feature, plugin/package directories, Material UI, and local Melos tooling. It runs Flutter setup and workspace bootstrap. Flutter and Dart must be on PATH. --application-id overrides native bundle identifiers; --description sets the App description. CMS defaults to none; --cms=sanity explicitly adds Sanity packages and a Studio, requiring Node/pnpm and Sanity account access.
Create a feature
vyuh create feature feature_catalog --title="Catalog" --description="Product browsing" --route=/catalog -o features
Generates a Flutter package with a descriptor and starter screen. Add it to the workspace/dependencies and include its descriptor in runApp(features: ...). Package names use lowercase letters, digits, and underscores. Routes must be absolute paths.
Create a plugin
vyuh create plugin catalog_search --class-name=CatalogSearchPlugin --title="Catalog search" --description="Shared search capability" -o plugins
Generates an exported custom Plugin class using InitOncePlugin, cleanup hooks, and a lifecycle test. Register it in PluginDescriptor.others and retrieve it through vyuh.getPlugin. For a built-in system capability, implement its specific contract and use the named descriptor slot instead.
Optional CMS scaffolds
vyuh create schema catalog --cms=sanity
vyuh create item product --feature=feature_catalog
These commands are explicit authoring tools, independent of the default App/feature/plugin path.
Development tools
vyuh doctor
vyuh doctor --cms=sanity
vyuh update
vyuh completion --help
vyuh --version
vyuh create project --help
Doctor checks Flutter/Dart by default and adds Node/pnpm checks when Sanity is selected. Each create command supports --output-directory (-o). Built-in scaffolds ship with the CLI so a registry brick cannot replace them with older templates.
Libraries
- command_runner
- commands/create/base_create_command
- commands/create/command
- commands/create/feature/command
- commands/create/feature/template
- commands/create/feature/vyuh_feature_bundle
- commands/create/item/command
- commands/create/item/template
- commands/create/item/vyuh_item_bundle
- commands/create/plugin/command
- commands/create/plugin/template
- commands/create/plugin/vyuh_plugin_bundle
- commands/create/project/command
- commands/create/project/template
- commands/create/project/vyuh_project_bundle
- commands/create/schema/command
- commands/create/schema/template
- commands/create/schema/vyuh_feature_sanity_schema_bundle
- commands/doctor/command
- commands/doctor/src/doctor
- commands/doctor/src/utils/comand_version_validator
- commands/doctor/src/utils/doctor_validator
- commands/doctor/src/utils/user_messages
- commands/doctor/src/utils/utils
- commands/doctor/src/validators/dart_validator
- commands/doctor/src/validators/flutter_validator
- commands/doctor/src/validators/melos_validator
- commands/doctor/src/validators/node_validator
- commands/doctor/src/validators/pnpm_validator
- commands/doctor/src/validators/sanity_validator
- commands/doctor/src/validators/validators
- commands/update/command
- template
- utils/logger_extension
- utils/utils
- version
- vyuh_cli
- vyuh_cli, A Vyuh Flutter project created by Vyuh CLI.