diff --git a/README.md b/README.md
index 3a8b03d..53104f9 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,16 @@ It has two commands ([check](#check) and [compare](#compare)) and a few option s
The `data` folder contains some channel lists and output files for testing.
-## check
+## Requirements
+
+- Python 3.6 or later
+- [pyepics](https://pyepics.github.io/pyepics/)
+- [colorama](https://pypi.org/project/colorama/)
+- [numpy](https://numpy.org/)
+- [pandas DataFrame](https://pandas.pydata.org/docs/reference/frame.html)
+
+## Commands
+### check
Reads a list of PV names from plain text file (comments starting with `#` are allowed, even recommended) and tests each channel for connection, alarm status and severity.
@@ -14,7 +23,7 @@ For each channel, the result will be printed as soon as it arrived. Thus, the ou
The test result can be written to a comma-separated values (csv) file by giving a filename to the `-o`/`--output` switch (`.csv` is automatically appended to the filename if missing).
-### example output
+#### example output
`./sani.py check data/test_chans_good.txt`
@@ -25,13 +34,13 @@ The test result can be written to a comma-separated values (csv) file by giving
Successful connections will be marked in green, failed connection in red, and alarm states will be printed in yellow.
-## compare
+### compare
Reads two csv files produced via [check](#check), and prints the differences (if any). Again, `.csv` is automatically appended to the filenames if missing.
Values are, on the one hand, likely to change between checks. However, this change does, on the other hand, not necessarily indicate a problem. Thus, there is a switch (`-v`/`--ignore-values`) to ignore them in the comparison.
-### example output
+#### example output
`./sani.py compare data/test1.csv data/test4 --ignore-values`