mitzkia: Do not know if the newline at the end of the all_repos/list_repos.py is problematic or not...
mitzkia: Ok, I will fix the new-lines, I will check pre-commit in my local environment.
asottile: `pre-commit run --all-files` locally should fix it up :+1: 
diff --git a/all_repos/list_repos.py b/all_repos/list_repos.py
index 470c4f7..f365192 100644
--- a/all_repos/list_repos.py
+++ b/all_repos/list_repos.py
@@ -1,4 +1,5 @@
 import argparse
+import os
 from typing import Optional
 from typing import Sequence
 
@@ -12,11 +13,15 @@ def main(argv: Optional[Sequence[str]] = None) -> int:
         usage='all-repos-list-repos [options]',
     )
     cli.add_common_args(parser)
+    cli.add_output_paths_arg(parser)
     args = parser.parse_args(argv)
 
     config = load_config(args.config_filename)
     for repo in config.get_cloned_repos():
-        print(repo)
+        if args.output_paths:
+            print(os.path.join(config.output_dir, repo))
+        else:
+            print(repo)
     return 0
 
 

`all-repos-list-repos`: add `--output-paths`
The current output is a little clunky when trying to chain with xargs:

```console
$ all-repos-list-repos | tail -5
Yelp/docker-push-latest-if-changed
Yelp/requirements-tools
Yelp/venv-update
Yelp/wsgi-mod-rpaf
Yelp/yelp_cheetah
```

For instance:

```console
$ all-repos-list-repos | tail -5 | xargs --replace bash -c 'echo -n {}" " && git -C repos-asottile/{} rev-parse HEAD'
Yelp/docker-push-latest-if-changed 1d481bbbb30f1aa164bd965ba33ef61cbb11981c
Yelp/requirements-tools f94e0eb774bb4e37a58e98d5adbbe65a5520b8ef
Yelp/venv-update 02860446c983f8df10db221d66e22a7a912a550c
Yelp/wsgi-mod-rpaf d28a42fff8c77e5480bd6c166e4e53c2d308e81b
Yelp/yelp_cheetah 61ff00fd8944f19bc81b3f03801c322fc339ffeb
```

It would be nicer if there were this output:

```console
$ all-repos-list-repos --output-paths | tail -5
repos-asottile/Yelp/docker-push-latest-if-changed
repos-asottile/Yelp/requirements-tools
repos-asottile/Yelp/venv-update
repos-asottile/Yelp/wsgi-mod-rpaf
repos-asottile/Yelp/yelp_cheetah
```
diff --git a/tests/list_repos_test.py b/tests/list_repos_test.py
index bb97023..87d5a81 100644
--- a/tests/list_repos_test.py
+++ b/tests/list_repos_test.py
@@ -5,3 +5,15 @@ def test_list_repos_main(file_config_files, capsys):
     assert not main(('--config-filename', str(file_config_files.cfg)))
     out, _ = capsys.readouterr()
     assert out == 'repo1\nrepo2\n'
+
+
+def test_list_repos_with_output_paths(file_config_files, capsys):
+    assert not main((
+        '--config-filename', str(file_config_files.cfg),
+        '--output-paths',
+    ))
+    out, _ = capsys.readouterr()
+    assert out == '{}\n{}\n'.format(
+        file_config_files.output_dir.join('repo1'),
+        file_config_files.output_dir.join('repo2'),
+    )

pip install -e .[dev]
parse_log_pytest
requirements.txt
3.9
requirements-dev.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
-e git+https://github.com/asottile/all-repos.git@e1d19b3cd27645e16d87be83afa81dd70b83096e#egg=all_repos
cffi==1.17.1
cfgv==3.4.0
coverage==7.8.0
distlib==0.3.9
exceptiongroup==1.2.2
filelock==3.18.0
flake8==7.2.0
identify==2.6.9
iniconfig==2.1.0
mccabe==0.7.0
nodeenv==1.9.1
packaging==24.2
platformdirs==4.3.7
pluggy==1.5.0
pre_commit==4.2.0
pycodestyle==2.13.0
pycparser==2.22
pyflakes==3.3.1
pytest==8.3.5
pytest-env==1.1.5
PyYAML==6.0.2
setup-py-upgrade==1.3.1
setup_cfg_fmt==2.7.0
tomli==2.2.1
ukkonen==1.0.1
virtualenv==20.29.3

name: all-repos
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=25.0=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - cffi==1.17.1
      - cfgv==3.4.0
      - coverage==7.8.0
      - distlib==0.3.9
      - exceptiongroup==1.2.2
      - filelock==3.18.0
      - flake8==7.2.0
      - identify==2.6.9
      - iniconfig==2.1.0
      - mccabe==0.7.0
      - nodeenv==1.9.1
      - packaging==24.2
      - platformdirs==4.3.7
      - pluggy==1.5.0
      - pre-commit==4.2.0
      - pycodestyle==2.13.0
      - pycparser==2.22
      - pyflakes==3.3.1
      - pytest==8.3.5
      - pytest-env==1.1.5
      - pyyaml==6.0.2
      - setup-cfg-fmt==2.7.0
      - setup-py-upgrade==1.3.1
      - tomli==2.2.1
      - ukkonen==1.0.1
      - virtualenv==20.29.3
prefix: /opt/conda/envs/all-repos

tests/list_repos_test.py::test_list_repos_with_output_paths
tests/list_repos_test.py::test_list_repos_main
all_repos/list_repos.py
all_repos/list_repos.py