diff --git a/multiconfparse/__init__.py b/multiconfparse/__init__.py
index 12e455d..0d0f524 100644
--- a/multiconfparse/__init__.py
+++ b/multiconfparse/__init__.py
@@ -542,9 +542,12 @@ class ArgparseSource(Source):
         def __init__(self, option_strings, dest, action_obj, priority):
             self._action = action_obj
             self._priority = priority
+            help = action_obj.help
+            if help is SUPPRESS:
+                help = argparse.SUPPRESS
             super().__init__(
                 option_strings,
-                help=action_obj.help,
+                help=help,
                 default=[],
                 dest=dest,
                 nargs=action_obj.nargs,
@@ -1027,8 +1030,8 @@ class Action(abc.ABC):
     def _set_name(self, name):
         if not self._is_python_identifier(name):
             raise ValueError(
-                f"invalid config name '{name}', "
-                "must be a valid Python identifier"
+                f"invalid config name '{name}', must be a valid Python"
+                " identifier"
             )
         self.name = name
 
@@ -1037,7 +1040,7 @@ class Action(abc.ABC):
             dest = name
         if not self._is_python_identifier(dest):
             raise ValueError(
-                f"invalid dest '{dest}', " "must be a valid Python identifier"
+                f"invalid dest '{dest}', must be a valid Python identifier"
             )
         self.dest = dest
 
@@ -1146,7 +1149,7 @@ class StoreAction(Action):
         if const is not None and self.nargs != "?":
             raise ValueError(
                 f"const cannot be supplied to the {self.action_name} action "
-                f'unless nargs is "?"'
+                'unless nargs is "?"'
             )
         self.const = const
 
@@ -1396,7 +1399,7 @@ class AppendAction(Action):
         if const is not None and self.nargs != "?":
             raise ValueError(
                 f"const cannot be supplied to the {self.action_name} action "
-                f'unless nargs is "?"'
+                'unless nargs is "?"'
             )
         self.const = const
 
@@ -1678,7 +1681,9 @@ class ConfigParser:
           config item will be looked for by all sources added to the
           :class:`ConfigParser`.
 
-        * ``help``: the help text/description for the config item.
+        * ``help``: the help text/description for the config item. Set this to
+          :data:`SUPPRESS` to prevent this config item from being mentioned in
+          generated documentation.
 
         The other arguments are all keyword arguments and are passed on to the
         class that implements the config items action and may have different

Allow `SUPPRESS` value for `help` argument
diff --git a/tests/test_multiconfparse.py b/tests/test_multiconfparse.py
index 65b03e4..f58d3f4 100644
--- a/tests/test_multiconfparse.py
+++ b/tests/test_multiconfparse.py
@@ -161,7 +161,7 @@ class UcStoreAction(mcp.Action):
         if const is not None and self.nargs != "?":
             raise ValueError(
                 f"const cannot be supplied to the {self.action} action "
-                f'unless nargs is "?"'
+                'unless nargs is "?"'
             )
         self.const = const
 
@@ -177,8 +177,7 @@ class UcStoreAction(mcp.Action):
 
 class RaisingArgumentParser(argparse.ArgumentParser):
     def exit(self, status=0, message=None):
-        if status:
-            raise ArgparseError(message)
+        raise ArgparseError(message)
 
 
 class JsonEncoderWithPath(json.JSONEncoder):
@@ -609,6 +608,24 @@ def test_dest_with_simple_argparse():
     assert values == expected
 
 
+def test_suppress_help(capfd):
+    mcp_parser = mcp.ConfigParser()
+    mcp_parser.add_config("config_item1")
+    mcp_parser.add_config("config_item2", help=mcp.SUPPRESS)
+    mcp_parser.add_config("config_item3")
+    mcp_parser.add_source(
+        "simple_argparse", argument_parser_class=RaisingArgumentParser,
+    )
+    argv = "prog --help".split()
+    with utm.patch.object(sys, "argv", argv):
+        with pytest.raises(ArgparseError):
+            mcp_parser.parse_config()
+        out, err = capfd.readouterr()
+        assert "--config-item1" in out
+        assert "--config-item2" not in out
+        assert "--config-item3" in out
+
+
 test_specs = []
 
 nargs_test_specs = []
@@ -800,7 +817,7 @@ for action, nargs in itertools.product(
             id=(
                 f"nargs_with_default_and_global_default, action={action}, "
                 f"nargs={nargs}, args=yes_{nargs}, type={type.__name__},"
-                f"default=yes, global_default=yes"
+                "default=yes, global_default=yes"
             ),
             config_parser_args={"config_default": global_default_value},
             config_args={
@@ -820,7 +837,7 @@ for action, nargs in itertools.product(
             id=(
                 f"nargs_with_default_and_global_default, action={action}, "
                 f"nargs={nargs}, args=no, type={type.__name__}, "
-                f"default=yes, global_default=yes"
+                "default=yes, global_default=yes"
             ),
             config_parser_args={"config_default": global_default_value},
             config_args={
@@ -1102,7 +1119,7 @@ for action, nargs, const in itertools.chain(
         Spec(
             id=(
                 f"suppress, action={action}, nargs={nargs}, args=no, "
-                f"default=suppress"
+                "default=suppress"
             ),
             config_args={
                 "action": action,
@@ -1119,7 +1136,7 @@ for action, nargs, const in itertools.chain(
         Spec(
             id=(
                 f"suppress, action={action}, nargs={nargs}, args=no, "
-                f"default=none, config_default=suppress"
+                "default=none, config_default=suppress"
             ),
             config_args={"action": action, **extra_config_args},
             config_parser_args={"config_default": mcp.SUPPRESS},

pip install -e .
parse_log_pytest
requirements.txt
pytest
3.8
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
exceptiongroup==1.2.2
iniconfig==2.1.0
-e git+https://github.com/jonathanhaigh/multiconfparse.git@ba133027d4137490b83bf700438d53f3cadf53bd#egg=multiconfparse
packaging==24.2
pluggy==1.5.0
pytest==8.3.5
tomli==2.2.1

name: multiconfparse
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - pip=24.2=py38h06a4308_0
  - python=3.8.20=he870216_0
  - readline=8.2=h5eee18b_0
  - setuptools=75.1.0=py38h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.44.0=py38h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - exceptiongroup==1.2.2
      - iniconfig==2.1.0
      - packaging==24.2
      - pluggy==1.5.0
      - pytest==8.3.5
      - tomli==2.2.1
prefix: /opt/conda/envs/multiconfparse

tests/test_multiconfparse.py::test_suppress_help
tests/test_multiconfparse.py::test_partially_parse_config tests/test_multiconfparse.py::test_types tests/test_multiconfparse.py::test_file_opening tests/test_multiconfparse.py::test_valid_name[c1] tests/test_multiconfparse.py::test_valid_name[c_] tests/test_multiconfparse.py::test_valid_name[C] tests/test_multiconfparse.py::test_valid_name[_c] tests/test_multiconfparse.py::test_invalid_name[-c] tests/test_multiconfparse.py::test_invalid_name[c-] tests/test_multiconfparse.py::test_invalid_name[1c] tests/test_multiconfparse.py::test_validate_type tests/test_multiconfparse.py::test_custom_action tests/test_multiconfparse.py::test_source_as_class tests/test_multiconfparse.py::test_count tests/test_multiconfparse.py::test_count_with_default tests/test_multiconfparse.py::test_count_missing tests/test_multiconfparse.py::test_count_with_required tests/test_multiconfparse.py::test_count_missing_with_default tests/test_multiconfparse.py::test_priorities tests/test_multiconfparse.py::test_priorities_with_default tests/test_multiconfparse.py::test_priorities_with_multiple_values_from_source tests/test_multiconfparse.py::test_priorities_stable_sort tests/test_multiconfparse.py::test_dict_source_none_values tests/test_multiconfparse.py::test_env_source_none_values tests/test_multiconfparse.py::test_json_source_none_values tests/test_multiconfparse.py::test_config_name_clash tests/test_multiconfparse.py::test_dest_with_store tests/test_multiconfparse.py::test_dest_with_store_const tests/test_multiconfparse.py::test_dest_with_count tests/test_multiconfparse.py::test_dest_with_append tests/test_multiconfparse.py::test_dest_with_extend tests/test_multiconfparse.py::test_dest_with_simple_argparse tests/test_multiconfparse.py::test_spec_with_dict[nargs_with_valid_input, tests/test_multiconfparse.py::test_spec_with_dict[nargs_with_invalid_input, tests/test_multiconfparse.py::test_spec_with_dict[nargs_with_invalid_const, tests/test_multiconfparse.py::test_spec_with_dict[nargs_with_default, tests/test_multiconfparse.py::test_spec_with_dict[nargs_with_global_default, tests/test_multiconfparse.py::test_spec_with_dict[nargs_with_default_and_global_default, tests/test_multiconfparse.py::test_spec_with_dict[nargs_0_or_1_with_const, tests/test_multiconfparse.py::test_spec_with_dict[store_const, tests/test_multiconfparse.py::test_spec_with_dict[store_true, tests/test_multiconfparse.py::test_spec_with_dict[store_false, tests/test_multiconfparse.py::test_spec_with_dict[suppress, tests/test_multiconfparse.py::test_spec_with_dict[required, tests/test_multiconfparse.py::test_spec_with_dict[choices, tests/test_multiconfparse.py::test_spec_with_env[nargs_with_valid_input, tests/test_multiconfparse.py::test_spec_with_env[nargs_with_invalid_input, tests/test_multiconfparse.py::test_spec_with_env[nargs_with_invalid_const, tests/test_multiconfparse.py::test_spec_with_env[nargs_with_default, tests/test_multiconfparse.py::test_spec_with_env[nargs_with_global_default, tests/test_multiconfparse.py::test_spec_with_env[nargs_with_default_and_global_default, tests/test_multiconfparse.py::test_spec_with_env[nargs_0_or_1_with_const, tests/test_multiconfparse.py::test_spec_with_env[store_const, tests/test_multiconfparse.py::test_spec_with_env[store_true, tests/test_multiconfparse.py::test_spec_with_env[store_false, tests/test_multiconfparse.py::test_spec_with_env[suppress, tests/test_multiconfparse.py::test_spec_with_env[required, tests/test_multiconfparse.py::test_spec_with_env[choices, tests/test_multiconfparse.py::test_spec_with_json[nargs_with_valid_input, tests/test_multiconfparse.py::test_spec_with_json[nargs_with_invalid_input, tests/test_multiconfparse.py::test_spec_with_json[nargs_with_invalid_const, tests/test_multiconfparse.py::test_spec_with_json[nargs_with_default, tests/test_multiconfparse.py::test_spec_with_json[nargs_with_global_default, tests/test_multiconfparse.py::test_spec_with_json[nargs_with_default_and_global_default, tests/test_multiconfparse.py::test_spec_with_json[nargs_0_or_1_with_const, tests/test_multiconfparse.py::test_spec_with_json[store_const, tests/test_multiconfparse.py::test_spec_with_json[store_true, tests/test_multiconfparse.py::test_spec_with_json[store_false, tests/test_multiconfparse.py::test_spec_with_json[suppress, tests/test_multiconfparse.py::test_spec_with_json[required, tests/test_multiconfparse.py::test_spec_with_json[choices, tests/test_multiconfparse.py::test_spec_with_argparse[nargs_with_valid_input, tests/test_multiconfparse.py::test_spec_with_argparse[nargs_with_invalid_input, tests/test_multiconfparse.py::test_spec_with_argparse[nargs_with_invalid_const, tests/test_multiconfparse.py::test_spec_with_argparse[nargs_with_default, tests/test_multiconfparse.py::test_spec_with_argparse[nargs_with_global_default, tests/test_multiconfparse.py::test_spec_with_argparse[nargs_with_default_and_global_default, tests/test_multiconfparse.py::test_spec_with_argparse[nargs_0_or_1_with_const, tests/test_multiconfparse.py::test_spec_with_argparse[store_const, tests/test_multiconfparse.py::test_spec_with_argparse[store_true, tests/test_multiconfparse.py::test_spec_with_argparse[store_false, tests/test_multiconfparse.py::test_spec_with_argparse[suppress, tests/test_multiconfparse.py::test_spec_with_argparse[required, tests/test_multiconfparse.py::test_spec_with_argparse[choices, tests/test_multiconfparse.py::test_spec_against_argparse[nargs_with_valid_input, tests/test_multiconfparse.py::test_spec_against_argparse[nargs_with_invalid_input, tests/test_multiconfparse.py::test_spec_against_argparse[nargs_with_invalid_const, tests/test_multiconfparse.py::test_spec_against_argparse[nargs_with_default, tests/test_multiconfparse.py::test_spec_against_argparse[nargs_with_global_default, tests/test_multiconfparse.py::test_spec_against_argparse[nargs_with_default_and_global_default, tests/test_multiconfparse.py::test_spec_against_argparse[nargs_0_or_1_with_const, tests/test_multiconfparse.py::test_spec_against_argparse[store_const, tests/test_multiconfparse.py::test_spec_against_argparse[store_true, tests/test_multiconfparse.py::test_spec_against_argparse[store_false, tests/test_multiconfparse.py::test_spec_against_argparse[suppress, tests/test_multiconfparse.py::test_spec_against_argparse[required, tests/test_multiconfparse.py::test_spec_against_argparse[choices, tests/test_multiconfparse.py::test_simple_argparse_source_with_config_added_after_source tests/test_multiconfparse.py::test_simple_argparse_source_with_prog tests/test_multiconfparse.py::test_simple_argparse_source_with_count tests/test_multiconfparse.py::test_simple_argparse_source_with_count_with_default tests/test_multiconfparse.py::test_simple_argparse_source_with_count_missing tests/test_multiconfparse.py::test_simple_argparse_source_with_count_missing_with_default tests/test_multiconfparse.py::test_json_source_with_config_added_after_source tests/test_multiconfparse.py::test_multiple_sources tests/test_multiconfparse.py::test_include_exclude tests/test_multiconfparse.py::test_getattr_or_none tests/test_multiconfparse.py::test_has_nonnone_attr
multiconfparse/__init__.py
multiconfparse/__init__.py