JSPM

  • Created
  • Published
  • Downloads 2021
  • Score
    100M100P100Q116444F
  • License MIT

Like Homebrew, but faster.

Package Exports

  • @stacksjs/launchpad
  • @stacksjs/launchpad/bin/cli.js
  • @stacksjs/launchpad/bun.d.ts
  • @stacksjs/launchpad/chunk-0sthbje6.js
  • @stacksjs/launchpad/chunk-7h9a332h.js
  • @stacksjs/launchpad/chunk-e2w1vagk.js
  • @stacksjs/launchpad/chunk-kwdnr1ce.js
  • @stacksjs/launchpad/chunk-nn4zj7f2.js
  • @stacksjs/launchpad/chunk-pe77cn21.js
  • @stacksjs/launchpad/chunk-s2bxmfad.js
  • @stacksjs/launchpad/config.d.ts
  • @stacksjs/launchpad/dev/dump.d.ts
  • @stacksjs/launchpad/dev/index.d.ts
  • @stacksjs/launchpad/dev/integrate.d.ts
  • @stacksjs/launchpad/dev/shell-escape.d.ts
  • @stacksjs/launchpad/dev/shellcode.d.ts
  • @stacksjs/launchpad/dev/sniff.d.ts
  • @stacksjs/launchpad/doctor.d.ts
  • @stacksjs/launchpad/index.d.ts
  • @stacksjs/launchpad/info.d.ts
  • @stacksjs/launchpad/install.d.ts
  • @stacksjs/launchpad/list.d.ts
  • @stacksjs/launchpad/package.d.ts
  • @stacksjs/launchpad/path.d.ts
  • @stacksjs/launchpad/progress.d.ts
  • @stacksjs/launchpad/search.d.ts
  • @stacksjs/launchpad/shim.d.ts
  • @stacksjs/launchpad/smart-install.d.ts
  • @stacksjs/launchpad/src/index.js
  • @stacksjs/launchpad/symlink.d.ts
  • @stacksjs/launchpad/tags.d.ts
  • @stacksjs/launchpad/types.d.ts
  • @stacksjs/launchpad/uninstall.d.ts
  • @stacksjs/launchpad/utils.d.ts
  • @stacksjs/launchpad/version.d.ts

Readme

Social Card of this repo

npm version GitHub Actions Commitizen friendly

launchpad

A lightweight package manager built on top of pkgx to simplify package installation and management. Similar to Homebrew, but faster.

Features

Launchpad offers a streamlined approach to package management with these key features:

  • πŸ“¦ Package Management β€” Install and manage packages efficiently
  • πŸ”„ Package Updates β€” Keep packages up-to-date with intelligent version management
  • πŸ”§ Auto-updates β€” Configure automatic updates
  • πŸ”Œ PATH Integration β€” Automatically ensures installation directories are maintained in your PATH
  • πŸ”„ Executable Shims β€” Create executable shims for packages automatically
  • πŸ’» CLI & Library β€” Programmatically or manually manage your dependencies using the CLI or library
  • πŸͺŸ Cross-platform β€” Full support for macOS, Linux, and Windows systems

Why Launchpad?

Traditional package managers like Homebrew have limitations:

  • Slow installations β€” Installing or updating can take minutes
  • Dependency chains β€” Updating one package triggers unwanted updates
  • Environment conflicts β€” Different projects need different versions
  • PATH management β€” Manual PATH configuration is error-prone
  • Platform inconsistency β€” Different systems need different approaches

Launchpad solves these by providing:

  • Fast installations β€” Leverage pkgx for efficient package management
  • Isolated packages β€” Install only what you need without conflicts
  • Automatic PATH management β€” Tools are available immediately
  • Consistent interface β€” Same commands work everywhere
  • Dev environments β€” Project-specific development environment support

Read more about why we created Launchpad

Installation

Launchpad is available through multiple package managers:

# Install with Bun (recommended)
bun add -g @stacksjs/launchpad

# Or with npm
npm install -g @stacksjs/launchpad

# Or with yarn
yarn global add @stacksjs/launchpad

# Or with pnpm
pnpm add -g @stacksjs/launchpad

See Installation Guide for more options.

Quick Start

Install packages

# Install packages
launchpad install node python

# Use the shorthand
launchpad i node@22

Create shims

# Create shims for executables
launchpad shim node@22 typescript@5.7

# Specify custom path
launchpad shim --path ~/bin node@22

Install pkgx

# Install pkgx itself
launchpad pkgx

# Force reinstall
launchpad pkgx --force

Install dev package

# Install the dev package
launchpad dev

# With customization
launchpad dev --path ~/bin

Install Bun

# Install Bun directly
launchpad bun

# Install specific version
launchpad bun --version 1.2.14

Configure auto-updates

# Check current auto-update status
launchpad autoupdate

# Enable auto-updates
launchpad autoupdate:enable

# Disable auto-updates
launchpad autoupdate:disable

Update packages

# Update all packages
launchpad update

# Update specific packages
launchpad update node python

# Update with latest versions (ignore constraints)
launchpad upgrade bun --latest

# Preview what would be updated
launchpad up --dry-run

List installed packages

# List all installed packages
launchpad list
# or
launchpad ls

Configuration

Launchpad can be configured via a config file (launchpad.config.ts, .launchpadrc, etc.) or through command-line options.

Example configuration:

import type { LaunchpadConfig } from '@stacksjs/launchpad'

const config: LaunchpadConfig = {
  // Enable verbose logging
  verbose: true,

  // Installation path for binaries
  installationPath: '/usr/local',

  // Auto-elevate with sudo when needed
  autoSudo: true,

  // Retry settings
  maxRetries: 3,
  timeout: 60000,

  // Version handling
  symlinkVersions: true,
  forceReinstall: false,

  // PATH management
  shimPath: '~/.local/bin',
  autoAddToPath: true,
}

export default config

See Configuration Guide for all options.

GitHub Action

Launchpad provides a GitHub Action for CI/CD workflows:

- name: Install Dependencies
  uses: stacksjs/launchpad-installer@v1
  with:
    packages: node@22 typescript@5.7 bun@1.2.14

See GitHub Action Documentation for details.

Advanced Usage

Explore advanced topics in our documentation:

Comparing to Alternatives

vs Homebrew

  • Speed: Significantly faster installations
  • Isolation: Changes to one package don't affect others
  • Less disk space: Only install what you need

vs Manual Installation

  • Simplicity: Single command to install complex tools
  • PATH management: No need to manually edit shell config files
  • Version control: Easily install specific versions
  • Consistency: Same experience across all platforms

Changelog

Please see our releases page for information on changes.

Contributing

Please see CONTRIBUTING for details.

Community

For help or discussion:

Postcardware

β€œSoftware that is free, but hopes for a postcard.” We love receiving postcards from around the world showing where Stacks is being used! We showcase them on our website too.

Our address: Stacks.js, 12665 Village Ln #2306, Playa Vista, CA 90094, United States 🌎

Credits

Sponsors

We would like to extend our thanks to the following sponsors for funding Stacks development. If you are interested in becoming a sponsor, please reach out to us.

License

The MIT License (MIT). Please see LICENSE for more information.

Made with πŸ’™