Installation
AFK is not published to a registry. You consume it by cloning the repo and linking the CLI globally.
git clone https://github.com/theodo-group/afk.git ~/afkcd ~/afk/clibun installbun link # registers @afk/cli globallybun link puts a symlink at ~/.bun/bin/afk that resolves back to this
checkout. If ~/.bun/bin is on your PATH (Bun’s installer adds it by
default), afk is now usable from any project. Editing the source in your
checkout takes effect immediately — no relink needed.
Updating: git pull && bun install. There is no version pinning; you run
whatever sha you checked out.
Prerequisites
Section titled “Prerequisites”On every developer machine
Section titled “On every developer machine”- Bun (runtime)
- Docker (image builds)
- A working
gitcredential helper that can read your remote (gh auth setup-gitis the easiest if you have the GitHub CLI installed)
Per Backend
Section titled “Per Backend”- Terraform ≥ 1.10 (for S3 native state locking)
- AWS CLI (credential chain) with creds for the target account
session-manager-plugin(required forafk attach)npm(the sweeper Lambda is bundled with esbuild atterraform applytime)
- Terraform ≥ 1.10 (GCS native state locking)
gcloudCLI authenticated (gcloud auth login); the active account is the Run’s Owner- A GCP project with billing enabled, selected via
gcloud config set project <id> - OS Login + IAP TCP forwarding (
roles/iap.tunnelResourceAccessor, granted by the module) forafk attach— no public IP, no SSH
wrangler(Cloudflare’s deploy CLI) on PATHCLOUDFLARE_API_TOKENin a gitignored.envat the repo root (afk auto-loads.env), scoped forWorkers Scripts:Edit,Workers Containers:Edit,Cloudflare Images:Edit,D1:Edit,Workers KV Storage:Edit, andAccess: Service Tokens:Edit(the last only forafk team add)- A Cloudflare account on the Workers Paid plan (Containers requires it)
Just Docker. Nested dind requires the outer container to run
--privileged, so a Docker daemon that permits privileged containers is
needed.