mammoth-cli 0.1.0

A frontend project scaffolding CLI tool
Documentation

🦣 Mammoth CLI ❄️

A powerful frontend project scaffolding CLI tool that helps you quickly create new projects from templates.

Features

  • 🚀 Template Management: Add, remove, and manage templates from Git repositories
  • 📦 Repository Support: Support multiple remote repositories with sparse checkout
  • 🎨 Interactive Creation: Interactive project creation with customizable options
  • 🔧 Auto Configuration: Automatically update package.json and initialize Git repository
  • 💾 Smart Caching: Efficient template caching to avoid repeated downloads
  • 📤 Configuration Export/Import: Export and import configuration for backup and sharing
  • 🧩 Modular Design: Clean code structure, easy to maintain and extend
  • 🛡️ Robust Cache & Cleanup: Multiple retries and process timeouts, cross-platform compatibility
  • Minimal Dependencies: No redundant dependencies, fast startup, small binary size

Installation

cargo install --path .

Usage

Command structure:

mammoth-cli
├── new                    # Create project (top-level command)
├── clean                  # Clean config and cache (top-level command)
├── info                   # Show config info (top-level command)
├── template               # Template management (subcommand)
│   ├── list              # List templates
│   ├── add               # Add template
│   ├── remove            # Remove template
│   ├── download          # Download template
│   └── download-all      # Download all templates
├── repo                   # Repository management (subcommand)
│   ├── list              # List repositories
│   ├── add               # Add repository
│   └── remove            # Remove repository
└── config                 # Config management (subcommand)
    ├── export            # Export config
    ├── import            # Import config
    └── validate          # Validate config

Basic Commands

# Create a new project (interactive)

mammoth-cli


# Create a new project with specific template

mammoth-cli new --template nuxt-shadcn --name my-project


# Show configuration information

mammoth-cli info


# Show configuration as JSON

mammoth-cli info --json


# Clean cache and configuration

mammoth-cli clean


# Clean everything including config file

mammoth-cli clean --all


# Clean without confirmation

mammoth-cli clean --force

Template Management

# List all templates

mammoth-cli template list


# List all templates with detailed information

mammoth-cli template list --verbose


# Add a template

mammoth-cli template add nuxt-shadcn \

  --name "Nuxt Shadcn Starter" \

  --repo aio-templates \

  --path "vue/nuxt-shadcn" \

  --description "Nuxt Shadcn with Tailwind" \

  --language vue \

  --tags "nuxt,shadcn,tailwind"


# Download a specific template

mammoth-cli template download nuxt-shadcn


# Download all templates

mammoth-cli template download-all


# Remove a template

mammoth-cli template remove nuxt-shadcn

Repository Management

# Add a repository

mammoth-cli repo add aio-templates --url https://github.com/Mulander-J/aio-templates --branch main


# List repositories

mammoth-cli repo list


# Remove a repository

mammoth-cli repo remove aio-templates

Configuration Management

# Export configuration to file

mammoth-cli config export --output config-backup.json


# Export configuration with cache information

mammoth-cli config export --output config-backup.json --include-cache


# Import configuration (merge mode - default)

mammoth-cli config import --file config-backup.json


# Import configuration (overwrite mode)

mammoth-cli config import --file config-backup.json --mode overwrite


# Import configuration without validation

mammoth-cli config import --file config-backup.json --skip-validation


# Validate configuration file

mammoth-cli config validate config-backup.json

Configuration

The CLI stores configuration in:

  • Config: ~/.config/mammoth-cli/templates.json (Linux/macOS) or %APPDATA%\mammoth-cli\templates.json (Windows)
  • Cache: ~/.cache/mammoth-cli/templates/ (Linux/macOS) or %LOCALAPPDATA%\mammoth-cli\templates\ (Windows)

Configuration Format

See example.config.json

The configuration file uses JSON format:

{
  "repos": [
    {
      "name": "aio-templates",
      "url": "https://github.com/Mulander-J/aio-templates",
      "branch": "main"
    }
  ],
  "templates": [
    {
      "id": "nuxt-shadcn",
      "name": "Nuxt Shadcn Starter",
      "repo": "aio-templates",
      "path": "vue/nuxt-shadcn",
      "description": "Nuxt Shadcn with Tailwind",
      "language": "vue",
      "tags": [
        "nuxt",
        "shadcn",
        "tailwind"
      ]
    }
  ]
}

🔗Develop Doc

❓FAQ

Q: On Windows, sometimes cache/temp directories cannot be deleted?

A: This may be caused by other processes (such as Explorer or antivirus software) occupying related files. Please close those programs and try again, or reboot and run the clean command.

License

MIT License

Contribution

Welcome to submit Issue and Pull Request!

Update Log

v0.1.0

  • Initial version
  • Remote template support
  • Template cache mechanism
  • Complete template management functionality
  • Interactive project creation wizard
  • Configuration import/export functionality