diff --git a/changelog/829.doc.rst b/changelog/829.doc.rst
new file mode 100644
index 00000000..0243fb58
--- /dev/null
+++ b/changelog/829.doc.rst
@@ -0,0 +1,1 @@
+document command line interface under the config section `cli <https://tox.readthedocs.io/en/latest/config.html?highlight=cli#cli>`_ - by :user:`gaborbernat`
diff --git a/doc/_static/custom.css b/docs/_static/custom.css
similarity index 100%
rename from doc/_static/custom.css
rename to docs/_static/custom.css
diff --git a/doc/_static/img/tox.png b/docs/_static/img/tox.png
similarity index 100%
rename from doc/_static/img/tox.png
rename to docs/_static/img/tox.png
diff --git a/doc/_static/img/tox.svg b/docs/_static/img/tox.svg
similarity index 100%
rename from doc/_static/img/tox.svg
rename to docs/_static/img/tox.svg
diff --git a/doc/_static/img/toxfavi.ico b/docs/_static/img/toxfavi.ico
similarity index 100%
rename from doc/_static/img/toxfavi.ico
rename to docs/_static/img/toxfavi.ico
diff --git a/doc/_templates/localtoc.html b/docs/_templates/localtoc.html
similarity index 100%
rename from doc/_templates/localtoc.html
rename to docs/_templates/localtoc.html
diff --git a/doc/announce/changelog-only.rst b/docs/announce/changelog-only.rst
similarity index 100%
rename from doc/announce/changelog-only.rst
rename to docs/announce/changelog-only.rst
diff --git a/doc/changelog.rst b/docs/changelog.rst
similarity index 100%
rename from doc/changelog.rst
rename to docs/changelog.rst
diff --git a/doc/conf.py b/docs/conf.py
similarity index 99%
rename from doc/conf.py
rename to docs/conf.py
index 983b2402..f2a94494 100644
--- a/doc/conf.py
+++ b/docs/conf.py
@@ -13,6 +13,7 @@ extensions = [
     "sphinx.ext.extlinks",
     "sphinx.ext.intersphinx",
     "sphinx.ext.viewcode",
+    "sphinxcontrib.autoprogram",
 ]
 ROOT_SRC_TREE_DIR = Path(__file__).parents[1]
 
diff --git a/doc/config.rst b/docs/config.rst
similarity index 99%
rename from doc/config.rst
rename to docs/config.rst
index ed88bd11..72028066 100644
--- a/doc/config.rst
+++ b/docs/config.rst
@@ -869,4 +869,10 @@ Other Rules and notes
   it will be considered as relative to the ``toxinidir``, the directory
   where the configuration file resides.
 
+cli
+===
+
+.. autoprogram:: tox.cli:cli
+   :prog: tox
+
 .. include:: links.rst
diff --git a/doc/developers.rst b/docs/developers.rst
similarity index 93%
rename from doc/developers.rst
rename to docs/developers.rst
index e41697e7..7592e8e2 100644
--- a/doc/developers.rst
+++ b/docs/developers.rst
@@ -35,7 +35,7 @@ create separate folders for each Python version.
 
 For tox to find them you'll need to:
 
-- add the main installation version to the systems ``PATH`` variable (e.g. ``D:\Anaconda`` - you can use `patheditor2`_)
+- add the main installation version to the systems ``PATH`` variable (e.g. ``D:\Anaconda`` - you can use `WindowsPathEditor`_)
 - for other versions create a BAT scripts into the main installation folder to delegate the call to the correct Python
   interpreter:
 
@@ -45,7 +45,7 @@ For tox to find them you'll need to:
      REM python2.7.bat
      @D:\Anaconda\pkgs\python-2.7.13-1\python.exe %*
 
-.. _patheditor2: https://patheditor2.codeplex.com/
+.. _WindowsPathEditor: https://rix0rrr.github.io/WindowsPathEditor/
 
 This way you can also directly call from cli the matching Python version  if you need to(similarly to UNIX systems), for
 example:
diff --git a/doc/drafts/extend-envs-and-packagebuilds.md b/docs/drafts/extend-envs-and-packagebuilds.md
similarity index 100%
rename from doc/drafts/extend-envs-and-packagebuilds.md
rename to docs/drafts/extend-envs-and-packagebuilds.md
diff --git a/doc/drafts/tox_conda_notes_niccodemus.md b/docs/drafts/tox_conda_notes_niccodemus.md
similarity index 100%
rename from doc/drafts/tox_conda_notes_niccodemus.md
rename to docs/drafts/tox_conda_notes_niccodemus.md
diff --git a/doc/example/basic.rst b/docs/example/basic.rst
similarity index 100%
rename from doc/example/basic.rst
rename to docs/example/basic.rst
diff --git a/doc/example/devenv.rst b/docs/example/devenv.rst
similarity index 100%
rename from doc/example/devenv.rst
rename to docs/example/devenv.rst
diff --git a/doc/example/documentation.rst b/docs/example/documentation.rst
similarity index 100%
rename from doc/example/documentation.rst
rename to docs/example/documentation.rst
diff --git a/doc/example/general.rst b/docs/example/general.rst
similarity index 100%
rename from doc/example/general.rst
rename to docs/example/general.rst
diff --git a/doc/example/jenkins.rst b/docs/example/jenkins.rst
similarity index 100%
rename from doc/example/jenkins.rst
rename to docs/example/jenkins.rst
diff --git a/doc/example/nose.rst b/docs/example/nose.rst
similarity index 100%
rename from doc/example/nose.rst
rename to docs/example/nose.rst
diff --git a/doc/example/package.rst b/docs/example/package.rst
similarity index 100%
rename from doc/example/package.rst
rename to docs/example/package.rst
diff --git a/doc/example/platform.rst b/docs/example/platform.rst
similarity index 100%
rename from doc/example/platform.rst
rename to docs/example/platform.rst
diff --git a/doc/example/pytest.rst b/docs/example/pytest.rst
similarity index 100%
rename from doc/example/pytest.rst
rename to docs/example/pytest.rst
diff --git a/doc/example/result.rst b/docs/example/result.rst
similarity index 100%
rename from doc/example/result.rst
rename to docs/example/result.rst
diff --git a/doc/example/unittest.rst b/docs/example/unittest.rst
similarity index 100%
rename from doc/example/unittest.rst
rename to docs/example/unittest.rst
diff --git a/doc/examples.rst b/docs/examples.rst
similarity index 100%
rename from doc/examples.rst
rename to docs/examples.rst
diff --git a/doc/img/tox_flow.png b/docs/img/tox_flow.png
similarity index 100%
rename from doc/img/tox_flow.png
rename to docs/img/tox_flow.png
diff --git a/doc/index.rst b/docs/index.rst
similarity index 99%
rename from doc/index.rst
rename to docs/index.rst
index 9af287ce..5bb418ba 100644
--- a/doc/index.rst
+++ b/docs/index.rst
@@ -160,7 +160,6 @@ Current features
 
 * supports :ref:`using different / multiple PyPI index servers  <multiindex>`
 
-
 .. toctree::
    :hidden:
 
diff --git a/doc/install.rst b/docs/install.rst
similarity index 100%
rename from doc/install.rst
rename to docs/install.rst
diff --git a/doc/links.rst b/docs/links.rst
similarity index 95%
rename from doc/links.rst
rename to docs/links.rst
index df7e58f2..97789f41 100644
--- a/doc/links.rst
+++ b/docs/links.rst
@@ -20,5 +20,5 @@
 .. _mock: https://pypi.org/project/mock/
 .. _pypy: https://pypy.org
 
-.. _`Python Packaging Guide`: https://packaging.python.org/tutorials/distributing-packages/#packaging-your-project
+.. _`Python Packaging Guide`: https://packaging.python.org/tutorials/packaging-projects/
 .. _`tox.ini`: :doc:configfile
diff --git a/doc/plugins.rst b/docs/plugins.rst
similarity index 100%
rename from doc/plugins.rst
rename to docs/plugins.rst
diff --git a/doc/support.rst b/docs/support.rst
similarity index 100%
rename from doc/support.rst
rename to docs/support.rst
diff --git a/setup.py b/setup.py
index 06dd61d9..0b62d6a3 100644
--- a/setup.py
+++ b/setup.py
@@ -70,9 +70,6 @@ def main():
             "console_scripts": ["tox=tox:cmdline", "tox-quickstart=tox._quickstart:main"]
         },
         python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
-        setup_requires=[
-            "setuptools-scm"
-        ],  # needed for https://github.com/pypa/readme_renderer/issues/118
         install_requires=[
             "setuptools  >= 30.0.0",
             "pluggy >= 0.3.0, <1",
@@ -95,6 +92,7 @@ def main():
                 "sphinx >= 1.8.0, < 2",
                 "towncrier >= 18.5.0",
                 "pygments-github-lexers >= 0.0.5",
+                "sphinxcontrib-autoprogram >= 0.1.5",
             ],
         },
         classifiers=[
diff --git a/src/tox/cli.py b/src/tox/cli.py
new file mode 100644
index 00000000..2fe755cf
--- /dev/null
+++ b/src/tox/cli.py
@@ -0,0 +1,11 @@
+from tox.config import Parser, get_plugin_manager
+
+
+def cli_parser():
+    parser = Parser()
+    pm = get_plugin_manager(tuple())
+    pm.hook.tox_addoption(parser=parser)
+    return parser.argparser
+
+
+cli = cli_parser()
diff --git a/src/tox/config.py b/src/tox/config.py
index 28173a84..32304299 100755
--- a/src/tox/config.py
+++ b/src/tox/config.py
@@ -343,7 +343,6 @@ class SetenvDict(object):
 
 @tox.hookimpl
 def tox_addoption(parser):
-    # formatter_class=argparse.ArgumentDefaultsHelpFormatter)
     parser.add_argument(
         "--version",
         action="store_true",
diff --git a/tox.ini b/tox.ini
index 3168727e..b975d0af 100644
--- a/tox.ini
+++ b/tox.ini
@@ -34,16 +34,18 @@ commands = pytest {posargs:\
 description = invoke sphinx-build to build the HTML docs
 basepython = python3.7
 extras = docs
-commands = sphinx-build -d "{toxworkdir}/docs_doctree" doc "{toxworkdir}/docs_out" --color -W -bhtml {posargs}
+commands = sphinx-build -d "{toxworkdir}/docs_doctree" docs "{toxworkdir}/docs_out" --color -W -bhtml {posargs}
            python -c 'import pathlib; print("documentation available under file://\{0\}".format(pathlib.Path(r"{toxworkdir}") / "docs_out" / "index.html"))'
 
 [testenv:package_description]
 description = check that the long description is valid
 basepython = python3.7
-deps = readme-renderer >= 21.0
+deps = twine >= 1.12.1
+       pip >= 18.0.0
 skip_install = true
 extras =
-commands = python setup.py check -r -s
+commands = pip wheel -w {envtmpdir}/build --no-deps .
+           twine check {envtmpdir}/build/*
 
 [testenv:fix_lint]
 description = format the code base to adhere to our styles, and complain about what we cannot do automatically

move to twine check
see https://github.com/pypa/readme_renderer/issues/118
diff --git a/tests/unit/test_docs.py b/tests/unit/test_docs.py
index 4d19e8b3..d62fa784 100644
--- a/tests/unit/test_docs.py
+++ b/tests/unit/test_docs.py
@@ -20,7 +20,7 @@ INI_BLOCK_RE = re.compile(
 
 RST_FILES = []
 TOX_ROOT = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
-for root, _, filenames in os.walk(os.path.join(TOX_ROOT, "doc")):
+for root, _, filenames in os.walk(os.path.join(TOX_ROOT, "docs")):
     for filename in filenames:
         if filename.endswith(".rst"):
             RST_FILES.append(os.path.join(root, filename))

pip install -e .[dev]
parse_log_pytest
pytest
pytest pytest-cov pytest-xdist pytest-mock pytest-timeout pytest-randomly
3.6
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
attrs @ file:///opt/conda/conda-bld/attrs_1642510447205/work
certifi==2021.5.30
coverage==6.2
distlib==0.3.9
execnet==1.9.0
filelock==3.4.1
importlib-metadata==4.8.3
importlib-resources==5.4.0
iniconfig @ file:///home/linux1/recipes/ci/iniconfig_1610983019677/work
more-itertools @ file:///tmp/build/80754af9/more-itertools_1637733554872/work
packaging @ file:///tmp/build/80754af9/packaging_1637314298585/work
platformdirs==2.4.0
pluggy @ file:///tmp/build/80754af9/pluggy_1615976315926/work
py @ file:///opt/conda/conda-bld/py_1644396412707/work
pyparsing @ file:///tmp/build/80754af9/pyparsing_1635766073266/work
pytest==6.2.4
pytest-cov==4.0.0
pytest-mock==3.6.1
pytest-randomly==3.10.3
pytest-timeout==2.1.0
pytest-xdist==3.0.2
six==1.17.0
toml @ file:///tmp/build/80754af9/toml_1616166611790/work
tomli==1.2.3
-e git+https://github.com/tox-dev/tox.git@77c176805975d3ef94728dd87c69f6b1dfa780bc#egg=tox
typing_extensions @ file:///opt/conda/conda-bld/typing_extensions_1647553014482/work
virtualenv==20.17.1
zipp @ file:///tmp/build/80754af9/zipp_1633618647012/work

name: tox
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
  - attrs=21.4.0=pyhd3eb1b0_0
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2021.5.30=py36h06a4308_0
  - importlib_metadata=4.8.1=hd3eb1b0_0
  - iniconfig=1.1.1=pyhd3eb1b0_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.3=he6710b0_2
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - more-itertools=8.12.0=pyhd3eb1b0_0
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - packaging=21.3=pyhd3eb1b0_0
  - pip=21.2.2=py36h06a4308_0
  - pluggy=0.13.1=py36h06a4308_0
  - py=1.11.0=pyhd3eb1b0_0
  - pyparsing=3.0.4=pyhd3eb1b0_0
  - pytest=6.2.4=py36h06a4308_2
  - python=3.6.13=h12debd9_1
  - readline=8.2=h5eee18b_0
  - setuptools=58.0.4=py36h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - toml=0.10.2=pyhd3eb1b0_0
  - typing_extensions=4.1.1=pyh06a4308_0
  - wheel=0.37.1=pyhd3eb1b0_0
  - xz=5.6.4=h5eee18b_1
  - zipp=3.6.0=pyhd3eb1b0_0
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - coverage==6.2
      - distlib==0.3.9
      - execnet==1.9.0
      - filelock==3.4.1
      - importlib-metadata==4.8.3
      - importlib-resources==5.4.0
      - platformdirs==2.4.0
      - pytest-cov==4.0.0
      - pytest-mock==3.6.1
      - pytest-randomly==3.10.3
      - pytest-timeout==2.1.0
      - pytest-xdist==3.0.2
      - six==1.17.0
      - tomli==1.2.3
      - virtualenv==20.17.1
prefix: /opt/conda/envs/tox

tests/unit/test_docs.py::test_all_rst_ini_blocks_parse[/tox/docs/index.rst] tests/unit/test_docs.py::test_all_rst_ini_blocks_parse[/tox/docs/example/result.rst] tests/unit/test_docs.py::test_all_rst_ini_blocks_parse[/tox/docs/changelog.rst] tests/unit/test_docs.py::test_all_rst_ini_blocks_parse[/tox/docs/example/nose.rst] tests/unit/test_docs.py::test_all_rst_ini_blocks_parse[/tox/docs/example/package.rst] tests/unit/test_docs.py::test_all_rst_ini_blocks_parse[/tox/docs/config.rst] tests/unit/test_docs.py::test_all_rst_ini_blocks_parse[/tox/docs/plugins.rst] tests/unit/test_docs.py::test_all_rst_ini_blocks_parse[/tox/docs/example/general.rst] tests/unit/test_docs.py::test_all_rst_ini_blocks_parse[/tox/docs/install.rst] tests/unit/test_docs.py::test_all_rst_ini_blocks_parse[/tox/docs/examples.rst] tests/unit/test_docs.py::test_all_rst_ini_blocks_parse[/tox/docs/example/documentation.rst] tests/unit/test_docs.py::test_all_rst_ini_blocks_parse[/tox/docs/example/basic.rst] tests/unit/test_docs.py::test_all_rst_ini_blocks_parse[/tox/docs/links.rst] tests/unit/test_docs.py::test_all_rst_ini_blocks_parse[/tox/docs/example/platform.rst] tests/unit/test_docs.py::test_all_rst_ini_blocks_parse[/tox/docs/example/devenv.rst] tests/unit/test_docs.py::test_all_rst_ini_blocks_parse[/tox/docs/developers.rst] tests/unit/test_docs.py::test_all_rst_ini_blocks_parse[/tox/docs/example/unittest.rst] tests/unit/test_docs.py::test_all_rst_ini_blocks_parse[/tox/docs/example/pytest.rst] tests/unit/test_docs.py::test_some_files_exist tests/unit/test_docs.py::test_all_rst_ini_blocks_parse[/tox/docs/support.rst] tests/unit/test_docs.py::test_all_rst_ini_blocks_parse[/tox/docs/example/jenkins.rst] tests/unit/test_docs.py::test_all_rst_ini_blocks_parse[/tox/docs/announce/changelog-only.rst]
doc/developers.rst doc/announce/changelog-only.rst doc/links.rst doc/index.rst doc/drafts/extend-envs-and-packagebuilds.md doc/example/documentation.rst doc/_static/custom.css doc/examples.rst doc/conf.py doc/example/unittest.rst tox.ini doc/drafts/tox_conda_notes_niccodemus.md doc/img/tox_flow.png doc/install.rst doc/example/basic.rst doc/support.rst doc/example/package.rst doc/plugins.rst setup.py doc/example/jenkins.rst doc/_static/img/tox.png doc/changelog.rst doc/example/result.rst src/tox/cli.py doc/example/platform.rst doc/example/devenv.rst src/tox/config.py doc/config.rst doc/example/nose.rst doc/example/general.rst doc/example/pytest.rst doc/_templates/localtoc.html changelog/829.doc.rst doc/_static/img/tox.svg doc/_static/img/toxfavi.ico
docs/example/general.rst docs/_static/img/tox.png docs/examples.rst docs/install.rst docs/support.rst docs/drafts/extend-envs-and-packagebuilds.md docs/example/pytest.rst docs/index.rst docs/conf.py docs/example/documentation.rst docs/config.rst docs/img/tox_flow.png docs/plugins.rst docs/example/package.rst tox.ini docs/links.rst docs/example/result.rst docs/_static/custom.css docs/_static/img/toxfavi.ico docs/_static/img/tox.svg docs/example/basic.rst docs/example/devenv.rst setup.py docs/example/platform.rst docs/example/jenkins.rst src/tox/cli.py docs/example/unittest.rst docs/developers.rst docs/drafts/tox_conda_notes_niccodemus.md src/tox/config.py docs/example/nose.rst docs/_templates/localtoc.html docs/changelog.rst changelog/829.doc.rst docs/announce/changelog-only.rst