cin
cin means config inject. It is a small CLI for encrypted app config in Git.
# create the shared encrypted config filecin init vaishnav
# set encrypted environment optionscin set -e dev options.postgres.host postgrescin set -e dev options.postgres.port 5432
# compose app env with encrypted templatescin set -e dev -a api DATABASE_URL \ 'postgres://{{ .options.postgres.host }}:{{ .options.postgres.port }}/api'
# inject resolved values at runtimecin run -e dev -a api -- pnpm devInstall
Section titled “Install”Homebrew
brew install --cask kado-so/tap/cinScoop
scoop bucket add kado https://github.com/kado-so/scoop-bucket
scoop install kado/cinwinget
winget install Kado.CinGo
go install github.com/kado-so/cin/cmd/cin@latestSource
git clone https://github.com/kado-so/cin
cd cin
go test ./...
go build -o cin ./cmd/cinRelease
https://github.com/kado-so/cin/releasesWhy it exists
Section titled “Why it exists”- No backend service, daemon, hosted vault, or control plane.
- Secrets stay encrypted in
configs.secret.yaml. - Runtime commands receive resolved environment variables.
- Plaintext is never printed unless a command explicitly asks for it.
- CI/CD is modeled as a normal encrypted recipient.