Skip to content

Plasmactl

The CLI tool for Plasma platform management and operations.

What is Plasmactl?

Launchrctl + Core plugins + Plasma plugins + Locally discovered actions = Plasmactl

Plasmactl is the command-line interface for the Plasma platform - an open-source real-time intelligence platform for enterprises, startups, and industries.

Requirements

  • Docker: Required for running container-based actions (prepare, deploy, release, etc.)

Installation

curl -sSL https://raw.githubusercontent.com/plasmash/plasmactl/master/get-plasmactl.sh | sh

Manual Installation

  1. Download the installation script:

    curl -sSL -o get-plasmactl.sh https://raw.githubusercontent.com/plasmash/plasmactl/master/get-plasmactl.sh
    

  2. Make it executable and run:

    chmod +x get-plasmactl.sh
    ./get-plasmactl.sh
    

Verify Installation

plasmactl --version

Update

plasmactl update

Core Plugins

Plasmactl uses a modular plugin system:

Plugin Commands Description
plasmactl-model model:compose, model:prepare, model:bundle, model:release Model composition and preparation
plasmactl-platform platform:up, platform:create, platform:deploy, config:* Platform lifecycle management
plasmactl-node node:provision, node:add, node:list, node:destroy Node provisioning and management
plasmactl-component component:bump, component:sync, component:depend Version and dependency management

Command Namespaces

model:* - Model Composition

plasmactl model:compose              # Compose packages from compose.yaml
plasmactl model:prepare              # Prepare for Ansible deployment
plasmactl model:bundle               # Create .pm artifact
plasmactl model:release              # Create git tag with changelog

platform:* - Platform Management

plasmactl platform:create ski-dev \  # Create platform scaffold
  --metal-provider scaleway \
  --dns-provider ovh \
  --domain dev.example.com

plasmactl platform:up dev target     # Full workflow: bump → compose → prepare → deploy
plasmactl platform:deploy dev target # Deploy to platform
plasmactl platform:list              # List platforms
plasmactl platform:show ski-dev      # Show platform details
plasmactl platform:destroy ski-dev   # Destroy platform

node:* - Node Provisioning

plasmactl node:provision ski-dev \   # Provision infrastructure
  -c foundation.cluster.control:GP1-L:3

plasmactl node:add ski-dev \         # Manual node registration
  --hostname server1 \
  --public-ip 1.2.3.4

plasmactl node:list ski-dev          # List nodes
plasmactl node:destroy ski-dev srv1  # Destroy node

Configuration & secrets

plasmactl component:configure key value --vault  # Component/zone config (optionally vaulted)
plasmactl keyring:set key value                  # Store a credential in the keyring
plasmactl keyring:list                           # List stored credentials
plasmactl auth:login                             # Authenticate to an infrastructure provider

component:* - Component Versioning

plasmactl component:bump             # Bump component versions
plasmactl component:sync             # Propagate versions to dependencies
plasmactl component:depend mrn       # Query/manage dependencies

Typical Workflow

End-to-End Platform Setup

# 1. Create platform
plasmactl platform:create ski-dev \
  --metal-provider scaleway \
  --dns-provider ovh \
  --domain dev.example.com

# 2. Provision infrastructure
plasmactl node:provision ski-dev \
  -c foundation.cluster.control:GP1-L:3

# 3. Deploy
plasmactl platform:up dev platform.foundation

Daily Development

# Make changes, then:
plasmactl component:bump
plasmactl platform:up dev platform.interaction.observability

Getting Started

After installation, explore available commands:

plasmactl --help
plasmactl model:compose --help
plasmactl platform:up --help
plasmactl node:provision --help

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.