Skip to content

platform-ctl Plan

The platform CLI — the Abukix unified command-line front-door. Wraps basecamp + terralabs + portal + agents into one developer-friendly Go CLI. Self-service interface to the platform. Goes public at the Abukix Studio launch in Year 5 Phase 29.

platform-ctl is the Group A platform project that turns basecamp + terralabs from “a stack of tools an operator can drive” into “a product a developer can use.” It’s the golden path — one CLI that covers ~90% of platform operations so a user doesn’t have to alternate between kubectl, argocd, terraform, helm, the ArgoCD UI, mlship, and various MCP clients to ship something.

The CLI starts in Year 2 Phase 12 as a private daily-driver — five service-ops commands wrapping Backstage Scaffolder, ArgoCD, and ESO. Each subsequent year extends it as new platform layers come online: Year 3 adds cluster bootstrap (wrapping terralabs) and pipeline runs; Year 4 adds model deploy (wrapping mlship); Year 5 adds agent invocation, portal surfacing, and composition recipe runners. The whole thing goes public at the Abukix Studio launch in Year 5 Phase 29, polished with GoReleaser binaries and example workflows.

This is the project that proves you can build a platform product, not just operate one — the platform-as-product pattern in CLI form.


What it is

A Go (cobra) CLI:

Terminal window
platform-ctl service create my-app --template golang-service
# → scaffolds Go service repo from Backstage Template; creates basecamp Application; commits PR
platform-ctl service deploy my-app --env staging
# → triggers ArgoCD sync for my-app in staging cluster
platform-ctl service status my-app
# → pods, recent deploys, error rate, on-call, SLO burn
platform-ctl service logs my-app --tail
# → tails Loki logs for the service
platform-ctl secret rotate my-app --secret db-password
# → triggers ESO rotation; verifies new value picked up
platform-ctl cluster bootstrap k3s --on proxmox
# → wraps terralabs + ArgoCD app-of-apps install
platform-ctl model deploy ./model.pkl --as my-model
# → wraps mlship for in-basecamp deploy
platform-ctl pipeline run train-deploy
# → triggers Kubeflow Pipeline
platform-ctl agent invoke aiops --alert "high-cpu"
# → triggers AIOps agent
platform-ctl recipe run personal-rag
# → runs a Studio composition recipe

Why it exists

basecamp + terralabs + Portal + agents are great but require knowing many tools (kubectl, argocd-cli, terraform, helm, ArgoCD UI, mlship, custom curl, MCP clients, etc.). platform-ctl is the golden path — the opinionated CLI a developer learns once and uses for 90% of platform operations.

This is the project that proves you can build a platform product, not just operate one.


Pattern it teaches

platform-as-product: the discipline of treating internal tools as products with users + UX expectations + time-to-first-deploy.

Plus reinforced:


Scope (by year)

Y2 P12: start

[ ] github.com/abukix/platform-ctl (PRIVATE at start)
[ ] Go binary, cobra-based
[ ] Subcommands: service (create, deploy, status, logs), secret (rotate, list)
[ ] Wraps Backstage Scaffolder + ArgoCD + ESO
[ ] Tests, CI, GoReleaser

Y3

[ ] + cluster bootstrap (wraps terralabs)
[ ] + pipeline run (wraps Airflow / Kubeflow Pipelines)
[ ] + service observe (opens Grafana with logs/metrics/traces filtered)

Y4

[ ] + model deploy / list / rollback (wraps mlship)
[ ] + integration with mlship v0/v0.5 from Phase 21/25

Y5: launch

[ ] + agent invoke / status / kill (wraps services/aiops/)
[ ] + portal (status, search, surface in command palette)
[ ] + recipe run (the 5 composition recipes)
[ ] PUBLIC LAUNCH at Y5 P29 alongside Abukix Studio
[ ] LinkedIn announcement
[ ] Used as case study in Y5 pattern paper if relevant

When built

Started Year 2 Phase 12, Month 19-20. Grows continuously through Year 5.


Dependencies

platform-ctl is the outermost layer of the substrate. It depends on every other Group A project being usable underneath it: basecamp for service deployment, terralabs for cluster bootstrap, mlship for model deploy, services/aiops/ for agent invocation, and basecamp-mcp (Y5 P27) for the agent integration. Each year’s new subcommand maps to a new platform capability that landed that year.


Deliverables (cumulative)

YearState
Y2 endprivate; ~5 commands (service ops); used in daily basecamp work
Y3 endprivate; +cluster bootstrap; +pipeline run; +observe
Y4 endprivate; +model deploy; integrated with mlship v0.5
Y5 endPUBLIC; +agent + +portal + +recipe; full platform CLI

Stack

  • Go 1.23+
  • cobra (CLI)
  • viper (config)
  • K8s client-go (cluster ops)
  • ArgoCD SDK (sync triggering)
  • AWS + GCP SDKs (terralabs wrap)
  • MCP client (talks to basecamp-mcp from Y5 P27)
  • testify (tests)

Public vs private

  • Y2-Y4: private. Working tool for daily basecamp ops; not yet polished for public.
  • Y5 P29: GOES PUBLIC alongside Abukix Studio. Polished README, examples, contributing guide, GoReleaser binaries.

Success criteria

Y5 launch:
[ ] Public on GitHub with comprehensive README
[ ] 5+ example workflows in /examples
[ ] GoReleaser-built binaries (linux/macos/windows; amd64/arm64)
[ ] CI clean
[ ] Used in the Abukix Studio demo + composition recipes
[ ] LinkedIn announcement post-launch

Cross-references