diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..2a0d400
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,19 @@
+# Changelog
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to
+[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+Note, "non-notable" changes may be small patches with no noticeable effect to the user.
+
+## Unreleased
+
+
+## 0.1.0 2020-11-27
+### Added
+- Initial usage: `jock [OPTIONS] COMMAND [ARGS]`
+ - OPTIONS can be `--version`, `--help` or a list of repositories such as `-r git-jock-cli` or `--repository
+ some-service`
+ - COMMAND is any of the currently supported git commands: `add`, `branch`, `checkout`, `clone`, `commit`, `fetch`,
+ `pull`, `push`, `reset`, `restore`, `rm`, `switch`, or `tag`
+ - ARGS are git arguments passed directly to the git command
\ No newline at end of file
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 42f5b96..ec3b7a3 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -62,6 +62,9 @@ The coding standards currently consist of what is enforced in the workflows:
maintainer.
- ShiftLeft and SonarCloud will run SAST scans on the code when a PR is opened.
+You should also include a [CHANGELOG](https://github.com/git-jock/git-jock-cli/blob/main/CHANGELOG.md) entry under the
+Unreleased section if there are any noticeable changes for a user, e.g. a new feature or a bugfix with a notable impact.
+
Though there aren't formal standards, you should match your code style to that already present in the repository, we may
give suggestions on how to do this at PR, or make minor edits to the code ourselves before accepting it.
diff --git a/README.md b/README.md
index a2862fb..f210c5a 100644
--- a/README.md
+++ b/README.md
@@ -20,7 +20,8 @@ Much like this image, the tool is under construction.
| :rocket: |
- Releases Coming
+
+
|
:rocket: |
@@ -60,21 +61,39 @@ curl -s -L https://raw.githubusercontent.com/git-jock/git-jock-cli/main/scripts/
:warning: _Note this script uses sudo to move the binary to `/usr/local/bin` and you should check the script before
execution._
-## Roadmap
+## Usage
-This is a loose roadmap to explain where the tool will end up, the versions & functionality against them are open to
-changes.
+```
+Usage: jock [OPTIONS] COMMAND [ARGS]...
+
+Options:
+ --version Show the version and exit.
+ -r, --repository TEXT Repository you wish to run commands on. Multiple
+ repositories can be specified using multiple flags.
+
+ --help Show this message and exit.
+
+Commands:
+ add branch checkout clone commit fetch pull push reset restore rm switch
+```
+- OPTIONS can be `--version`, `--help` or a list of repositories such as `-r git-jock-cli` or `--repository
+some-service`
+- COMMAND is any of the currently supported git commands: `add`, `branch`, `checkout`, `clone`, `commit`, `fetch`,
+`pull`, `push`, `reset`, `restore`, `rm`, `switch`, or `tag`
+- ARGS are git arguments passed directly to the git command
+
+Until grouping is supported (see the roadmap below), you can save your repo groups using environment variables in your
+.bashrc file, e.g:
+```shell script
+export SERVICES="--repository auth-service --repository user-service"
+```
+Then you can run your commands as `jock $(echo $SERVICES) checkout main`
-### 0.1
-Basic git command functionality using list of repo addresses or directories.
+## Roadmap
-e.g. `jock -r git@github.com:some-owner/repo-1.git ... -r git@github.com:some-other-owner/repo-42.git clone`
- - `clone` :sheep: :sheep:
- - `fetch` :softball: :dog2: :dash:
- - `pull` :no_good_woman: :flat_shoe: :service_dog:
- - `push` :arrow_left: :poodle:
- - `checkout` (inc. `-b` :herb:)
+This is a loose roadmap to explain where the tool will end up, the versions & functionality against them are open to
+changes.
### 0.2