Knowledge Hub
Comprehensive guides and references for the OpenFrame platform
OpenFrame Gen1 is Here · Our AI platform for autonomous IT is out of beta.
Comprehensive guides and references for the OpenFrame platform
Welcome to the OpenFrame CLI development documentation. This section covers everything you need to contribute to, extend, and understand the internals of the openframe CLI.
OpenFrame CLI is written in Go and uses Cobra for command-line parsing. It orchestrates K3D clusters, ArgoCD GitOps deployments, and Helm chart management through a layered service/provider architecture.
| Document | Description |
|---|---|
| Environment Setup | IDE configuration, Go toolchain, editor extensions |
| Local Development | Clone, build, run, and debug the CLI locally |
| Architecture Overview | High-level design, component breakdown, data flows |
| Security Guidelines | Auth patterns, secret handling, vulnerability mitigations |
| Testing Guide | Unit tests, integration tests, test utilities |
| Contributing Guidelines | Code style, PR process, commit messages |
Build and run the CLI locally → See Local Development
Understand how the codebase is structured → See Architecture Overview
Add a new command or feature → Start with Architecture Overview, then Contributing Guidelines
Write or run tests → See Testing Guide
Handle secrets or security concerns → See Security Guidelines
Set up my development environment → See Environment Setup
openframe-cli/
├── cmd/ # Cobra command definitions (entry points)
│ ├── root.go # Root command, wires all subcommands
│ ├── bootstrap/ # openframe bootstrap
│ ├── cluster/ # openframe cluster (create/delete/list/status/cleanup)
│ ├── app/ # openframe app (install/upgrade/status/access/uninstall)
│ ├── prerequisites/ # openframe prerequisites (check/install)
│ └── update/ # openframe update (self-update/rollback)
├── internal/ # All internal business logic
│ ├── bootstrap/ # Bootstrap service (cluster + chart orchestration)
│ ├── cluster/ # Cluster service + K3D provider
│ ├── chart/ # Chart services, ArgoCD/Helm/Git providers
│ ├── app/ # App status and uninstall services
│ ├── k8s/ # Kubernetes client utilities
│ ├── platform/ # OS detection and platform hints
│ ├── prerequisites/ # Prerequisite framework
│ └── shared/ # Cross-cutting: executor, UI, errors, config, selfupdate
├── tests/
│ ├── integration/ # Integration tests (requires running cluster)
│ └── testutil/ # Shared test utilities and patterns
├── scripts/
│ └── sign-binary.sh # Binary signing helper
└── main.go # Entry point
| Technology | Role |
|---|---|
| Go | Primary language |
| Cobra | CLI framework (command/flag parsing) |
| K3D | Local Kubernetes cluster provider |
| ArgoCD | GitOps deployment engine (via client-go dynamic client) |
| Helm | Kubernetes package manager (CLI wrapper) |
| go-git | Git operations (no git binary dependency) |
| client-go | Kubernetes API client |
| pterm | Terminal UI rendering (spinners, prompts, colors) |
| Sigstore/cosign | Binary signature verification for self-updates |
The OpenFrame platform chart lives in a separate repository: