diff --git a/algo/base/Options.cxx b/algo/base/Options.cxx
index 800714fe793f98555a5ead24ba2e815aa0c2ed0a..5c6ca51b0c5558801caced1fe521d272c912a126 100644
--- a/algo/base/Options.cxx
+++ b/algo/base/Options.cxx
@@ -73,11 +73,11 @@ Options::Options(int argc, char** argv)
     ("log-file,L", po::value(&fLogFile)->value_name("<file>"),
       "write log messages to file")
     ("output-types,O", po::value(&fOutputTypes)->multitoken()->value_name("<types>"),
-      "comma seperated list of reconstruction output types (hit, digi, ...)")
+      "space seperated list of reconstruction output types (hit, digi, ...)")
     ("steps", po::value(&fRecoSteps)->multitoken()->default_value({Step::Unpack, Step::DigiTrigger, Step::LocalReco, Step::Tracking})->value_name("<steps>"),
-      "comma seperated list of reconstruction steps (upack, digitrigger, localreco, ...)")
+      "space seperated list of reconstruction steps (unpack, digitrigger, localreco, ...)")
     ("systems,s", po::value(&fDetectors)->multitoken()->default_value({Subsystem::STS, Subsystem::TOF, Subsystem::BMON, Subsystem::MUCH, Subsystem::RICH, Subsystem::TRD, Subsystem::TRD2D})->value_name("<detectors>"),
-      "comma seperated list of detectors to process (sts, mvd, ...)")
+      "space seperated list of detectors to process (sts, mvd, ...)")
     ("child-id,c", po::value(&fChildId)->default_value("00")->value_name("<id>"), "online process id on node")
     ("num-ts,n", po::value(&fNumTimeslices)->default_value(-1)->value_name("<num>"),
       "Stop after <num> timeslices (-1 = all)")
diff --git a/docs/HowTos.md b/docs/HowTos.md
index 2afff5c7507aad5bc451f6b9ea889a89d6c1c0ca..82ac71f8d5ee4895d08200d301cc7e206d56caab 100644
--- a/docs/HowTos.md
+++ b/docs/HowTos.md
@@ -2,4 +2,5 @@
 - [Event displays HowTo](eventdisplay/HowTo.md)
 - [Histogram servers HowTo](histservs/HowTo.md)
 - [Online Container HowTo](online/container/HowTo.md)
+- [Online Reconstruction HowTo](online/container/HowTo.md)
 - [Monitoring HowTo](online/monitoring/HowTo.md)
diff --git a/docs/online/reconstruction/HowTo.md b/docs/online/reconstruction/HowTo.md
new file mode 100644
index 0000000000000000000000000000000000000000..d55fb3fc7e3f5b9d125a14dc91ec7a732da5cff8
--- /dev/null
+++ b/docs/online/reconstruction/HowTo.md
@@ -0,0 +1,73 @@
+# Online Reconstruction
+
+The online reconstruction is a single executable called `cbmreco`.
+
+Compile it via `make cbmreco` (or just `make`).
+
+Then run it with:
+```
+build/bin/cbmreco -p parameters/online -i <path/to/tsa>
+```
+Where `-i` should point to a .tsa file and `-p` points to the folder of parameters.
+Within CbmRoot these parameter files are located at `parameters/online` by default.
+Example TSA files can be found on the `lustre` filesystem at GSI, please contact members of the mCBM or Online team to know the most recent locations (subject to changes over time).
+Full run TSA files can be found on the `lustre` filesystem at GSI in subfolders of `/lustre/cbm/prod/beamtime/2022/0*/mcbm`, please contact members of the mCBM team to know the conditions of the various runs.
+
+This will run the full reconstruction and print some basic results in the log.
+
+## Selecting reconstruction steps
+
+The reconstruction can be filtered by steps and active detectors.
+
+Use `-s/--systems` to select specific detectors and `--steps` to limit the steps run in the reconstruction chain. E.g.:
+```
+build/bin/cbmreco -p parameters/online -i <path/to/tsa> -s STS --steps Unpack LocalReco
+```
+will only run unpacking + local reconstruction (hitfinding) for the STS.
+
+A full list of all available steps can be found in `algo/base/Definitions.h` in the enum `Step`. (Multiple values are space seperated.)
+
+## File storage
+
+File storage is controlled via two flags:
+- `-o` / `--output`: Name of the output file
+- `-O` / `--output-types`: Types of data stored in file
+
+E.g.:
+```
+build/bin/cbmreco -p parameters/online -i <path/to/tsa> -O DigiEvent Hit -o test.out
+```
+would store all digi events and reconstructed hits in a file `test.out`.
+
+A full list of all available output types can be found in `algo/base/Definitions.h` in the enum `RecoData`.
+
+## Monitoring
+
+See [Monitoring](../monitoring/HowTo.md).
+
+## Profiling
+
+Running with `-t` will print the runtime of all steps and kernels that run during the reconstruction that were recorded via `xpu::scoped_timer` of `xpu::push_timer` / `xpu::pop_timer`.
+
+## GPU compilation
+
+Enable GPU compilation for AMD via
+```
+cmake -DXPU_ENABLE_HIP=ON build
+```
+Then recompile. You should see a library called `libAlgo_Hip.so` in the build log.
+
+Use `-d <device>` to select a GPU device at runtime. E.g. use `hip0` to use the first AMD GPU on the machine.
+
+### Listing devices
+
+A list of all available devices can be printed with `xpuinfo`:
+```
+build/bin/xpuinfo
+```
+
+### CUDA and SYCL
+
+CUDA and SYCL compilation can be enabled with the respective `XPU_ENABLE_CUDA` and `XPU_ENABLE_SYCL` cmake options.
+
+**Warning: CUDA and SYCL compilation isn't currently tested and not guarenteed to work.**