* fix CLI asset sync * fix(cli): normalize line endings in asset sync/check check:assets hashed raw bytes, so identical CSV/JSON/py content with CRLF vs LF (git autocrlf on checkout) was reported as stale drift, blocking the release guard on Windows/mixed checkouts. - fileHash now normalizes CRLF->LF before hashing, so check:assets compares content, not line endings. - sync:assets writes LF-normalized copies instead of a raw byte copy, so re-syncing is deterministic across platforms. All synced assets are text (csv/json/md/py); no binaries affected. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * ci: enforce CLI asset sync on PRs Adds a Check asset sync workflow that runs `npm run check:assets` on any PR touching src/ui-ux-pro-max/** or cli/assets/**, so the bundled CLI assets can't silently drift from the source of truth. The check uses only node builtins (no install step) and normalizes line endings before hashing, so it hard-fails on real content drift without the CRLF/LF soft-fail hack other approaches needed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
uipro-cli
CLI to install UI/UX Pro Max skill for AI coding assistants.
Installation
npm install -g uipro-cli
Usage
# Install for specific AI assistant
uipro init --ai claude # Claude Code
uipro init --ai cursor # Cursor
uipro init --ai windsurf # Windsurf
uipro init --ai antigravity # Antigravity
uipro init --ai copilot # GitHub Copilot
uipro init --ai kiro # Kiro
uipro init --ai codex # Codex (Skills)
uipro init --ai roocode # Roo Code
uipro init --ai qoder # Qoder
uipro init --ai gemini # Gemini CLI
uipro init --ai trae # Trae
uipro init --ai opencode # OpenCode
uipro init --ai continue # Continue (Skills)
uipro init --ai all # All assistants
# Options
uipro init --offline # Compatibility flag; installs bundled templates
uipro init --force # Overwrite existing files
# Other commands
uipro versions # List available versions
uipro update # Refresh skill files from installed CLI package
GitHub Authentication
GitHub's unauthenticated API allows 60 requests/hour per IP. If you hit rate limits, you can provide a GitHub Personal Access Token (PAT) to raise the limit to 5,000 requests/hour.
Options (in order of precedence):
# 1. Pass directly as a flag (one-off use)
uipro init --token ghp_yourtoken
uipro versions --token ghp_yourtoken
uipro update --token ghp_yourtoken
# 2. Set as a project-scoped environment variable (recommended)
export UI_PRO_MAX_GITHUB_TOKEN=ghp_yourtoken
uipro init
# 3. Fallback: GITHUB_TOKEN is also read if UI_PRO_MAX_GITHUB_TOKEN is not set
export GITHUB_TOKEN=ghp_yourtoken
uipro init
Creating a token: Go to https://github.com/settings/tokens, click Generate new token (classic), and select no scopes — public repo access requires no permissions. Copy the token and store it as an environment secret; never hardcode it in source files.
Warning:
GITHUB_TOKENis automatically injected by GitHub Actions with broad repo permissions. PreferUI_PRO_MAX_GITHUB_TOKENin CI to avoid accidentally attaching workflow credentials to release download requests.
How It Works
uipro init generates assistant-specific files from the templates bundled with the installed CLI package. To get newer templates and data, update the package first:
npm install -g uipro-cli@latest
uipro init --ai codex
Development
# Install dependencies
bun install
# Run locally
bun run src/index.ts --help
# Build
bun run build
# Sync bundled CLI assets from the source skill
npm run sync:assets
# Verify bundled assets are current before publishing
npm run check:assets
# Link for local testing
bun link
License
CC-BY-NC-4.0