diff --git a/README.md b/README.md
index 1ff3b1688716fcc2bf5399033652952aae7e772f..5180cd95157e0acfb17bedae444de6b464cfb0d3 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,17 @@
 # toolkit
 
 [![e2e](https://github.com/fluxcd/toolkit/workflows/e2e/badge.svg)](https://github.com/fluxcd/toolkit/actions)
+[![report](https://goreportcard.com/badge/github.com/fluxcd/toolkit)](https://goreportcard.com/report/github.com/fluxcd/toolkit)
+[![license](https://img.shields.io/github/license/fluxcd/toolkit.svg)](https://github.com/fluxcd/toolkit/blob/master/LICENSE)
+[![release](https://img.shields.io/github/release/fluxcd/toolkit/all.svg)](https://github.com/fluxcd/toolkit/releases)
 
 Experimental toolkit for assembling CD pipelines the GitOps way.
 
+![overview](docs/diagrams/tk-overview.png)
+
 Components:
 * [Toolkit CLI](docs/cmd/tk.md)
 * [Source Controller](https://github.com/fluxcd/source-controller)
 * [Kustomize Controller](https://github.com/fluxcd/kustomize-controller)
+
+To install the toolkit CLI, follow the [instructions](install/README.md).
diff --git a/docs/diagrams/tk-overview.png b/docs/diagrams/tk-overview.png
new file mode 100644
index 0000000000000000000000000000000000000000..4cbdf66bb423fc572e3e8e80b0225f8b6b583a93
Binary files /dev/null and b/docs/diagrams/tk-overview.png differ
diff --git a/install/README.md b/install/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..50f6eb33e35ba60a5bf7a1b5791964c3f2a8835b
--- /dev/null
+++ b/install/README.md
@@ -0,0 +1,37 @@
+# TK CLI Installation
+
+Binaries for macOS and Linux AMD64 are available for download on the 
+[release page](https://github.com/fluxcd/toolkit/releases).
+
+To install the latest release run:
+
+```bash
+curl -s https://raw.githubusercontent.com/fluxcd/toolkit/master/install/tk.sh | sudo bash
+```
+
+The install script does the following:
+* attempts to detect your OS
+* downloads and unpacks the release tar file in a temporary directory
+* copies the tk binary to `/usr/local/bin`
+* removes the temporary directory
+
+## Build from source
+
+Clone the repository:
+
+```bash
+git clone https://github.com/fluxcd/toolkit
+cd toolkit
+```
+
+Build the tk binary (requires go >= 1.14):
+
+```bash
+make build
+```
+
+Run the binary:
+
+```bash
+./bin/tk -h
+```
diff --git a/install/tk.sh b/install/tk.sh
new file mode 100755
index 0000000000000000000000000000000000000000..f16a2a1a5de752d964e65aaf53e5bdea4da60ad0
--- /dev/null
+++ b/install/tk.sh
@@ -0,0 +1,51 @@
+#!/usr/bin/env bash
+
+set -e
+
+DEFAULT_BIN_DIR="/usr/local/bin"
+BIN_DIR=${1:-"$DEFAULT_BIN_DIR"}
+
+opsys=""
+if [[ "$OSTYPE" == linux* ]]; then
+  opsys=linux
+elif [[ "$OSTYPE" == darwin* ]]; then
+  opsys=darwin
+fi
+
+if [[ "$opsys" == "" ]]; then
+  echo "OS $OSTYPE not supported"
+  exit 1
+fi
+
+if [[ ! -x "$(command -v curl)" ]]; then
+    echo "curl not found"
+    exit 1
+fi
+
+tmpDir=`mktemp -d`
+if [[ ! "$tmpDir" || ! -d "$tmpDir" ]]; then
+  echo "could not create temp dir"
+  exit 1
+fi
+
+function cleanup {
+  rm -rf "$tmpDir"
+}
+
+trap cleanup EXIT
+
+pushd $tmpDir >& /dev/null
+
+curl -s https://api.github.com/repos/fluxcd/toolkit/releases/latest |\
+  grep browser_download |\
+  grep $opsys |\
+  cut -d '"' -f 4 |\
+  xargs curl -sL -o tk.tar.gz
+
+tar xzf ./tk.tar.gz
+
+mv ./tk $BIN_DIR
+
+popd >& /dev/null
+
+echo "$(tk --version) installed"