Repository: vantage6/vantage6
Issue: [Bug] Help text for CLI commands is not properly formatted

**Describe the bug**
The help text for CLI commands is weirdly formatted.

Example: `vnode attach --help` gives:

```
Usage: vnode attach [OPTIONS]

  Attach the logs from the docker container to the terminal.

  Parameters ---------- name : str     Name of the configuration file.
  system_folders : bool     Wether this configuration stored in the system or
  in the user folders.

Options:
  -n, --name TEXT  configuration name
  --system
  --user
  --help           Show this message and exit.
```

- [x] Wait for #624 to start this to prevent merge conflicts
- [x] Remove the Parameters section, instead add help to the relevant options
- [x] Check the docs to see if this is properly displayed (does not seem to be the case in live version!)

Changed files:
vantage6/vantage6/cli/server.py, vantage6/vantage6/cli/dev.py, vantage6/vantage6/cli/node.py

diff --git a/vantage6/vantage6/cli/dev.py b/vantage6/vantage6/cli/dev.py
index 524462fe..c5b82af3 100644
--- a/vantage6/vantage6/cli/dev.py
+++ b/vantage6/vantage6/cli/dev.py
@@ -293,7 +293,10 @@ def demo_network(num_nodes: int, server_url: str, server_port: int,
 
 @click.group(name="dev")
 def cli_dev() -> None:
-    """Subcommand `vdev`."""
+    """
+    The `vdev` commands can be used to quickly manage a network with a server
+    and several nodes for local testing.
+    """
 
 
 @cli_dev.command(name="create-demo-network")
@@ -311,7 +314,7 @@ def cli_dev() -> None:
               'the development server')
 def create_demo_network(name: str, num_nodes: int, server_url: str,
                         server_port: int, image: str = None) -> dict:
-    """Synthesizes a demo network.
+    """Creates a demo network.
 
     Creates server instance as well as its import configuration file. Server
     name is set to 'dev_default_server'. Generates `n` node configurations, but
@@ -341,7 +344,7 @@ def create_demo_network(name: str, num_nodes: int, server_url: str,
 @cli_dev.command(name="start-demo-network")
 @click_insert_context
 def start_demo_network(ctx: ServerContext) -> None:
-    """Starts running a demo-network
+    """Starts running a demo-network.
 
     Select a server configuration to run its demo network. You should choose a
     server configuration that you created earlier for a demo network. If you
@@ -363,7 +366,11 @@ def start_demo_network(ctx: ServerContext) -> None:
 @cli_dev.command(name="stop-demo-network")
 @click_insert_context
 def stop_demo_network(ctx: ServerContext) -> None:
-    """ Stops a demo network's server and nodes """
+    """ Stops a demo network's server and nodes.
+
+    Select a server configuration to stop that server and the nodes attached
+    to it.
+    """
     # stop the server
     vserver_stop(name=ctx.name, environment=S_ENV, system_folders=True,
                  all_servers=False)
@@ -380,7 +387,11 @@ def stop_demo_network(ctx: ServerContext) -> None:
 @cli_dev.command(name="remove-demo-network")
 @click_insert_context
 def remove_demo_network(ctx: ServerContext) -> None:
-    """ Remove all related demo network files and folders """
+    """ Remove all related demo network files and folders.
+
+    Select a server configuration to remove that server and the nodes attached
+    to it.
+    """
 
     # remove the server
     for handler in itertools.chain(ctx.log.handlers, ctx.log.root.handlers):
diff --git a/vantage6/vantage6/cli/node.py b/vantage6/vantage6/cli/node.py
index 53a84305..6d8d104b 100644
--- a/vantage6/vantage6/cli/node.py
+++ b/vantage6/vantage6/cli/node.py
@@ -66,7 +66,9 @@ from vantage6.cli import __version__
 
 @click.group(name="node")
 def cli_node() -> None:
-    """Subcommand `vnode`."""
+    """
+    The `vnode` commands allow you to manage your vantage6 node instances.
+    """
     pass
 
 
@@ -76,7 +78,10 @@ def cli_node() -> None:
 @cli_node.command(name="list")
 def cli_node_list() -> None:
     """
-    Lists all nodes in the default configuration directories.
+    Lists all node configurations.
+
+    Note that this command cannot find node configuration files in custom
+    directories.
     """
 
     client = docker.from_env()
@@ -130,27 +135,21 @@ def cli_node_list() -> None:
 #   new
 #
 @cli_node.command(name="new")
-@click.option("-n", "--name", default=None)
+@click.option("-n", "--name", default=None, help="Configuration name")
 @click.option('-e', '--environment', default="",
-              help='configuration environment to use')
-@click.option('--system', 'system_folders', flag_value=True)
-@click.option('--user', 'system_folders', flag_value=False, default=N_FOL)
+              help='Configuration environment to use')
+@click.option('--system', 'system_folders', flag_value=True,
+              help="Store this configuration in the system folders")
+@click.option('--user', 'system_folders', flag_value=False, default=N_FOL,
+              help="Store this configuration in the user folders. This is the "
+                   "default")
 def cli_node_new_configuration(name: str, environment: str,
                                system_folders: bool) -> None:
     """
-    Create a new configuration file.
+    Create a new node configuration.
 
     Checks if the configuration already exists. If this is not the case
     a questionnaire is invoked to create a new configuration file.
-
-    Parameters
-    ----------
-    name : str
-        Name of the configuration file.
-    environment : str
-        DTAP environment to use.
-    system_folders : bool
-        Store this configuration in the system folders or in the user folders.
     """
     name = prompt_config_name(name)
     # check if config name is allowed docker name
@@ -186,26 +185,20 @@ def cli_node_new_configuration(name: str, environment: str,
 #   files
 #
 @cli_node.command(name="files")
-@click.option("-n", "--name", default=None, help="configuration name")
+@click.option("-n", "--name", default=None, help="Configuration name")
 @click.option('-e', '--environment', default=N_ENV,
               help='configuration environment to use')
-@click.option('--system', 'system_folders', flag_value=True)
-@click.option('--user', 'system_folders', flag_value=False, default=N_FOL)
+@click.option('--system', 'system_folders', flag_value=True,
+              help="Search for the configuration in the system folders")
+@click.option('--user', 'system_folders', flag_value=False, default=N_FOL,
+              help="Search for the configuration in the user folders. This is "
+                   "the default")
 def cli_node_files(name: str, environment: str, system_folders: bool) -> None:
     """
-    Prints location important files.
+    Prints the location of important node files.
 
     If the specified configuration cannot be found, it exits. Otherwise
     it returns the absolute path to the output.
-
-    Parameters
-    ----------
-    name : str
-        Name of the configuration file.
-    environment : str
-        DTAP environment to use.
-    system_folders : bool
-        Is this configuration stored in the system or in the user folders.
     """
     name, environment = _select_node(name, environment, system_folders)
 
@@ -231,26 +224,34 @@ def cli_node_files(name: str, environment: str, system_folders: bool) -> None:
 #   start
 #
 @cli_node.command(name='start')
-@click.option("-n", "--name", default=None, help="configuration name")
+@click.option("-n", "--name", default=None, help="Configuration name")
 @click.option("-c", "--config", default=None,
-              help='absolute path to configuration-file; overrides NAME')
+              help='Absolute path to configuration-file; overrides NAME')
 @click.option('-e', '--environment', default=N_ENV,
               help='configuration environment to use')
-@click.option('--system', 'system_folders', flag_value=True)
-@click.option('--user', 'system_folders', flag_value=False, default=N_FOL)
+@click.option('--system', 'system_folders', flag_value=True,
+              help="Search for the configuration in the system folders")
+@click.option('--user', 'system_folders', flag_value=False, default=N_FOL,
+              help="Search for the configuration in the user folders. This is "
+                   "the default")
 @click.option('-i', '--image', default=None, help="Node Docker image to use")
 @click.option('--keep/--auto-remove', default=False,
-              help="Keep image after finishing")
+              help="Keep node container after finishing. Useful for debugging")
 @click.option('--force-db-mount', is_flag=True,
-              help="Skip the check of the existence of the DB (always try to "
-                   "mount)")
+              help="Always mount node databases; skip the check if they are "
+                   "existing files.")
 @click.option('--attach/--detach', default=False,
-              help="Attach node logs to the console after start")
+              help="Show node logs on the current console after starting the "
+                   "node")
 @click.option('--mount-src', default='',
-              help="mount vantage6-master package source")
+              help="Override vantage6 source code in container with the source"
+                   " code in this path")
 def cli_node_start(name: str, config: str, environment: str,
                    system_folders: bool, image: str, keep: bool,
                    mount_src: str, attach: bool, force_db_mount: bool) -> None:
+    """
+    Start the node.
+    """
     vnode_start(name, config, environment, system_folders, image, keep,
                 mount_src, attach, force_db_mount)
 
@@ -533,14 +534,22 @@ def vnode_start(name: str, config: str, environment: str, system_folders: bool,
 #   stop
 #
 @cli_node.command(name='stop')
-@click.option("-n", "--name", default=None, help="configuration name")
-@click.option('--system', 'system_folders', flag_value=True)
-@click.option('--user', 'system_folders', flag_value=False, default=N_FOL)
-@click.option('--all', 'all_nodes', flag_value=True)
-@click.option('--force', 'force', flag_value=True, help="kills containers "
-                                                        "instantly")
+@click.option("-n", "--name", default=None, help="Configuration name")
+@click.option('--system', 'system_folders', flag_value=True,
+              help="Search for configuration in system folders instead of "
+                   "user folders")
+@click.option('--user', 'system_folders', flag_value=False, default=N_FOL,
+              help="Search for configuration in the user folders instead of "
+                   "system folders. This is the default.")
+@click.option('--all', 'all_nodes', flag_value=True,
+              help="Stop all running nodes")
+@click.option('--force', 'force', flag_value=True,
+              help="Kill nodes instantly; don't wait for them to shut down")
 def cli_node_stop(name: str, system_folders: bool, all_nodes: bool,
                   force: bool) -> None:
+    """
+    Stop one or all running nodes.
+    """
     vnode_stop(name, system_folders, all_nodes, force)
 
 
@@ -608,19 +617,16 @@ def vnode_stop(name: str, system_folders: bool, all_nodes: bool,
 #   attach
 #
 @cli_node.command(name='attach')
-@click.option("-n", "--name", default=None, help="configuration name")
-@click.option('--system', 'system_folders', flag_value=True)
-@click.option('--user', 'system_folders', flag_value=False, default=N_FOL)
+@click.option("-n", "--name", default=None, help="Configuration name")
+@click.option('--system', 'system_folders', flag_value=True,
+              help="Search for configuration in system folders rather than "
+                   "user folders")
+@click.option('--user', 'system_folders', flag_value=False, default=N_FOL,
+              help="Search for configuration in user folders rather than "
+                   "system folders. This is the default")
 def cli_node_attach(name: str, system_folders: bool) -> None:
     """
-    Attach the logs from the docker container to the terminal.
-
-    Parameters
-    ----------
-    name : str
-        Name of the configuration file.
-    system_folders : bool
-        Wether this configuration stored in the system or in the user folders.
+    Show the node logs in the current console.
     """
     client = docker.from_env()
     check_docker_running()
@@ -658,40 +664,35 @@ def cli_node_attach(name: str, system_folders: bool) -> None:
 #   create-private-key
 #
 @cli_node.command(name='create-private-key')
-@click.option("-n", "--name", default=None, help="configuration name")
+@click.option("-n", "--name", default=None, help="Configuration name")
 @click.option("-c", "--config", default=None,
-              help='absolute path to configuration-file; overrides NAME')
+              help='Absolute path to configuration-file; overrides NAME')
 @click.option('-e', '--environment', default=N_ENV,
               help='configuration environment to use')
-@click.option('--system', 'system_folders', flag_value=True)
-@click.option('--user', 'system_folders', flag_value=False, default=N_FOL)
-@click.option('--no-upload', 'upload', flag_value=False, default=True)
+@click.option('--system', 'system_folders', flag_value=True,
+              help="Search for configuration in system folders rather than "
+                   "user folders")
+@click.option('--user', 'system_folders', flag_value=False, default=N_FOL,
+              help="Search for configuration in user folders rather than "
+                   "system folders. This is the default")
+@click.option('--no-upload', 'upload', flag_value=False, default=True,
+              help="Don't upload the public key to the server")
 @click.option("-o", "--organization-name", default=None,
-              help="Organization name")
-@click.option('--overwrite', 'overwrite', flag_value=True, default=False)
+              help="Organization name. Used in the filename of the private key"
+                   " so that it can easily be recognized again later")
+@click.option('--overwrite', 'overwrite', flag_value=True, default=False,
+              help="Overwrite existing private key if present")
 def cli_node_create_private_key(
         name: str, config: str, environment: str, system_folders: bool,
         upload: bool, organization_name: str, overwrite: bool
         ) -> None:
     """
-    Create and upload a new private key (use with caution).
+    Create and upload a new private key
 
-    Parameters
-    ----------
-    name : str
-        Name of the configuration file.
-    config : str
-        Absolute path to configuration-file; overrides NAME.
-    environment : str
-        DTAP environment to use.
-    system_folders : bool
-        Wether this configuration stored in the system or in the user folders.
-    upload : bool
-        Wether to upload the private key to the server.
-    organization_name : str
-        Used to store and reference the private key.
-    overwrite : bool
-        Overwrite existing private key if present.
+    Use this command with caution! Uploading a new key has several
+    consequences, e.g. you and other users of your organization
+    will no longer be able to read the results of tasks encrypted with current
+    key.
     """
     NodeContext.LOGGING_ENABLED = False
     if config:
@@ -804,7 +805,7 @@ def cli_node_create_private_key(
 @cli_node.command(name='clean')
 def cli_node_clean() -> None:
     """
-    This command erases temporary Docker volumes.
+    Erase temporary Docker volumes.
     """
     client = docker.from_env()
     check_docker_running()
@@ -837,12 +838,22 @@ def cli_node_clean() -> None:
 #   remove
 #
 @cli_node.command(name="remove")
-@click.option("-n", "--name", default=None)
+@click.option("-n", "--name", default=None, help="Configuration name")
 @click.option('-e', '--environment', default=N_ENV,
               help='configuration environment to use')
-@click.option('--system', 'system_folders', flag_value=True)
-@click.option('--user', 'system_folders', flag_value=False, default=N_FOL)
+@click.option('--system', 'system_folders', flag_value=True,
+              help="Search for configuration in system folders rather than "
+                   "user folders")
+@click.option('--user', 'system_folders', flag_value=False, default=N_FOL,
+              help="Search for configuration in user folders rather than "
+                   "system folders. This is the default")
 def cli_node_remove(name: str, environment: str, system_folders: bool) -> None:
+    """
+    Delete a node permanently.
+
+    Remove the configuration file, log file, and docker volumes attached to
+    the node.
+    """
     vnode_remove(name, environment, system_folders)
 
 
@@ -930,19 +941,16 @@ def vnode_remove(name: str, environment: str, system_folders: bool):
 #   version
 #
 @cli_node.command(name='version')
-@click.option("-n", "--name", default=None, help="configuration name")
-@click.option('--system', 'system_folders', flag_value=True)
-@click.option('--user', 'system_folders', flag_value=False, default=N_FOL)
+@click.option("-n", "--name", default=None, help="Configuration name")
+@click.option('--system', 'system_folders', flag_value=True,
+              help="Search for configuration in system folders rather than "
+                   "user folders")
+@click.option('--user', 'system_folders', flag_value=False, default=N_FOL,
+              help="Search for configuration in user folders rather than "
+                   "system folders. This is the default")
 def cli_node_version(name: str, system_folders: bool) -> None:
     """
-    Returns current version of vantage6 services installed.
-
-    Parameters
-    ----------
-    name : str
-        Configuration name
-    system_folders : bool
-        If True, use system folders, otherwise use user folders
+    Returns current version of a vantage6 node.
     """
     client = docker.from_env()
     check_docker_running()
@@ -973,27 +981,20 @@ def cli_node_version(name: str, system_folders: bool) -> None:
 #   set-api-key
 #
 @cli_node.command(name='set-api-key')
-@click.option("-n", "--name", default=None, help="configuration name")
+@click.option("-n", "--name", default=None, help="Configuration name")
 @click.option("--api-key", default=None, help="New API key")
 @click.option('-e', '--environment', default=N_ENV,
               help='configuration environment to use')
-@click.option('--system', 'system_folders', flag_value=True)
-@click.option('--user', 'system_folders', flag_value=False, default=N_FOL)
+@click.option('--system', 'system_folders', flag_value=True,
+              help="Search for configuration in system folders rather than "
+                   "user folders")
+@click.option('--user', 'system_folders', flag_value=False, default=N_FOL,
+              help="Search for configuration in user folders rather than "
+                   "system folders. This is the default")
 def cli_node_set_api_key(name: str, api_key: str, environment: str,
                          system_folders: bool) -> None:
     """
-    Put a new API key into the node configuration file
-
-    Parameters
-    ----------
-    name : str
-        Node configuration name
-    api_key : str
-        New API key
-    environment : str
-        DTAP environment
-    system_folders : bool
-        If True, use system folders, otherwise use user folders
+    Put a new API key into the node configuration file.
     """
     # select name and environment
     name, environment = _select_node(name, environment, system_folders)
diff --git a/vantage6/vantage6/cli/server.py b/vantage6/vantage6/cli/server.py
index fd8b9e86..e341679a 100644
--- a/vantage6/vantage6/cli/server.py
+++ b/vantage6/vantage6/cli/server.py
@@ -69,26 +69,18 @@ def click_insert_context(func: callable) -> callable:
     @click.option('-e', '--environment',
                   default=DEFAULT_SERVER_ENVIRONMENT,
                   help='Configuration environment to use')
-    @click.option('--system', 'system_folders', flag_value=True)
+    @click.option('--system', 'system_folders', flag_value=True,
+                  help='Use system folders instead of user folders. This is '
+                  'the default')
     @click.option('--user', 'system_folders', flag_value=False,
-                  default=DEFAULT_SERVER_SYSTEM_FOLDERS)
+                  default=DEFAULT_SERVER_SYSTEM_FOLDERS,
+                  help='Use user folders instead of system folders')
     @wraps(func)
     def func_with_context(name: str, config: str, environment: str,
                           system_folders: bool, *args, **kwargs) -> callable:
         """
         Decorator function that adds the context to the function.
 
-        Parameters
-        ----------
-        name : str
-            name of the configuration you want to use.
-        config : str
-            path to configuration file, overrides name
-        environment : str
-            DTAP environment to use
-        system_folders : bool
-            Wether to use system folders or not
-
         Returns
         -------
         Callable
@@ -122,15 +114,17 @@ def click_insert_context(func: callable) -> callable:
 
 @click.group(name='server')
 def cli_server() -> None:
-    """Subcommand `vserver`."""
+    """
+    The `vserver` commands allow you to manage your vantage6 server instances.
+    """
 
 
 #
 #   start
 #
 @cli_server.command(name='start')
-@click.option('--ip', default=None, help='ip address to listen on')
-@click.option('-p', '--port', default=None, type=int, help='port to listen on')
+@click.option('--ip', default=None, help='IP address to listen on')
+@click.option('-p', '--port', default=None, type=int, help='Port to listen on')
 @click.option('-i', '--image', default=None, help="Server Docker image to use")
 @click.option('--with-ui', 'start_ui', flag_value=True, default=False,
               help="Start the graphical User Interface as well")
@@ -139,39 +133,18 @@ def cli_server() -> None:
 @click.option('--rabbitmq-image', default=None,
               help="RabbitMQ docker image to use")
 @click.option('--keep/--auto-remove', default=False,
-              help="Keep image after finishing")
+              help="Keep image after server has stopped. Useful for debugging")
 @click.option('--mount-src', default='',
-              help="mount vantage6-master package source")
+              help="Override vantage6 source code in container with the source"
+              " code in this path")
 @click.option('--attach/--detach', default=False,
-              help="Attach server logs to the console after start")
+              help="Print server logs to the console after start")
 @click_insert_context
 def cli_server_start(ctx: ServerContext, ip: str, port: int, image: str,
                      start_ui: bool, ui_port: int, rabbitmq_image: str,
                      keep: bool, mount_src: str, attach: bool) -> None:
     """
-    Start the server in a Docker container.
-
-    Parameters
-    ----------
-    ctx : ServerContext
-        Server context object
-    ip : str
-        ip interface to listen on
-    port : int
-        port to listen on
-    image : str
-        Server Docker image to use
-    rabbitmq_image : str
-        RabbitMQ docker image to use
-    keep : bool
-        Wether to keep the image after the server has finished, useful for
-        debugging
-    mount_src : str
-        Path to the vantage6 package source, this overrides the source code in
-        the container. This is useful when developing and testing the server.
-    attach : bool
-        Wether to attach the server logs to the console after starting the
-        server.
+    Start the server.
     """
     vserver_start(ctx, ip, port, image, start_ui, ui_port, rabbitmq_image,
                   keep, mount_src, attach)
@@ -364,7 +337,7 @@ def vserver_start(ctx: ServerContext, ip: str, port: int, image: str,
 @cli_server.command(name='list')
 def cli_server_configuration_list() -> None:
     """
-    Print the available configurations.
+    Print the available server configurations.
     """
     client = docker.from_env()
     check_docker_running()
@@ -424,12 +397,7 @@ def cli_server_configuration_list() -> None:
 @click_insert_context
 def cli_server_files(ctx: ServerContext) -> None:
     """
-    List files locations of a server instance.
-
-    Parameters
-    ----------
-    ctx : Type[ServerContext]
-        Server context object
+    List files that belong to a particular server instance.
     """
     info(f"Configuration file = {ctx.config_file}")
     info(f"Log file           = {ctx.log_file}")
@@ -450,15 +418,6 @@ def cli_server_files(ctx: ServerContext) -> None:
 def cli_server_new(name: str, environment: str, system_folders: bool) -> None:
     """
     Create a new server configuration.
-
-    Parameters
-    ----------
-    name : str
-        name of the new configuration
-    environment : str
-        DTAP environment you want to configure
-    system_folders : bool
-        Wether to use system folders or not
     """
     name = prompt_config_name(name)
 
@@ -502,34 +461,23 @@ def cli_server_new(name: str, environment: str, system_folders: bool) -> None:
 # TODO this method has a lot of duplicated code from `start`
 @cli_server.command(name='import')
 @click.argument('file_', type=click.Path(exists=True))
-@click.option('--drop-all', is_flag=True, default=False)
+@click.option('--drop-all', is_flag=True, default=False,
+              help="Drop all existing data before importing")
 @click.option('-i', '--image', default=None, help="Node Docker image to use")
 @click.option('--mount-src', default='',
-              help="mount vantage6-master package source")
+              help="Override vantage6 source code in container with the source"
+                   " code in this path")
 @click.option('--keep/--auto-remove', default=False,
-              help="Keep image after finishing")
+              help="Keep image after finishing. Useful for debugging")
 @click_insert_context
 def cli_server_import(ctx: ServerContext, file_: str, drop_all: bool,
                       image: str, mount_src: str, keep: bool) -> None:
     """
-    Batch import organizations/collaborations/users and tasks.
+    Import vantage6 resources, such as organizations, collaborations, users and
+    tasks into a server instance.
 
-    Parameters
-    ----------
-    ctx : ServerContext
-        Server context object
-    file_ : str
-        Yaml file containing the vantage6 formatted data to import
-    drop_all : bool
-        Wether to drop all data before importing
-    image : str
-        Node Docker image to use which contains the import script
-    mount_src : str
-        Vantage6 source location, this will overwrite the source code in the
-        container. Useful for debugging/development.
-    keep : bool
-        Wether to keep the image after finishing/crashing. Useful for
-        debugging.
+    The FILE_ argument should be a path to a yaml file containing the vantage6
+    formatted data to import.
     """
     vserver_import(ctx, file_, drop_all, image, mount_src, keep)
 
@@ -658,13 +606,12 @@ def vserver_import(ctx: ServerContext, file_: str, drop_all: bool,
 @click_insert_context
 def cli_server_shell(ctx: ServerContext) -> None:
     """
-    Run an iPython shell in the server container and attach the ORM. This
-    can be used to modify the database.
+    Run an iPython shell within a running server. This can be used to modify
+    the database.
 
-    Parameters
-    ----------
-    ctx : Type[ServerContext]
-        Server context object
+    NOTE: using the shell is no longer recommended as there is no validation on
+    the changes that you make. It is better to use the Python client or a
+    graphical user interface instead.
     """
     docker_client = docker.from_env()
     # will print an error if not
@@ -700,17 +647,6 @@ def cli_server_stop(name: str, environment: str, system_folders: bool,
                     all_servers: bool):
     """
     Stop one or all running server(s).
-
-    Parameters
-    ----------
-    name : str
-        Name of the server to stop
-    environment : str
-        DTAP environment to use
-    system_folders : bool
-        Wether to use system folders or not
-    all_servers : bool
-        Wether to stop all servers or not
     """
     vserver_stop(name, environment, system_folders, all_servers)
 
@@ -775,14 +711,7 @@ def vserver_stop(name: str, environment: str, system_folders: bool,
               default=DEFAULT_SERVER_SYSTEM_FOLDERS)
 def cli_server_attach(name: str, system_folders: bool) -> None:
     """
-    Attach the logs from the docker container to the terminal.
-
-    Parameters
-    ----------
-    name : str
-        Configuration name
-    system_folders : bool
-        Wether to use system folders or not
+    Show the server logs in the current console.
     """
     client = docker.from_env()
     check_docker_running()
@@ -818,20 +747,13 @@ def cli_server_attach(name: str, system_folders: bool) -> None:
 #   version
 #
 @cli_server.command(name='version')
-@click.option("-n", "--name", default=None, help="configuration name")
+@click.option("-n", "--name", default=None, help="Configuration name")
 @click.option('--system', 'system_folders', flag_value=True)
 @click.option('--user', 'system_folders', flag_value=False,
               default=DEFAULT_SERVER_SYSTEM_FOLDERS)
 def cli_server_version(name: str, system_folders: bool) -> None:
     """
-    Print the version of the vantage6 services.
-
-    Parameters
-    ----------
-    name : str
-        Name of the server to inspect
-    system_folders : bool
-        Wether to use system folders or not
+    Print the version of the vantage6 server.
     """
     client = docker.from_env()
     check_docker_running()