@dynamia-tools/cli
v26.4.1
Published
Dynamia Tools CLI — Scaffold new Dynamia Platform projects
Maintainers
Readme
@dynamia-tools/cli
Scaffold new Dynamia Platform projects from the command line.
Installation
One-line bootstrap (Linux & macOS)
Installs JDK 25, Node.js LTS, and the CLI:
curl -fsSL https://get.dynamia.tools | bashnpm (global)
npm install -g @dynamia-tools/cliRequirements
| Tool | Minimum version | |---|--------------------------------| | Node.js | 24 | | git | any recent version (required) | | Java | 25 (recommended) |
Usage
dynamia newThe wizard guides you through:
- Project name — lowercase, letters/numbers/hyphens only
- Scaffold choice — Backend + Frontend / Backend only / Frontend only
- Backend language — Java, Kotlin, or Groovy
- Maven coordinates — Group ID, Artifact ID, version, description
- Frontend framework — Vue 3 or React
- Package manager — pnpm, npm, or yarn
- Confirm — shows a summary table before generating
Beta note: this CLI is in active beta. If a command or template is not ready yet, you will get a friendly "not available yet" message.
Errors include short support codes such as DT-TEMPLATE-002 to make issue reporting easier.
What gets generated
my-erp-app/
├── backend/ Spring Boot + Dynamia Tools (Java/Kotlin/Groovy)
└── frontend/ Vue 3 or React + Vite + @dynamia-tools/vue|sdkBackend
- Cloned from a GitHub template repo (e.g.
dynamiatools/template-backend-java) - Template repository and branch are validated before cloning
- Placeholder package
com.example.demorenamed to yourgroupId.artifactId - All tokens replaced in
.java,.kt,.groovy,.xml,.yml,.properties,.md DemoApplication.javarenamed to<YourArtifactId>Application.java
Frontend
- Cloned from a GitHub template repo (e.g.
dynamiatools/template-frontend-vue) - Template repository and branch are validated before cloning
- Falls back to
npm create vite@latestif template clone/validation fails @dynamia-tools/sdkand@dynamia-tools/ui-coreinstalled automatically
Configuration
All versions, URLs, and template repositories live in cli.properties — the single source of truth. TypeScript code never hardcodes versions or URLs.
Key sections:
| Section | Description |
|---|---|
| dynamia.* | Framework version and docs URL |
| beta.* | Beta-mode UX messages |
| java.* | JDK version and SDKMAN candidate |
| template.backend.<id>.* | Backend template repos (java, kotlin, groovy) |
| template.frontend.<id>.* | Frontend template repos (vue, react) |
| template.*.<id>.enabled | Enable/disable template options in the wizard |
| template.*.<id>.availabilityMessage | Message shown when a template is disabled |
| token.* | Placeholder tokens used inside template repos |
| vite.* | Vite fallback config |
Template author conventions
When creating template repos (e.g. dynamiatools/template-backend-java):
- Default Java source package:
com.example.demo pom.xmlgroupId:com.example, artifactId:demo- Main class:
src/main/java/com/example/demo/DemoApplication.java - Use these placeholders in files:
{{GROUP_ID}}— user's group ID{{ARTIFACT_ID}}— user's artifact ID{{BASE_PACKAGE}}— computed base package{{PROJECT_NAME}}— project name{{PROJECT_VERSION}}— project version{{DYNAMIA_VERSION}}— Dynamia Tools version{{SPRING_BOOT_VERSION}}— Spring Boot version
Links
License
Apache-2.0 — © Dynamia Soluciones IT SAS
