diff --git a/README.md b/README.md
index 1d1a37b2699df940a3c460a7ae05fca634b42691..9a09b004e791e25783f89fcf64b4a2c2e15a3bae 100644
--- a/README.md
+++ b/README.md
@@ -7,67 +7,66 @@ For more background, see the initial [discussion](https://github.com/hackmdio/co
 *There is an alternative, TypeScript-based CodiMD CLI for `hackmdio/codimd` maintained by the HackMD team here: https://github.com/hackmdio/codimd-cli.*  
 *(it may or may not be compatible with the `hedgedoc/hedgedoc` server)*
 
-## Install
+## Installation
 
-Dependencies:
- - A HedgeDoc server running somewhere
- - `curl` (install via `apt install curl` or `brew install curl` on Mac)
- - `wget` (install via `apt install wget` or `brew install wget` on Mac)
- - `jq` (install via `apt install jq` or `brew install jq` on Mac)
+### Dependencies
 
-```bash
-git clone https://github.com/hedgedoc/cli
-cd cli/bin
-# optionally symlink the hedgedoc script somewhere into your $PATH
-ln -s $PWD/hedgedoc /usr/local/bin/hedgedoc
-
-# set HEDGEDOC_SERVER environment variable to your server's URL
-# it defaults to http://127.0.0.1:3000
-export HEDGEDOC_SERVER='https://hedgedoc.example.com'  
-
-# Test by creating a new note
-hedgedoc login --email
-hedgedoc import test.md
-```
+- A HedgeDoc server running somewhere
+- `curl` (install via `apt install curl` or `brew install curl` on Mac)
+- `wget` (install via `apt install wget` or `brew install wget` on Mac)
+- `jq` (install via `apt install jq` or `brew install jq` on Mac)
 
-## Documentation
+### Instructions
 
-### Create/import a new note
-```bash
-$ hedgedoc import <input_path> [note_id]     # takes a local path to a text file, and an optional note id for the new note
-qhmNmwmxSmK1H2oJmkKBQQ                     # returns <note_id> on success
-```
+Clone the repository.
 
-You can open the new note on the server by going to `$HEDGEDOC_SERVER/<note_id>`.
+    $ git clone https://github.com/hedgedoc/cli
 
-The optional `note_id` is only available on servers with `allowFreeURL`
-enabled.
-Check the [documentation](https://docs.hedgedoc.org/configuration/#users-and-privileges)
-for more information.
+Enter the folder with the script.
 
-### Publish an existing note
+    $ cd cli/bin
 
-```bash
-$ hedgedoc publish qhmNmwmxSmK1H2oJmkKBQQ   # takes a <note_id>
-S1ok9no3f                                 # returns public note id
-```
-You can open the published note on the server by going to `$HEDGEDOC_SERVER/s/<public_note_id>`.
+Optionally symlink the hedgedoc script somewhere into your $PATH to make it globally accessible. Otherwise you will have to provide the path to the script manually. This command might need admin rights (sudo)!
 
-### Export an existing note
+    $ ln -s $PWD/hedgedoc /usr/local/bin/hedgedoc
 
-```bash
-$ hedgedoc export --pdf qhmNmwmxSmK1H2oJmkKBQQ             # takes a <note_id>, outputs to <note_id>.pdf by default
-$ hedgedoc export --md qhmNmwmxSmK1H2oJmkKBQQ my_note.md   # or you can specify an output path explicitly
-$ hedgedoc export --html qhmNmwmxSmK1H2oJmkKBQQ
-$ hedgedoc export --slides qhmNmwmxSmK1H2oJmkKBQQ my_slides.zip
-```
+Check if the new command exists. You should see the documentation 
+
+    $ hedgedoc
+
+Set `HEDGEDOC_SERVER` environment variable to your server's URL. It defaults to `http://127.0.0.1:3000` Do this once on the command line or persist it in `.profile` and/or `.bashrc`.
+
+    $ export HEDGEDOC_SERVER='https://hedgedoc.example.com'  
+
+If you added the variable to `.profile` or `.bashrc`,  re-open the terminal to read the new variable.
+
+Test your configuration by creating a new note with FREELY access and no login required. You will receive the generated `<note_id>` for the document like `3jXcabSfSNesbH6KT72ieg`.
+
+**Caution: You won't have the right to delete the new document if not authenticated!**
+
+    $ echo "# HedgeDoc!" > test.md
+    $ hedgedoc import test.md
+
+Check for the document in the browser by concatenating the
+ address of your server and the `<note_id>`.
+
+## Configuration and usage
+
+### Variants of authentication
+
+It's not necessary to authenticate against the server in order to make use of `hedgedoc-cli`. But without authentication you won't have access to the non-FREELY documents and everything that's accessible behind the login.
+
+#### Authenticate with cookie
 
-### Authenticate and get notes history
+Authentication with a cookie is so far the only way if you login with GitLab and the like. Use browser extensions like [Get cookies.txt](https://chrome.google.com/webstore/detail/get-cookiestxt/bgaddhkoddajcdgocldbbfleckgcbcid) to store the cookie in `key.conf`.
+
+Possible you have many lines in `key.conf`. You only need the line with `connect.sid` followed by a long hash!
+
+Optionally add the HEDGEDOC_COOKIES_FILE environment variable to specify where cookies will be stored. It defaults to `~/.config/hedgedoc/key.conf`
 
 ```bash
-# optionally add the HEDGEDOC_COOKIES_FILE environment variable to specify
-# where cookies will be stored. It defaults to ~/.config/hedgedoc-cli/key.conf
-$ export HEDGEDOC_COOKIES_FILE=~/.config/hedgedoc-cli/key.conf
+# You can put this in .profile and/or .bashrc, too.
+$ export HEDGEDOC_COOKIES_FILE=~/.config/hedgedoc/key.conf
 ```
 #### Authenticate with email
 
@@ -83,7 +82,11 @@ $ hedgedoc login --ldap username p4sW0rD            # takes a username and a pas
 $ hedgedoc login --ldap                             # or pass them via stdin prompt instead
 ```
 
-#### Get auth status, history, and logout
+#### Check if authentication works
+
+If your authentication method is set up correctly the following commands will work.
+
+### Get auth status, history, and logout
 
 ```bash
 $ hedgedoc profile
@@ -111,6 +114,38 @@ You may need to log in again if:
  - the hedgedoc server was restarted (which force-expires all sessions as a side-effect)
  - the  is`$HEDGEDOC_COOKIES_FILE` deleted, moved, or becomes unreadable by `hedgedoc-cli`
 
+### Create/import a new note
+
+```bash
+$ hedgedoc import <input_path> [note_id]     # takes a local path to a text file, and an optional note id for the new note
+qhmNmwmxSmK1H2oJmkKBQQ                     # returns <note_id> on success
+```
+
+You can open the new note on the server by going to `$HEDGEDOC_SERVER/<note_id>`.
+
+The optional `note_id` is only available on servers with `allowFreeURL`
+enabled.
+Check the [documentation](https://docs.hedgedoc.org/configuration/#users-and-privileges)
+for more information.
+
+### Publish an existing note
+
+```bash
+$ hedgedoc publish qhmNmwmxSmK1H2oJmkKBQQ   # takes a <note_id>
+S1ok9no3f                                 # returns public note id
+```
+You can open the published note on the server by going to `$HEDGEDOC_SERVER/s/<public_note_id>`.
+
+### Export an existing note
+
+```bash
+$ hedgedoc export --pdf qhmNmwmxSmK1H2oJmkKBQQ             # takes a <note_id>, outputs to <note_id>.pdf by default
+$ hedgedoc export --md qhmNmwmxSmK1H2oJmkKBQQ my_note.md   # or you can specify an output path explicitly
+$ hedgedoc export --html qhmNmwmxSmK1H2oJmkKBQQ
+$ hedgedoc export --slides qhmNmwmxSmK1H2oJmkKBQQ my_slides.zip
+```
+
+
 ## API Endpoints
 
 These server endpoints are used by this project and can be unstable and undocumented, but may be of use if you're developing your own projects that need API access to HedgeDoc.