ivxx
v0.0.6
Published
The CLI companion to the xaidozy Pack (xaidozy-pack) VSCode extension — fetch remote templates and generate files into your project from the terminal.
Readme
ivxx
ivxx is the command-line (CLI) version of the xaidozy Pack (xaidozy-pack) VSCode extension.
It brings the extension's "fetch files from a remote template repository and generate them into your project" capability to the terminal: without opening VSCode, run a single command in any directory to interactively pick a template and generate its files into the current directory. The CLI shares the same template-generation core with the extension (manifest fetching, file downloading, and conflict handling are identical), so their behavior stays in sync.
📦 Package name:
ivxx· 🔧 Command name after install:ivxx.
Installation
Install globally (then use the ivxx command in any directory):
npm i -g ivxxOr run it once without installing, via npx:
npx ivxx generateUsage
ivxx <command>| Command | Aliases | Description |
| ----------- | --------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| generate | gen / g | Interactively pick a conflict-handling level and a template, then generate files into the current directory (process.cwd()) |
| help | -h / --help | Show help |
| --version | -v | Show the version number |
The generate flow
- Choose a conflict-handling level:
- 🌿 Shallow: only resolve conflicts at the first path segment (a conflicting top-level folder is renamed as a whole; its contents are not checked individually).
- 🌲 Deep: recurse through every level, checking each file for conflicts within its parent directory.
- Choose a template: pick one from the remote manifest (the list shows the file count for each template).
- Generate: files are downloaded and written into the current directory one by one with progress feedback; a summary of written / renamed / skipped / failed counts is printed at the end.
Conflict rename rule: a -copytemplate suffix is inserted before the file extension, e.g.
app.txt → app-copytemplate.txt → app-copytemplate-copytemplate.txt ….
If a target file already exists and its content is identical to the remote file, it is skipped (not rewritten).
Examples
# Without installing (uses the package name)
npx ivxx generate
# After a global install
ivxx gen
ivxx help
ivxx --versionRelationship to the VSCode extension
| | VSCode extension xaidozy-pack | CLI ivxx |
| ---------------------- | --------------------------------------------------- | --------------------------------- |
| Interaction | Command Palette / Explorer context menu / QuickPick | Terminal select + spinner |
| Output target | Workspace root | Current working directory |
| Template source | Remote template repository (same) | Remote template repository (same) |
| Conflict-handling core | Shared | Shared |
They target different scenarios but share the same underlying logic; the behavior you're used to in the extension holds in the CLI as well.
Development
npm install # install dependencies
npm run build # bundle to dist/cli.mjs with tsup (includes the #!/usr/bin/env node shebang)
npm run dev # build and run immediatelyThe core logic is reused from the parent extension's ../src/modules/* (remote / fs / constants / icon / summary). tsup bundles them into a single-file output by following the imports, so the published package is self-contained and runs without the extension.
License
ISC © xaidozy
