@moontra/moonui-cli
Version:
CLI tool for MoonUI component library
318 lines (235 loc) • 8.03 kB
Markdown
# MoonUI CLI v2.0.0
[](https://www.npmjs.com/package/@moontra/moonui-cli)
[](https://opensource.org/licenses/MIT)
Official CLI tool for MoonUI component library. Easily add components to your React project with automatic dependency management, Pro license handling, and advanced project setup.
## Installation
You can install MoonUI CLI globally:
```bash
npm install -g @moontra/moonui-cli
```
Or use it directly with npx:
```bash
npx @moontra/moonui-cli@latest <command>
```
## Usage
```bash
moonui <command> [options]
```
### Available Commands
#### Initialize MoonUI
Set up MoonUI in your project. This will:
- Install @moontra/moonui@latest automatically
- Create configuration file (moonui.config.js)
- Set up component directories
- Create utility functions
- Install required dependencies (Tailwind CSS, etc.)
- Set up TypeScript configurations
```bash
moonui init [options]
```
Options:
- `-f, --force`: Overwrite existing configuration
- `-t, --typescript`: Use TypeScript (default)
- `-j, --javascript`: Use JavaScript
- `--pro`: Set up Pro license during initialization
#### Authentication Management
Manage authentication for Pro features with support for team tokens, CI tokens, and personal authentication.
```bash
moonui auth [action] [token]
```
Actions:
- `status`: Show current authentication status
- `set-team`: Set team token for shared use
- `set-ci`: Set CI token for automated builds
- `clear`: Clear stored authentication
Examples:
```bash
# Check authentication status
moonui auth
# Set team token (interactive)
moonui auth set-team
# Set team token directly
moonui auth set-team team_xxxxxxxxxxxxx
# Set CI token for automated builds
moonui auth set-ci ci_xxxxxxxxxxxxx
# Clear authentication
moonui auth clear
```
**Team Authentication:**
```bash
# For teams using MoonUI Pro
moonui auth set-team team_your_token_here
# This creates:
# - .moonui-env file with the token
# - .env.local for Next.js projects
# Team members can source .moonui-env or add to their shell profile
```
**CI/CD Authentication:**
```bash
# Set CI token
moonui auth set-ci ci_your_token_here
# Then add to your CI environment:
# GitHub Actions: Add as secret MOONUI_CI_TOKEN
# Vercel/Netlify: Add as environment variable
```
#### Add Components
Add MoonUI components to your project.
```bash
moonui add [components...] [options]
```
Options:
- `-a, --all`: Add all components
- `-p, --path <path>`: Custom output path for components
- `-f, --force`: Overwrite existing components
Examples:
```bash
# Add free components (from @moontra/moonui)
moonui add button card avatar
# Add pro components (requires @moontra/moonui-pro@latest)
moonui add data-table
# Will prompt: npm install @moontra/moonui-pro@latest
# Add all components
moonui add --all
# Interactive mode
moonui add
```
**How it works**:
- By default, CLI fetches the latest component code from our registry
- Components are added to your project directory for full customization
- Pro components create wrapper patterns for the NPM package
**Import pattern for all components**:
```tsx
// Free components (from your project)
import { Button } from "@/components/ui/button"
import { Card } from "@/components/ui/card"
// Pro components (from your project)
import { DataTable } from "@/components/pro/data-table"
```
**Registry Options**:
```bash
# Default: Use registry (recommended)
moonui add button
# Use local templates (free components only)
moonui add button --no-registry
```
#### List Components
List available MoonUI components:
```bash
moonui list [options]
```
Options:
- `-c, --category <category>`: Filter components by category
- `-d, --detail`: Show detailed information about components
#### Manage Themes
Manage MoonUI themes:
```bash
moonui theme [options]
```
Options:
- `-c, --create <name>`: Create a new theme
- `-e, --export <path>`: Export current theme to a file
- `-i, --import <path>`: Import theme from a file
- `-l, --list`: List available themes
#### License Management (New in v2.0.0)
Manage your MoonUI Pro license:
```bash
moonui license [options]
```
Options:
- `-s, --set <key>`: Set your Pro license key
- `-v, --verify`: Verify current license
- `-r, --remove`: Remove license key
- `-i, --info`: Show license information
#### Install Packages (New in v2.0.0)
Install MoonUI packages with proper dependency management:
```bash
moonui install [packages...] [options]
```
Options:
- `--pro`: Install Pro package with license verification
- `--latest`: Install latest versions
- `--dev`: Install as dev dependencies
Examples:
```bash
# Install base package
moonui install
# Install Pro package (requires license)
moonui install --pro
# Install specific versions
moonui install @moontra/moonui@2.0.0
```
## NPM Packages (v2.0.0)
MoonUI provides two NPM packages:
### @moontra/moonui (Free) - v2.0.0
- **50+ production-ready components** including interactive and performance components
- **New Components**: Magnetic Button, Spotlight Card, Gesture Drawer, Hover Card 3D, Swipeable Card
- **Performance Components**: Virtual List, Memory Efficient Data, Lazy Loading
- **Full source code access** via CLI
- **MIT License**
- **Zero runtime license checks**
### @moontra/moonui-pro (Pro) - v2.0.0
- **Advanced enterprise components**: DataTable, Charts, Calendar Pro, Rich Text Editor Pro
- **New in v2.0.0**: Event Dialog System, Slash Commands, Advanced Chart Types
- **Performance optimizations**: Virtual scrolling, memory efficiency
- **All dependencies included** (no extra packages needed)
- **Requires active license** (build-time verification only)
- **Commercial License**
- **Priority support and updates**
### @moontra/moonui-cli (CLI) - v2.0.0
- **Enhanced project setup** with automatic dependency management
- **Pro license management** with verification
- **Advanced component installation** with registry support
- **Theme management** system
- **Package installation** helpers
## Configuration
MoonUI uses a `moonui.config.js` file:
```javascript
module.exports = {
paths: {
components: './src/components/ui',
utils: './src/lib',
},
// ... more options
}
```
## Environment Variables
The MoonUI CLI supports environment variables for local development:
```bash
# For local development (when developing MoonUI itself)
export MOONUI_API_BASE="http://localhost:3000"
export MOONUI_AUTH_URL="http://localhost:3000/cli-auth"
export MOONUI_REGISTRY_URL="http://localhost:3000/api/registry"
# For production (default values - no need to set)
# MOONUI_API_BASE="https://moonui.dev"
# MOONUI_AUTH_URL="https://moonui.dev/cli-auth"
# MOONUI_REGISTRY_URL="https://moonui.dev/api/registry"
```
**Where to set these variables:**
1. **Temporary (current terminal session only):**
```bash
export MOONUI_API_BASE="http://localhost:3000"
moonui login
```
2. **Permanent (for all terminal sessions):**
**macOS/Linux:** Add to `~/.bashrc`, `~/.zshrc`, or `~/.profile`:
```bash
echo 'export MOONUI_API_BASE="http://localhost:3000"' >> ~/.zshrc
source ~/.zshrc
```
**Windows:** Set via System Properties > Environment Variables or PowerShell:
```powershell
[System.Environment]::SetEnvironmentVariable('MOONUI_API_BASE', 'http://localhost:3000', 'User')
```
3. **Project-specific:** Create a `.env` file in your project root (requires dotenv):
```env
MOONUI_API_BASE=http://localhost:3000
MOONUI_AUTH_URL=http://localhost:3000/cli-auth
MOONUI_REGISTRY_URL=http://localhost:3000/api/registry
```
**Note:** These environment variables are only needed when developing MoonUI itself. Regular users should not set these variables.
## Support
- Documentation: [moonui.dev/docs](https://moonui.dev/docs)
- GitHub Issues: [Report bugs](https://github.com/moontra/moonui-cli/issues)
- Discord: [Join our community](https://discord.gg/moonui)
## License
MIT