@xeno-js/cli
| Install | |
|---|---|
npm install @xeno-js/cli |
|
| Latest Version: | 0.3.1 |
| License: | MIT |
| Last Updated: | Oct 8, 2026 |
| Links: | GitHub · npm |
What is Xeno CLI?
Xeno CLI (@xeno-js/cli) is the command-line entry point for creating and
generating Xeno projects.
It helps you start with an explicit application structure instead of rebuilding the same architecture by hand.
Use it to:
- create a new Xeno backend project;
- create a Xeno Vue project;
- generate commands and queries;
- choose the infrastructure modules your project needs;
- generate the initial configuration and composition files.
The goal is simple:
Start coding the application, not the scaffolding.
Start in seconds
Create a Xeno backend project:
npx @xeno-js/cli new my-app --core
Create a Vue project:
npx @xeno-js/cli new my-app --vue
The CLI guides you through the project options and generates the initial structure for you.
Generate a use case
Once your project exists, generate application components without manually rebuilding the same structure.
npx @xeno-js/cli g command CreateUser --core
or:
npx @xeno-js/cli g query FindUser --core
For Vue:
npx @xeno-js/cli g command CreateUser --vue
The g alias is available for faster iteration:
xeno-js g command CreateUser --core
What the CLI creates
Xeno CLI is built around the architecture used by the Xeno ecosystem.
A new project starts from explicit building blocks such as:
Application
├── composition root
├── configuration
├── registry
├── CQRS
├── domain contracts
└── infrastructure boundaries
The exact generated files depend on the project type and the modules you select.
The important part is the boundary:
Transport
↓
Application
↓
Domain
↓
Infrastructure
The CLI gives you the starting structure.
Your application defines the business behavior.
Backend projects
The Core scaffold can configure modules for areas such as:
- database access;
- Redis;
- authentication;
- HTTP clients;
- resilience;
- logging;
- validation;
- application pipelines.
The generated project uses @xeno-js/core as its application runtime.
Example:
my-app/
├── src/
│ ├── bootstrap.ts
│ ├── main.ts
│ └── registry.ts
├── package.json
├── tsconfig.json
└── .env
The purpose is not to hide the architecture.
The purpose is to give you a clear place to continue building it.
Vue projects
Xeno CLI can also scaffold Vue applications around @xeno-js/vue.
npx @xeno-js/cli new my-app --vue
The generated project can include the pieces you choose for your application, such as:
- Xeno frontend bootstrap;
- Vue configuration;
- application registry;
- routing;
- Pinia;
- authentication;
- HTTP data sources;
- validation;
- logging;
- styling.
The UI remains the presentation layer.
Application behavior remains outside the component whenever the architecture requires it.
Why use the CLI?
Starting an application usually creates the same decisions again:
Where should the application bootstrap live?
Where should dependencies be registered?
Where do commands and queries belong?
How should infrastructure connect to the application?
How should the project evolve without putting everything into controllers, routes, or components?
Xeno CLI turns those decisions into a repeatable starting structure.
You still design the application. You do not have to rebuild its foundation every time.
CLI and Xeno
The CLI is one part of the Xeno ecosystem.
@xeno-js/shared
defines domain primitives
and application contracts
↓
@xeno-js/core
executes the application architecture
↓
@xeno-js/vue
brings the model to the browser
↓
@xeno-js/cli
creates the starting structure
A useful mental model is:
Shared defines the language. Core executes the architecture. Vue hosts the architecture in the browser. CLI gets you started.
Use it on new projects
The CLI is designed to make the first project setup explicit and repeatable.
npx @xeno-js/cli new my-app --core
Then:
cd my-app
npm run start
The generated application can then be extended with the components and infrastructure your project actually needs.
Generate inside an existing project
The generator can also be used after the project already exists.
For example:
npx @xeno-js/cli g command CreateOrder --core
This is useful when a project already has its application structure and you want to add another command or query without rebuilding the surrounding files manually.
Commands
Create a project
xeno-js new <name> [--core | --vue]
Options
--core— create a backend project using@xeno-js/core--vue— create a frontend project using@xeno-js/vue
Generate a command or query
xeno-js generate <command | query> <Name> [--core | --vue]
Alias:
xeno-js g <command | query> <Name> [--core | --vue]
Optional output path:
xeno-js g command CreateUser --core --output src/features/users
Help
xeno-js --help
Aliases:
xeno-js -h
xeno-js --h
Installation
You can run the CLI on demand:
npx @xeno-js/cli --help
Or install it globally:
npm install -g @xeno-js/cli
Then:
xeno-js --help
Node.js
Xeno CLI currently targets:
Node.js 20+
Relationship with the Xeno architecture
Xeno CLI does not replace your transport framework.
It does not try to own HTTP routing.
It does not define your business rules.
It gives you a consistent starting point for the application layer that sits between transport and infrastructure.
HTTP / CLI / Worker
↓
Application
↓
Domain
↓
Infrastructure
That boundary is what the rest of Xeno is designed to execute.
Read the architecture
The CLI is easier to understand when you see the architecture it generates.
Start with:
- Xeno Core
- Xeno Shared
- Xeno Vue
- Xeno architecture documentation
Documentation:
Core:
Shared:
Vue:
Contributing
Contributions are welcome.
Development happens from feature branches targeting develop.
git checkout develop
git pull origin develop
git checkout -b feat/your-feature
npm install
npm run check
Before opening a pull request:
npm run check
We use Conventional Commits:
feat(cli): add generator
fix(generator): correct scaffold output
refactor(dispatcher): simplify command dispatch
docs(readme): improve getting started
Support
If Xeno is useful to you, you can support the project through the community and sponsorship channels documented on the website:
License
Copyright (c) 2026 Xeno.
Licensed under the MIT License.
Related Packages
Application architecture for Vue with explicit dependency injection, CQRS, compo...
Version History
| Version | Released | License |
|---|---|---|
| 0.3.1 | MIT | |
| 0.3.0 | MIT | |
| 0.2.2 | MIT | |
| 0.2.1 | MIT | |
| 0.2.0 | MIT | |
| 0.1.8 | MIT | |
| 0.1.7 | MIT | |
| 0.1.6 | MIT | |
| 0.1.5 | MIT | |
| 0.1.4 | MIT | |
| 0.1.3 | ISC | |
| 0.1.2 | ISC | |
| 0.1.1 | ISC | |
| 0.1.0 | ISC |