A lightweight package manager built on top of pkgx to simplify package installation and management. Similar to Homebrew, but faster.
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
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
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.
# Install packages
launchpad install node python
# Use the shorthand
launchpad i node
# Create shims for executables
launchpad shim node typescript
# Specify custom path
launchpad shim --path ~/bin node
# Install pkgx itself
launchpad pkgx
# Force reinstall
launchpad pkgx --force
# Install the dev package
launchpad dev
# With customization
launchpad dev --path ~/bin
# Install Bun directly
launchpad bun
# Install specific version
launchpad bun --version 1.0.0
# Check current auto-update status
launchpad autoupdate
# Enable auto-updates
launchpad autoupdate:enable
# Disable auto-updates
launchpad autoupdate:disable
# List all installed packages
launchpad list
# or
launchpad ls
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.
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.
Explore advanced topics in our documentation:
- Speed: Significantly faster installations
- Isolation: Changes to one package don't affect others
- Less disk space: Only install what you need
- 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
Please see our releases page for information on changes.
Please see CONTRIBUTING for details.
For help or discussion:
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 π
- Max Howell - for creating pkgx and Homebrew
- pkgm - for the initial inspiration
- Chris Breuer
- All Contributors
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.
The MIT License (MIT). Please see LICENSE for more information.
Made with π