diff --git a/check_cpu.md b/check_cpu.md
new file mode 100644
index 0000000000000000000000000000000000000000..5396deaa6f5841ade1462dc3df1babf14450d7f9
--- /dev/null
+++ b/check_cpu.md
@@ -0,0 +1,48 @@
+# IML Checks for Icinga / Nagios
+
+[Home](readme.md)
+
+---
+
+## check CPU
+
+### Introduction
+
+**check_cpu** is a plugin to check cpu usage and cpu io wait.
+It reads cpu data from output of top command and shows
+
+   hwi - Time spent handling hardware interrupt routines. (Whenever a peripheral unit want attention form the CPU, it literally pulls a line, to signal the CPU to service it)
+   swi - Time spent handling software interrupt routines. (a piece of code, calls an interrupt routine...)
+    st - Time spent on involuntary waits by virtual cpu while hypervisor is servicing another processor (stolen from a virtual machine)
+
+  nice - Time spent running niced user processes (User defined priority)
+  wait - Time spent on waiting on IO peripherals (eg. disk)
+
+system - Time spent in kernel space
+  user - Time spent in user space
+  idle - Time spent in idle operations
+
+For all values it sends performance data.
+
+### Syntax
+
+``$ check_NAME [-c CRITICAL] [-w WARING] [-i CRITICAL_IO]``
+
+#### Parameters
+
+```text
+    -w VALUE       cpu usage warning level  (default: 75)
+    -c VALUE       cpu usage critical level (default: 90)
+
+    -i VALUE       io wait critical level   (default: 50)
+
+    -h or --help   show this help.
+
+```
+
+# Examples
+
+``check_cpu -w 60 -c 80 -i 40``
+    check cpu usage.
+    It shows a warning if usage is higer 60%.
+    It shows critical status if usage is higer 80% or io wait is 40%