Skip to content

2.1 - QoL update

Latest

Choose a tag to compare

@kiwinatra kiwinatra released this 06 Jul 19:19

MIP 2.1.0 — Quality of Life Update

Overview

This release focuses on improving the developer experience with new commands, better performance, and enhanced configuration management.


New Commands

mip registry — Manage Package Registries

Add, remove, list, and set default registries. Supports npm, GitHub Packages, GitLab Registry, and custom registries like Verdaccio or Artifactory.

mip registry add github https://npm.pkg.github.com/ --token ghp_xxx
mip registry set-default github
mip registry list

mip config — Manage Configuration via CLI

View, set, delete, reset, and edit MIP configuration directly from the command line. No need to open mip.yml manually.

mip config set defaultRegistry github
mip config get version
mip config list

mip server — Web Dashboard

A real-time web dashboard with 6 tabs: Overview, Packages, Store, Registries, Scripts, and System. Auto-refreshes every 3 seconds.

mip server start
mip server stop
mip server status

mip publish — Publish Packages

Publish packages to npm, GitHub Packages, GitLab, or custom registries. Supports authentication, build before publish, and dry runs.

mip publish --registry github
mip publish --build --tag beta
mip publish --dry-run

mip alias — Command Aliases

Create shortcuts for frequently used commands. Aliases are stored globally in ~/.mip/aliases.yml and work across all projects.

mip alias set i install
mip alias set up update
mip alias list

mip feel — Project Vibe

An experimental command that analyzes your project and gives it a "vibe" — productive, lazy, chaotic, zen, or inspired. Shows quotes and tips to keep you motivated.

mip feel

mip bundle — Bundle Project

Bundle your project into a single file using esbuild. Supports minification, sourcemaps, and bundle analysis.

mip bundle index.js -o dist/bundle.js --minify

mip clone — Clone Project Configuration

Create a snapshot of your project configuration and share it with others. Includes dependencies, scripts, workspaces, features, registries, and aliases.

mip clone create        # Create snapshot
mip clone view          # View snapshot
mip clone apply my-app  # Create project from snapshot

mip debug — CLI Debugger

A development tool that shows execution trace, loaded modules, timing information, and command output. Helps developers understand what MIP is doing under the hood.

node debug-mip.js

Features System

MIP now has a built-in features system with 57 configurable options. All features have default values and can be enabled or disabled individually.

mip --genconfig          # Generate mip.config.yml with all features
mip --list-features      # Show all available features
mip config set features.install.parallel true
mip config set features.config.enabled false  # Disable ALL features

Key Feature Categories

Category Examples
Install & Update parallel, forceReinstall, saveExact, dryRun
Security & Audit enabled, ignoreDev, ignoreLow, ignoreCritical
Caching enabled, maxSize, ttl, path
Performance parallelDownloads, useHardlinks, useMemoryCache
Logging & Debug level, color, timestamp, showStack
Interactivity promptOnInstall, promptOnDelete, autoConfirm
Registries default, fallbackToNpm, strictSSL
Dependency Resolution resolutionStrategy, dedupeOnInstall, hoist

Security Improvements

Token Storage

Tokens are now stored securely in ~/.mip/registry.yml and are not stored in project config files (mip.yml, mip.json).

# ~/.mip/registry.yml — SAFE PLACE FOR TOKENS
github:
  url: https://npm.pkg.github.com/
  token: ghp_xxx

GitHub Token Validation

mip doctor now validates GitHub tokens and warns if they are missing or invalid.


Performance Optimizations

MIP 2.1.0 is significantly faster. Here's what we improved:

Startup Time

Before After Improvement
~1072ms ~133ms 8x faster

What Was Optimized

Component Before After Savings
api-methods.js 237ms 10ms 227ms
bin/mip.js 495ms 80ms 415ms
registry.js 200ms 30ms 170ms
config.js 15ms 2ms 13ms
loader.js 15ms 1ms 14ms
store.js 60ms 5ms 55ms
peer-resolver.js 50ms 5ms 45ms

Techniques Used

  • Lazy loading — modules load only when needed
  • Caching — data cached with TTL
  • Native HTTP — replaced axios with native https.get
  • i18n optimization — load only the needed language
  • Update check — cached once per day

Internationalization

MIP now supports 10 languages out of the box:

Language Code
English en
Russian ru
Spanish es
German de
French fr
Japanese ja
Korean ko
Chinese zh
Italian it
Portuguese pt

Color tags are now supported in translations for better visual feedback.


Code Refactoring

What Was Refactored

Before After
cli.js (monolithic) Split into modules: colors, helpers, progress, format
bin/mip.js (500+ lines) Split into mip.js + mip-commands.js
install.js (450 lines) Structured into logical functions
api-methods.js Lazy loading with caching
config.js Added caching support
loader.js Added manifest caching
store.js Added path and size caching
registry.js Replaced axios with native HTTP
peer-resolver.js Added caching support

Breaking Changes

None.


Migration Notes

If you have tokens stored in mip.yml, move them to ~/.mip/registry.yml:

# Remove token from mip.yml (edit manually)
# Add token to ~/.mip/registry.yml
mip registry add github https://npm.pkg.github.com/ --token ghp_xxx

Contributors

  • kiwinatra — development and maintenance 🥝
  • YTG — help with developement🦟
  • AI Assistance for ideas🐳

Links


Full Changelog

Added

  • mip registry — manage package registries
  • mip config — manage configuration via CLI
  • mip server — web dashboard
  • mip publish — publish packages
  • mip alias — command aliases
  • mip feel — project vibe analysis
  • mip bundle — bundle project into single file
  • mip clone — clone project configuration
  • mip debug — CLI debugger
  • Features system with 57 configurable options
  • mip --genconfig — generate feature config
  • mip --list-features — list all features
  • 10 language support with color tags
  • Token security with ~/.mip/registry.yml

Changed

  • Full code refactoring for better maintainability
  • Performance optimizations (8x faster startup)
  • Replaced axios with native HTTP client
  • Lazy loading for API methods
  • Caching for config, manifest, store, and peer dependencies
  • i18n optimization — load only needed language
  • Update check cached once per day

Fixed

  • Tokens no longer stored in mip.yml
  • Better GitHub token validation
  • Improved error handling

Removed

  • axios dependency (replaced with native HTTP)

Made with ❤️ by the MIP team

(P.S thats better to just clone the repo and npm i, npm run build and that will work better)