This repo is now archive , please see the devforge repo
npm version PyPI version Gem Version Crates.io Docker Hub Docker Image Size
A monorepo that contains the official cross-platform interactive CLI for scaffolding modern application templates and several language-specific wrapper projects and bundles.
This repository groups multiple packages and artifacts used to build, bundle and distribute the package-installer CLI (the pi / package-installer binary). Converting to a monorepo keeps related projects together, simplifies releases, and makes it easier to maintain shared templates and build scripts.
Top-level folders you'll commonly use:
core-cli/— The main TypeScript CLI implementation (core). Containspackage.json,src/, build scripts and thepiCLI. Versioned independently (seecore-cli/package.json).wrappers/python/,wrappers/ruby/,wrappers/rust/,wrappers/go/— Language-specific wrappers that adapt the CLI or provide language integrations where applicable.wrappers/homebrew-tap/— Homebrew tap for macOS installations.bundle-executables/,bundle-standalone/,binary/— Bundled distributions and prebuilt binaries for different platforms (In core-cli folder).templates/— Project templates used by the CLI to scaffold new projects (In core-cli folder).docs/andfeatures/— Documentation and feature definitions for templates and integrations (In core-cli folder).
Files of interest:
- Root
README.md(this file) core-cli/CONTRIBUTING.md— how to contribute and releaseLICENSE— project license (MIT)
Prerequisites: Node.js (>=18 recommended), pnpm (preferred), or npm/yarn.
- Clone the repository:
git clone https://github.com/0xshariq/package-installer-cli.git
cd package-installer-cli- Work with the TypeScript core (recommended):
cd core-cli # install dependencies (pnpm preferred since lockfile exists) pnpm install # build the CLI pnpm run build # run locally pnpm start # or, using npm npm install npm run build node ./dist/index.js
- Work with other packages
Each wrapper or subpackage is self-contained. To develop a wrapper or build a bundled executable, cd into that folder and follow its README or run its scripts. For example, to work with the Rust wrapper:
cd wrappers/rust # follow the folder's README / use cargo build there
- Build core CLI:
cd core-cli && pnpm run build - Run CLI locally:
cd core-cli && pnpm start(ornode ./dist/index.js) - Create distribution bundles:
cd tcore-cli && pnpm run build && pnpm run binary && pnpm run bundle(you can use any package manager other than pnpm) - Clean builds (dist folder):
cd core-cli && pnpm run clean
- Follow
core-cli/CONTRIBUTING.mdfor contribution guidelines, commit messages, and release process. - When modifying templates, add tests or an example scaffold run to verify the generated project.
- Keep distribution bundles out of commits; they are generated by build scripts.
Important contribution note
At the moment, please focus contributions on the TypeScript core located at
core-cli/only. The language-specific wrappers (Python, Rust, Ruby, Go, etc.) are currently placeholders or partial ports. I will be rewriting each wrapper's full implementation from scratch as I learn those languages properly. Once the wrappers have complete, native implementations, they will be open for external contributions.
If you'd like to help earlier, please open issues, report bugs, or suggest documentation/template improvements. To avoid duplicate work, please avoid submitting PRs that change wrapper logic until the new implementations are available.
Release steps typically involve:
- Bumping the version in the package (see
core-cli/package.json). - Building the core and creating distribution bundles (
pnpm run build, thenpnpm run binary, and lastlypnpm run bundle). - Publishing packages or uploading release assets (binaries, installers, Homebrew tap updates).
Automations (CI) may exist in .github/workflows/ inside package folders — check each package for its own CI configuration.
This repository is licensed under the MIT License. See the LICENSE file for details.
Open issues on GitHub: https://github.com/0xshariq/package-installer-cli/issues
- NPM: @0xshariq/package-installer
- PyPI: package-installer-cli
- RubyGems: package-installer-cli
- crates.io: package-installer-cli
- Docker Hub: 0xshariq/package-installer-cli