3ni8ma/cli-tool
CLIQuick project scaffolding CLI with customizable templates
arkit — CLI scaffolding tool for React + Vite projects with Tailwind and shadcn/ui
- TypeScript100.0%
1 Review
Arkit has a clear goal and a small codebase that is easy to follow. The CLI uses Commander, strict TypeScript, an executable entry point, and straightforward file generation without bringing in a large dependency tree. It supports TypeScript or JavaScript, optional routing, Tailwind, ESLint, Git initialization control, multiple package managers, and overwrite behavior. The generated structure includes Vite configuration, application files, styles, environment documentation, and sensible ignore rules. The repository also has a locked dependency tree, Dependabot updates, a feature-request template, and GitHub Actions that installs dependencies and verifies the TypeScript build.
The current implementation does not yet produce a runnable React project. Generated package.json files contain scripts but no React, React DOM, Vite, or Vite React plugin dependencies. Router, Tailwind, and ESLint options generate imports or configuration without adding their required packages. The JavaScript option also leaves a TypeScript non-null assertion in main.jsx, which causes invalid JavaScript. These paths need automated end-to-end tests that generate every option combination, install dependencies, and run the resulting build. The existing CI only compiles the CLI itself, and there is no test command.
Installation and command documentation also need correction. The npm name arkit is already used by an unrelated architecture-diagram package, so npm install -g arkit does not reliably install this repository’s CLI. The documented arkit init my-project syntax also conflicts with the implementation, which defines the project name as the first positional argument and has no init subcommand. The README omits several implemented flags and advertises shadcn/ui even though no shadcn integration exists. More seriously, --force deletes the resolved directory through a shell-based rm -rf command. This is not Windows-compatible and lacks protection against dangerous targets such as the current directory. Node’s rmSync with strict path validation would be safer. A full LICENSE file should accompany the MIT declarations, and the automated timestamp comments that dominate the README and commit history should be removed or stored elsewhere. The foundation is understandable, but the generated-project and distribution paths need to work before the tool is ready for normal use.
