diff --git a/README.md b/README.md
index 00c712e7..70ba5875 100644
--- a/README.md
+++ b/README.md
@@ -23,7 +23,21 @@

-# Features
+## Table of Contents
+
+1. [Features](#features)
+2. [Benchmarks](#bench)
+3. [Motivation](#motivation)
+4. [Roadmap](#roadmap)
+5. [Limitations](#limitations)
+6. [Installation](#installation)
+7. [Build](#build)
+8. [Diagnostics](#diagnostics)
+9. [Color Theme](#theme)
+10. [Key Bindings](#bindings)
+11. [Inspiration](#inspiration)
+
+## 1. Features [Top ▲](#table-of-contents)
- Fast and intuitive **keyboard only** control
- Context based help (**no need to memorize** tons of hot-keys)
@@ -36,7 +50,7 @@
- Scalable terminal UI layout
- Async git API for fluid control
-# Benchmarks
+## 2. Benchmarks [Top ▲](#table-of-contents)
For a [RustBerlin meetup presentation](https://youtu.be/rpilJV-eIVw?t=5334) ([slides](https://github.com/extrawurst/gitui-presentation)) I compared `lazygit`,`tig` and `gitui` by parsing the entire Linux git repository (which contains over 900k commits):
@@ -46,13 +60,24 @@ For a [RustBerlin meetup presentation](https://youtu.be/rpilJV-eIVw?t=5334) ([sl
| `lazygit` | 57 s | 2.6 | 16 | Yes | Sometimes |
| `tig` | 4 m 20 s | 1.3 | **0.6** ✅ | Sometimes | **No** ✅ |
-# Motivation
+## 3. Motivation [Top ▲](#table-of-contents)
I do most of my git usage in a terminal but I frequently found myself using git UIs for some use cases like: index, commit, diff, stash and log.
Over the last 2 years my go-to GUI tool for this was [fork](https://git-fork.com) because it was snappy, free, and not bloated. Unfortunately the _free_ part will [change soon](https://github.com/ForkIssues/TrackerWin/issues/571) and so I decided to build a fast and simple terminal tool to help with features I use the most.
-# Known Limitations
+## 4. Road(map) to 1.0 [Top ▲](#table-of-contents)
+
+These are the high level goals before calling out `1.0`:
+
+* merging with conflicts ([#485](https://github.com/extrawurst/gitui/issues/485))
+* log search (commit, author, sha) ([#449](https://github.com/extrawurst/gitui/issues/449),[#429](https://github.com/extrawurst/gitui/issues/429))
+* file history log ([#381](https://github.com/extrawurst/gitui/issues/381))
+* more tag support ([#483](https://github.com/extrawurst/gitui/issues/483))
+* file blame ([#484](https://github.com/extrawurst/gitui/issues/484))
+* visualize branching structure in log tab ([#81](https://github.com/extrawurst/gitui/issues/81))
+
+## 5. Known Limitations [Top ▲](#table-of-contents)
- no support for conflict resolution yet (see [#485](https://github.com/extrawurst/gitui/issues/485))
- no support for [bare repositories](https://git-scm.com/book/en/v2/Git-on-the-Server-Getting-Git-on-a-Server) (see [#100](https://github.com/extrawurst/gitui/issues/100))
@@ -64,7 +89,7 @@ Currently, this tool does not fully substitute the _git shell_, however both too
All support is welcomed! Sponsors as well! ❤️
-# Installation
+## 6. Installation [Top ▲](#table-of-contents)
For the time being this product is in alpha and is not considered production ready. However, for personal use it is reasonably stable and is being used while developing itself.
@@ -129,7 +154,7 @@ Binaries available for:
- macOS
- Windows
-# Build
+## 7. Build [Top ▲](#table-of-contents)
### Requirements
@@ -140,7 +165,7 @@ Binaries available for:
The simplest way to start playing around with `gitui` is to have `cargo` build and install it with `cargo install gitui`
-# Diagnostics
+## 8. Diagnostics [Top ▲](#table-of-contents)
To run with logging enabled run `gitui -l`.
@@ -151,7 +176,7 @@ This will log to:
- Linux: `$HOME/.cache/gitui/gitui.log`
- Windows: `%LOCALAPPDATA%/gitui/gitui.log`
-# Color Theme
+## 9. Color Theme [Top ▲](#table-of-contents)

@@ -159,22 +184,11 @@ This will log to:
However, you can customize everything to your liking: See [Themes](THEMES.md).
-# Key Bindings
+## 10. Key Bindings [Top ▲](#table-of-contents)
The key bindings can be customized: See [Key Config](KEY_CONFIG.md) on how to set them to `vim`-like bindings.
-# Road(map) to 1.0
-
-These are the high level goals before calling out `1.0`:
-
-* merging with conflicts ([#485](https://github.com/extrawurst/gitui/issues/485))
-* log search (commit, author, sha) ([#449](https://github.com/extrawurst/gitui/issues/449),[#429](https://github.com/extrawurst/gitui/issues/429))
-* file history log ([#381](https://github.com/extrawurst/gitui/issues/381))
-* more tag support ([#483](https://github.com/extrawurst/gitui/issues/483))
-* file blame ([#484](https://github.com/extrawurst/gitui/issues/484))
-* visualize branching structure in log tab ([#81](https://github.com/extrawurst/gitui/issues/81))
-
-# Inspiration
+## 11. Inspiration [Top ▲](#table-of-contents)
- [lazygit](https://github.com/jesseduffield/lazygit)
- [tig](https://github.com/jonas/tig)