Skip to content

stacksjs/launchpad

Repository files navigation

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 using pkgx
  • πŸ”„ Executable Shims β€” Create executable shims for packages automatically
  • πŸ› οΈ pkgx Management β€” Install and manage the pkgx utility itself
  • πŸ’» Dev Environment β€” Dedicated command for the dev package for development environments
  • πŸš€ Bun Installation β€” Install Bun directly from GitHub releases with platform detection
  • πŸ”§ Auto-updates β€” Configure automatic updates for pkgx
  • πŸ”Œ PATH Integration β€” Automatically add installation directories to your PATH
  • πŸͺŸ 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

Create shims

# Create shims for executables
launchpad shim node typescript

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

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.0.0

Configure auto-updates

# Check current auto-update status
launchpad autoupdate

# Enable auto-updates
launchpad autoupdate:enable

# Disable auto-updates
launchpad autoupdate:disable

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 typescript bun

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

Two things are true: Stacks OSS will always stay open-source, and we do love to receive postcards from wherever Stacks is used! 🌍 We also publish them on our website. And thank you, Spatie

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 πŸ’™

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy