diff --git a/book/src/help_vm.md b/book/src/help_vm.md
new file mode 100644
index 0000000000..be62e3549c
--- /dev/null
+++ b/book/src/help_vm.md
@@ -0,0 +1,100 @@
+# Validator Manager
+
+```
+Utilities for managing a Lighthouse validator client via the HTTP API.
+
+USAGE:
+ lighthouse validator_manager [FLAGS] [OPTIONS] [SUBCOMMAND]
+
+FLAGS:
+ --disable-log-timestamp If present, do not include timestamps in logging output.
+ --disable-malloc-tuning If present, do not configure the system allocator. Providing this flag will
+ generally increase memory usage, it should only be provided when debugging
+ specific memory allocation issues.
+ -h, --help Prints help information
+ --log-color Force outputting colors when emitting logs to the terminal.
+ --logfile-compress If present, compress old log files. This can help reduce the space needed to
+ store old logs.
+ --logfile-no-restricted-perms If present, log files will be generated as world-readable meaning they can be
+ read by any user on the machine. Note that logs can often contain sensitive
+ information about your validator and so this flag should be used with caution.
+ For Windows users, the log file permissions will be inherited from the parent
+ folder.
+ -V, --version Prints version information
+
+OPTIONS:
+ -d, --datadir
+ Used to specify a custom root data directory for lighthouse keys and databases. Defaults to
+ $HOME/.lighthouse/{network} where network is the value of the `network` flag Note: Users should specify
+ separate custom datadirs for different networks.
+ --debug-level
+ Specifies the verbosity level used when emitting logs to the terminal. [default: info] [possible values:
+ info, debug, trace, warn, error, crit]
+ --genesis-state-url
+ A URL of a beacon-API compatible server from which to download the genesis state. Checkpoint sync server
+ URLs can generally be used with this flag. If not supplied, a default URL or the --checkpoint-sync-url may
+ be used. If the genesis state is already included in this binary then this value will be ignored.
+ --genesis-state-url-timeout
+ The timeout in seconds for the request to --genesis-state-url. [default: 180]
+
+ --log-format
+ Specifies the log format used when emitting logs to the terminal. [possible values: JSON]
+
+ --logfile
+ File path where the log file will be stored. Once it grows to the value specified in `--logfile-max-size` a
+ new log file is generated where future logs are stored. Once the number of log files exceeds the value
+ specified in `--logfile-max-number` the oldest log file will be overwritten.
+ --logfile-debug-level
+ The verbosity level used when emitting logs to the log file. [default: debug] [possible values: info,
+ debug, trace, warn, error, crit]
+ --logfile-format
+ Specifies the log format used when emitting logs to the logfile. [possible values: DEFAULT, JSON]
+
+ --logfile-max-number
+ The maximum number of log files that will be stored. If set to 0, background file logging is disabled.
+ [default: 5]
+ --logfile-max-size
+ The maximum size (in MB) each log file can grow to before rotating. If set to 0, background file logging is
+ disabled. [default: 200]
+ --network
+ Name of the Eth2 chain Lighthouse will sync and follow. [possible values: mainnet, prater, goerli, gnosis,
+ chiado, sepolia, holesky]
+ --safe-slots-to-import-optimistically
+ Used to coordinate manual overrides of the SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY parameter. This flag should
+ only be used if the user has a clear understanding that the broad Ethereum community has elected to override
+ this parameter in the event of an attack at the PoS transition block. Incorrect use of this flag can cause
+ your node to possibly accept an invalid chain or sync more slowly. Be extremely careful with this flag.
+ -s, --spec
+ This flag is deprecated, it will be disallowed in a future release. This value is now derived from the
+ --network or --testnet-dir flags.
+ --terminal-block-hash-epoch-override
+ Used to coordinate manual overrides to the TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH parameter. This flag should
+ only be used if the user has a clear understanding that the broad Ethereum community has elected to override
+ the terminal PoW block. Incorrect use of this flag will cause your node to experience a consensus failure.
+ Be extremely careful with this flag.
+ --terminal-block-hash-override
+ Used to coordinate manual overrides to the TERMINAL_BLOCK_HASH parameter. This flag should only be used if
+ the user has a clear understanding that the broad Ethereum community has elected to override the terminal
+ PoW block. Incorrect use of this flag will cause your node to experience a consensus failure. Be extremely
+ careful with this flag.
+ --terminal-total-difficulty-override
+ Used to coordinate manual overrides to the TERMINAL_TOTAL_DIFFICULTY parameter. Accepts a 256-bit decimal
+ integer (not a hex value). This flag should only be used if the user has a clear understanding that the
+ broad Ethereum community has elected to override the terminal difficulty. Incorrect use of this flag will
+ cause your node to experience a consensus failure. Be extremely careful with this flag.
+ -t, --testnet-dir
+ Path to directory containing eth2_testnet specs. Defaults to a hard-coded Lighthouse testnet. Only effective
+ if there is no existing database.
+
+SUBCOMMANDS:
+ create Creates new validators from BIP-39 mnemonic. A JSON file will be created which contains all the
+ validator keystores and other validator data. This file can then be imported to a validator client
+ using the "import-validators" command. Another, optional JSON file is created which contains a list of
+ validator deposits in the same format as the "ethereum/staking-deposit-cli" tool.
+ help Prints this message or the help of the given subcommand(s)
+ import Uploads validators to a validator client using the HTTP API. The validators are defined in a JSON file
+ which can be generated using the "create-validators" command.
+ move Uploads validators to a validator client using the HTTP API. The validators are defined in a JSON file
+ which can be generated using the "create-validators" command. This command only supports validators
+ signing via a keystore on the local file system (i.e., not Web3Signer validators).
+```
\ No newline at end of file
diff --git a/scripts/cli.sh b/scripts/cli.sh
index 5946871783..c0d8d131fd 100755
--- a/scripts/cli.sh
+++ b/scripts/cli.sh
@@ -36,24 +36,24 @@ general_cli=$($CMD --help)
bn_cli=$($CMD bn --help)
vc_cli=$($CMD vc --help)
am_cli=$($CMD am --help)
-#vm_cli=$($CMD vm --help)
+vm_cli=$($CMD vm --help)
general=./help_general.md
bn=./help_bn.md
vc=./help_vc.md
am=./help_am.md
-#vm=./help_vm.md
+vm=./help_vm.md
# create .md files
write_to_file "$general_cli" "$general" "Lighthouse General Commands"
write_to_file "$bn_cli" "$bn" "Beacon Node"
write_to_file "$vc_cli" "$vc" "Validator Client"
write_to_file "$am_cli" "$am" "Account Manager"
-#write_to_file "$vm_cli" "$vm" "Validator Manager"
+write_to_file "$vm_cli" "$vm" "Validator Manager"
#input 1 = $1 = old files; input 2 = $2 = new files
-old_files=(./book/src/help_general.md ./book/src/help_bn.md ./book/src/help_vc.md ./book/src/help_am.md)
-new_files=($general $bn $vc $am)
+old_files=(./book/src/help_general.md ./book/src/help_bn.md ./book/src/help_vc.md ./book/src/help_am.md ./book/src/help_vm.md)
+new_files=($general $bn $vc $am $vm)
exist=()
changes=()
@@ -86,10 +86,10 @@ check ${old_files[0]} ${new_files[0]}
check ${old_files[1]} ${new_files[1]}
check ${old_files[2]} ${new_files[2]}
check ${old_files[3]} ${new_files[3]}
-#check ${old_files[4]} ${new_files[4]}
+check ${old_files[4]} ${new_files[4]}
# remove help files
-rm -f help_general.md help_bn.md help_vc.md help_am.md
+rm -f help_general.md help_bn.md help_vc.md help_am.md help_vm.md
echo "exist = ${exist[@]}"
echo "changes = ${changes[@]}"