The project's README from github.com/flamingo-stack/openframe-cli. As one markdown file: README.md.
OpenFrame CLI is a modern, interactive command-line tool for managing OpenFrame Kubernetes clusters and development workflows. It provides seamless cluster lifecycle management, chart installation with ArgoCD, and developer-friendly tools for service intercepts and scaffolding.
OpenFrame CLI is part of the broader OpenFrame ecosystem - an AI-powered MSP platform that replaces expensive proprietary software with open-source alternatives enhanced by intelligent automation. The CLI serves as the entry point for developers and operators to bootstrap, manage, and develop on OpenFrame environments.
openframe bootstrapopenframe-oss-tenant chart — no credentials or mode selection neededcluster delete removes a cluster and its resources; cluster cleanup reclaims disk by pruning unused node imagesgraph TB
subgraph "CLI Commands"
Bootstrap[openframe bootstrap]
Cluster[openframe cluster]
App[openframe app]
Dev[openframe dev]
end
subgraph "Core Services"
ClusterSvc[Cluster Management]
ChartSvc[Chart Installation]
DevSvc[Development Tools]
end
subgraph "External Tools"
K3D[K3D Clusters]
Helm[Helm Charts]
ArgoCD[ArgoCD Apps]
Telepresence[Service Intercepts]
end
subgraph "Target Environment"
K8s[Kubernetes]
Apps[Applications]
Services[Microservices]
end
Bootstrap --> ClusterSvc
Bootstrap --> ChartSvc
Cluster --> ClusterSvc
App --> ChartSvc
Dev --> DevSvc
ClusterSvc --> K3D
ChartSvc --> Helm
ChartSvc --> ArgoCD
DevSvc --> Telepresence
K3D --> K8s
Helm --> Apps
ArgoCD --> Apps
Telepresence --> Services
Get OpenFrame CLI up and running in 5 minutes!
| Resource | Minimum | Recommended |
|---|---|---|
| RAM | 24GB | 32GB |
| CPU Cores | 6 cores | 12 cores |
| Disk Space | 50GB free | 100GB free |
Before installation, ensure you have:
Choose your platform and install OpenFrame CLI:
curl -fsSL https://github.com/flamingo-stack/openframe-cli/releases/latest/download/openframe-cli_linux_amd64.tar.gz | tar -xz
sudo mv openframe /usr/local/bin/
chmod +x /usr/local/bin/openframe
curl -fsSL https://github.com/flamingo-stack/openframe-cli/releases/latest/download/openframe-cli_darwin_arm64.tar.gz | tar -xz
sudo mv openframe /usr/local/bin/
chmod +x /usr/local/bin/openframe
openframe.exe to a directory in your PATHCreate a complete OpenFrame environment with a single command:
# Verify installation
openframe --version
# Bootstrap complete environment
openframe bootstrap
# Check cluster status
openframe cluster status
The bootstrap process creates:
| Command | Description | Example |
|---|---|---|
openframe bootstrap |
Create a cluster and deploy OpenFrame | openframe bootstrap my-cluster |
openframe cluster create |
Create a k3d or cloud (EKS/GKE) cluster | openframe cluster create dev --nodes 1 |
openframe cluster list |
List clusters | openframe cluster list -o json |
openframe cluster status |
Show cluster status | openframe cluster status dev |
openframe cluster delete |
Delete a cluster | openframe cluster delete dev --force |
openframe app install |
Install ArgoCD + app-of-apps | openframe app install -c k3d-dev |
openframe app upgrade |
Re-sync or move to a new ref | openframe app upgrade -c k3d-dev --sync |
openframe app status |
Report platform readiness | openframe app status -c k3d-dev |
openframe app access |
Show ArgoCD sign-in details | openframe app access -c k3d-dev |
openframe app uninstall |
Remove the app (keep the cluster) | openframe app uninstall -c k3d-dev --yes |
openframe prerequisites |
Check/install required tools | openframe prerequisites install |
openframe update |
Self-update the CLI | openframe update check |
Cluster lifecycle:
openframe cluster create dev --type k3d --nodes 1 --skip-wizard
openframe cluster create my-gke --type gke --project my-project --region us-central1 --skip-wizard # cloud (billed!)
openframe cluster create my-eks --type eks --region us-east-1 --skip-wizard # cloud (billed!)
openframe cluster list # add -o json|yaml for scripts
openframe cluster status dev
openframe cluster delete dev --force
Deploy and manage the platform (OSS tenant deployment):
openframe app install # interactive: pick context
openframe app install dev --non-interactive # reuse existing openframe-helm-values.yaml
openframe app install -c k3d-dev --ref v1.3.0 # deploy a specific release tag
openframe app status -c k3d-dev # -o json|yaml supported
openframe app status -c k3d-dev --watch # live view, refreshes in place (Ctrl+C to exit)
openframe app status -c k3d-dev --interactive # k9s-style TUI: navigate apps, inspect, trigger syncs
openframe app access -c k3d-dev # ArgoCD URL + admin credentials
openframe app upgrade -c k3d-dev --sync # force ArgoCD to re-sync current ref
openframe app upgrade -c k3d-dev --ref v1.4.0 # move to a new release tag
openframe app uninstall -c k3d-dev --yes
Keep the CLI up to date (each release is checksum- and cosign-verified before it replaces the running binary; the previous version is kept for rollback):
openframe update # update to the latest release
openframe update check # report availability only (-o json|yaml)
openframe update v1.4.0 # switch to a specific release (up or down)
openframe update rollback # revert to the previous version, offline
On an interactive terminal the CLI renders live surfaces: a stage checklist
with per-stage timings during bootstrap, an in-place dashboard during the
application wait (progress bar, per-app health, slowest-apps timing), download
progress bars, and a desktop notification when a long install finishes. Long
operations under --verbose, --plain, or redirected output switch to
timestamped sequential log lines that carry the same information (ready
deltas, pending apps with their health).
Output controls:
--plain — sequential output with colors but no spinners or in-place
redraws (for watch, script, tmux logging)--silent — suppress everything except errors--verbose — timestamped debug lines (helm/k3d command lines, wait internals)NO_COLOR / CLICOLOR_FORCE=1 — strip / force ANSI stylingOPENFRAME_ASCII=1 — plain ASCII glyphs (also automatic under TERM=dumb
or a non-UTF-8 locale)In GitHub Actions, bootstrap stages fold into log groups, failures surface as job annotations, and the closing summary lands in the job's Step Summary.
Non-interactive flags (--non-interactive, --yes, --force, --skip-wizard)
make every command scriptable; prompts are also skipped automatically in CI or
when stdin is not a terminal. See Terminal output reference
for the full behavior matrix.
OpenFrame CLI integrates with industry-standard tools:
📚 See the Documentation for comprehensive guides including:
OpenFrame is built by the community for the community:
Note: We don't use GitHub Issues or Discussions. All support and community interaction happens in the OpenMSP Slack community.
This project is licensed under the Flamingo AI Unified License v1.0 - see the LICENSE.md file for details.