Skip to content

Install

  • Bun — Runtime and package manager. Install from bun.sh.
  • Mise (optional) — Tool version management from mise.jdx.dev.

Kyku is Bun-only. The CLI publishes as @kykucloud/cli.

Terminal window
# https://bun.sh
curl -fsSL https://bun.sh/install | bash
bun add -g @kykucloud/cli
kyku version
kyku init --provider=hetzner

Until 0.1.0 is on the registry, or when hacking on Kyku itself:

Terminal window
git clone https://github.com/pmdroid/kyku.git
cd kyku
bun install
bun run build

This builds all packages in order: typescoreawsgcphetznercli.

Run the CLI directly:

Terminal window
kyku --help

If using Mise for tool version management:

Terminal window
mise install

This reads .mise.toml and installs the correct Bun version automatically.

Set provider credentials as environment variables:

Terminal window
# AWS — standard env vars
export AWS_REGION=us-east-1
export AWS_ACCESS_KEY_ID=...
export AWS_SECRET_ACCESS_KEY=...
# GCP
export GOOGLE_CLOUD_PROJECT=my-project
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/key.json
# Hetzner
export HCLOUD_TOKEN=your-token
# DigitalOcean
export DIGITALOCEAN_TOKEN=your-token

AWS and GCP can use OIDC in GitHub Actions / GitLab / CircleCI (KYKU_AWS_ROLE_ARN, or KYKU_GCP_WORKLOAD_PROVIDER + KYKU_GCP_SERVICE_ACCOUNT). Hetzner and DigitalOcean have no OIDC — use their API tokens.

Terminal window
kyku version
kyku doctor

kyku version prints @kykucloud/cli 0.1.0. kyku doctor is a read-only pass/fail table (Bun, named credentials, state parse, lock). It does not write state, lock, or cloud.