score-hub-cli.
Krew-style CLI package manager for CNCF Score community provisioners. Replaces 140+ character raw GitHub URLs with a single install command.
Replaces 140+ character raw GitHub URLs with score-hub install <name>. Resolver interface abstraction enabling pluggable backends. HTTPStaticResolver for GitHub, LocalResolver for filesystem. Named registry federation, lockfile with checksum verification, automatic platform detection.
the problem
Installing CNCF Score provisioners requires copying 140+ character raw GitHub URLs. There is no package manager, no versioning, and no checksum verification. score-hub-cli is to community-provisioners what Krew is to kubectl plugins - a single install command replaces the raw URL:
# Before score-hub:
score-k8s init --provisioners \
https://raw.githubusercontent.com/score-spec/community-provisioners/main/dapr-pubsub/score-k8s/10-redis-dapr-pubsub.provisioners.yaml
# After score-hub:
score-hub install dapr-pubsub --variant redis
architecture
Resolver interface abstraction enables pluggable backends - HTTPStaticResolver for GitHub, LocalResolver for filesystem. Any backend (GitHub, S3, private registry, local) is swappable without changing the install command, following the same pattern as Go's io.Reader.
- Named registry federation via
~/.score-hub/config.yaml .score-hub.lockfile with checksum verification for reproducible installs- Automatic platform detection (k8s vs compose)
quick start
# 1. Install score-hub
go install github.com/ShantKhatri/score-hub-cli@latest
# 2. Search for provisioners
score-hub search
# 3. Install into your Score project
score-hub install dapr-pubsub --variant redis
status
POC green-flagged by maintainer Mathieu Benoit at the June 4 Score community call. Official feature request will be created by the Score team.
key decision
Resolver interface abstraction means any backend (GitHub, S3, private registry, local) is swappable without changing the install command - same pattern as Go's io.Reader.