IPM CLI: Language-Agnostic Infrastructure Package Manager

Stop Managing Scattered Files. Start Distributing Complete Solutions.

The only package manager designed for multi-language infrastructure. Combine Bicep, Terraform, PowerShell, Python, and CI/CD pipelines into single, versioned packages your teams can deploy anywhere.

# Package everything together
ipm publish --package company/azure-landing-zone --version 2.1.0 --folder ./
# Teams get everything they need
ipm add --package company/azure-landing-zone
# See what's being used where
ipm status

What IPM CLI Solves

Your team downloads infrastructure from multiple sources. How do you know what changed? What works together? How do you authenticate?

Workspace Chaos

One source of truth. Single ipmhub.json file tracks all your infrastructure components in one place.

Mystery Modifications

We show exactly what is changed. See which packages have local modifications before you push to production.

Authentication complexity

Simple auth that works everywhere. No wrestling with different registries or complex ACR setups like Bicep registries require.

Vendor Lock-in

Download complete code to your repo. No runtime dependencies on IPMHub. Your code, your control, always.

The Solution: Complete Infrastructure Packages

Everything your teams need in one versioned, deployable package.


# Package everything together
ipm publish -p company/azure-landing-zone -v 2.1.0 -f ./
# Teams get everything they need
ipm add --package company/azure-landing-zone
# See what's being used where and what is changed
ipm status
            
Single package can contain:
  • Infrastructure definitions
  • Deployment scripts
  • CI/CD pipelines
  • Environment configurations
  • Nested dependencies
  • Documentation

Language-Agnostic by Design

Unlike traditional package managers that force you to choose, IPM embraces infrastructure reality

Bicep + PowerShell + YAML Together
azure-landing-zone/
├── main.bicep              # Infrastructure definition
├── deploy.ps1              # Deployment script
├── azdo-pipeline.yml       # CI/CD pipeline
├── parameters/             # Environment configs
└── packages/               # Nested dependencies
Terraform + Python + GitHub Actions
kubernetes-cluster/
├── main.tf                 # Infrastructure definition
├── setup.py                # Custom configuration
├── .github/workflows/      # CI/CD pipeline
└── scripts/                # Bootstrap scripts

Key Features

Multiple Package Strategies
  • Single: Lock it down, prevent accidents
  • Multiple: Compare versions safely before updating
Nested Package Support

Build complex solutions with dependency management:

  • • Base infrastructure packages
  • • Feature-specific extensions
  • • Environment-specific configurations
Built for Teams
  • Verified Packages
  • Offline Mode
  • Smart Change Detection
  • Cross-Platform
Workspace Synchronization
# Sync entire workspace
ipm sync

# Update specific packages
ipm sync --package company/networking \
  --mode KeepAllChanges

# Multiple package sync
ipm sync --packages company/network \
  company/security company/compute
Build and Export Tools
# Preview package contents
ipm build --source ./my-package --dry-run

# Export without workspace setup
ipm export --package company/solution \
  --destination ./review-folder

CI/CD Integration

Seamlessly integrate with your existing automation pipelines

Non-Interactive Authentication
# Environment variable approach
export IPM_CLIENT_SECRETS=your_secret
ipm add --package company/infrastructure \
  --non-interactive

# Direct parameter approach
ipm add --package company/infrastructure \
  --non-interactive --client-secrets your_secret
Supported Platforms
Azure DevOps Pipelines
GitHub Actions
Jenkins
GitLab CI
CircleCI
Example Azure DevOps Integration
- bash: |
    curl -Lo ipm-cli.tar.gz \
      "https://github.com/ipmhubio/ipm/releases/latest/download/ipm-linux-x64-full.tar.gz"
    tar -xzf ipm-cli.tar.gz
    mv ./ipm /usr/local/bin/ipm
  displayName: 'Install IPM CLI'

- bash: |
    ipm sync --non-interactive
  displayName: 'Sync Infrastructure'
  env:
    IPM_CLIENT_SECRETS: $(IPM_CLIENT_SECRETS)

Real-World Impact

See how teams are transforming their infrastructure management

MSPs Managing Multiple Clients
Before: 50 clients × 5 repositories = 250 places to check for updates
After: Single package update flows to all opted-in clients
Result: Client onboarding reduced from 3 days to 30 minutes
Enterprise Platform Teams
Before: Development teams assembling infrastructure from scattered repos
After: Platform teams distribute complete, tested solutions
Result: 89% reduction in version-related deployment failures

Installation

Get started with IPM CLI on any platform

Windows (Winget)
winget install IPMHub.IPM
MacOS (Homebrew)
brew tap ipmhubio/ipm
brew install ipm
Linux (One-line installer)
wget -O - https://raw.githubusercontent.com/ipmhubio/ipm/main/ipmInstall.sh | bash
Getting Started
  1. Install IPM CLI using your preferred method above
  2. Authenticate with ipm login
  3. Initialize workspace with ipm init
  4. Add your first package with ipm add --package avm-bicep/storage-accounts

Ready to End Infrastructure Code Chaos?

Join 150+ DevOps teams who've moved from scattered repositories to unified package management.

No credit card required • 30-day free trial • Cancel anytime