diff --git a/examples/demo.tape b/examples/demo.tape
new file mode 100644
index 0000000..20613cb
--- /dev/null
+++ b/examples/demo.tape
@@ -0,0 +1,19 @@
+# Where should we write the GIF?
+Output demo.gif
+
+# Set up a 1200x600 terminal with 46px font.
+Set FontSize 46
+Set Width 1200
+Set Height 600
+
+# Type a command in the terminal.
+Type "echo 'Welcome to VHS!'"
+
+# Pause for dramatic effect...
+Sleep 500ms
+
+# Run the command by pressing enter.
+Enter
+
+# Admire the output for a bit.
+Sleep 5s
diff --git a/knowledge base/agg.md b/knowledge base/agg.md
index 12293e8..2dcfa4c 100644
--- a/knowledge base/agg.md
+++ b/knowledge base/agg.md
@@ -21,6 +21,7 @@ agg --rows '48' --speed '1.25' --renderer resvg --no-loop 'in.cast' 'out.gif'
## Further readings
- [Asciinema] to record terminal sessions
+- [VHS] as an alternative to Asciinema
[asciinema]: asciinema.md
+[vhs]: vhs.md
diff --git a/knowledge base/asciinema.md b/knowledge base/asciinema.md
index 0a8179e..2e74fd8 100644
--- a/knowledge base/asciinema.md
+++ b/knowledge base/asciinema.md
@@ -19,7 +19,9 @@ python3 -m 'pip' install --user 'asciinema'
# Record sessions locally.
asciinema rec 'path/to/file.cast'
-asciinema rec -i 2 'path/to/file.cast' -t 'title' --overwrite -c 'command'
+asciinema rec -i '2' 'path/to/file.cast' -t 'title' --overwrite -c 'command'
+asciinema rec --idle-time-limit '2' 'path/to/file.cast' --title 'title' --overwrite --cols '120' --command 'fish -l'
+
# Record sessions *and* upload them to the website.
asciinema rec
@@ -31,11 +33,17 @@ asciinema play 'path/to/file.cast'
asciinema upload 'path/to/file.cast'
```
+```sh
+asciinema rec -i '2' 'demo.cast' -t 'demo' --overwrite -c 'make demo' \
+&& agg --cols '160' --rows '24' --speed '1.25' --renderer 'resvg' --no-loop 'demo.cast' 'demo.gif' --theme 'solarized-dark'
+```
+
## Further readings
- [Website]
- [Github]
- [`agg`][agg] to convert cast files into GIFs
+- [VHS] as an alternative
[agg]: agg.md
+[vhs]: vhs.md
diff --git a/knowledge base/vhs.md b/knowledge base/vhs.md
new file mode 100644
index 0000000..2eab23a
--- /dev/null
+++ b/knowledge base/vhs.md
@@ -0,0 +1,60 @@
+# VHS
+
+1. [TL;DR](#tldr)
+1. [Further readings](#further-readings)
+ 1. [Sources](#sources)
+
+## TL;DR
+
+
+ Installation and configuration
+
+```sh
+brew install 'vhs'
+docker pull 'ghcr.io/charmbracelet/vhs'
+```
+
+
+
+
+ Usage
+
+```sh
+# Check the manual.
+vhs manual
+
+# Create new recording files.
+vhs new 'demo.tape'
+
+# Process the recording.
+vhs 'demo.tape'
+```
+
+
+
+
+
+## Further readings
+
+- [Github]
+- [Examples]
+
+### Sources
+
+
+
+
+
+
+
+[github]: https://github.com/charmbracelet/vhs
+[examples]: https://github.com/charmbracelet/vhs/tree/main/examples
+
+
diff --git a/knowledge base/xdotool.placeholder b/knowledge base/xdotool.placeholder
new file mode 100644
index 0000000..e69de29
diff --git a/knowledge base/ydotool.md b/knowledge base/ydotool.md
new file mode 100644
index 0000000..00d0cdd
--- /dev/null
+++ b/knowledge base/ydotool.md
@@ -0,0 +1,42 @@
+# `Ydotool`
+
+Generic Linux command-line automation tool.
+
+1. [TL;DR](#tldr)
+1. [Further readings](#further-readings)
+ 1. [Sources](#sources)
+
+## TL;DR
+
+
+
+
+
+
+
+## Further readings
+
+### Sources
+
+
+
+
+
+
+
+