project-registry
v0.4.1
Published
A developer CLI that starts projects from named templates backed by shell commands.
Readme
project-registry – projx
A CLI tool to save and run command templates with variables.

Installation
Requirements:
- Node.js version 21.0.0 or higher.
npm install -g project-registryor
pnpm add -g project-registryQuick Start
1. Add a simple template
A template is just a name mapped to one or more commands.
projx add react "pnpm create vite . --template react"2. Run it
projx reactThat’s it ^.^
Using variables
Templates can contain variables using the {{variable}} syntax.
Example:
projx add react \
"pnpm create vite {{name}} --template react" \
"cd {{name}}" \
"pnpm install"Variables with description
You can provide a description for a variable to make the prompt more helpful using {{variable::description}} syntax:
projx add my-template "echo {{name::Enter the project name}}"If you use the same variable multiple times, you only need to add the description once:
projx add my-template \
"echo Creating {{name::Project Name}}" \
"mkdir {{name}}" \
"cd {{name}}"Run it by passing values:
projx react my-appIf a value is missing, projx will ask for it automatically.
Variables are optional — if you don’t need them, don’t use them.
Running templates (name or select)
Run directly by name
projx react my-appThis is the fastest way if you remember the name.
Use interactive selection (recommended)
If you don’t remember the exact name:
projx select # or projx sYou’ll get a numbered list and can pick one.
Filtering templates
You can filter the list when you have many templates:
projx select -f reaExample:
reactreact-tsreact-shadcn
This makes select the default workflow for many users.
Commands
projx add <name> <commands...>
Register a new template with one or more commands.
# Basic usage
projx add <name> "command1" "command2" "command3"
# With description
projx add <name> -d "My template description" "command1" "command2"
# Interactive mode
projx addVariables use {{variable}} syntax and are resolved at run time.
projx run <name> [values...]
Run a registered template.
# Pass variable values as arguments
projx run react my-app
# Force interactive mode
projx run react -iprojx <name> [values...]
Shortcut for projx run.
projx react my-appprojx list
List all registered templates.
# Table format (default)
projx list
projx list -c # show commands
projx list --no-tableprojx select
Interactively select and run a template.
projx select
projx select -f react # filter by nameprojx remove <name>
Remove a template.
projx remove react
projx remove -s # interactive selection
projx remove -y # skip confirmationprojx export <path>
Export your template registry to a JSON file (backup).
# Export to a file
projx export backup.json
# Export to a directory (creates project-registry.json)
projx export ./backups/projx import <path>|<url>
Import templates from a JSON file or URL.
# Import from local file (merges with existing)
projx import backup.json
# Import from URL
projx import https://example.com/shared-templates.json
# Import from file and replace ALL existing templates
projx import backup.json --replaceprojx self-update [package-manager]
Update the CLI to the latest version.
# Update using pnpm (default)
projx self-update
# Update using npm
projx self-update npm
# Update using yarn
projx self-update yarnExamples
Project templates
# React + Vite
projx add react \
"pnpm create vite {{name}} --template react-ts" \
"cd {{name}}" \
"pnpm install" \
"code ."
# Next.js
projx add next "pnpm create next-app {{name}}" "cd {{name}}" "code ."
# Express API
projx add express "mkdir {{name}}" "cd {{name}}" "pnpm init -y" "pnpm add express" "code ."Dev shortcuts
# Git quick commit
projx add gc "git add ." "git commit -m '{{message}}'" "git push"
# Docker compose
projx add dcu "docker compose up -d"
projx add dcd "docker compose down"
# SSH to server
projx add ssh-prod "ssh {{user}}@production-server.com"Not just for projects
projx works for any repeatable command sequence:
- Git workflows
- Docker commands
- SSH shortcuts
- Build & deploy scripts
- System utilities
It’s a command template registry, not just a project generator.
Config location
Templates are stored at:
~/.project-registry/config.json🤝 Contributions
Contributions are welcome! Please follow the standard fork-and-pull-request workflow.
Issues
If you encounter any issue, please open an issue here.
License
Distributed under the MIT License. See LICENSE file for more details.
© 2026 Hichem Taboukouyout
If you found this package helpful, consider leaving a star! ⭐️
