vcstool
vcstool provides a command line tool to invoke vcs commands on multiple repositories.
Decision gist · record as of 2026-08-14
Yes, if you actively manage multiple version-controlled repositories and want a lightweight command-line tool to orchestrate them. The low install friction and permissive license make it easy to try. However, be aware that the package is dormant (last release 2021-08-09) and receives no active maintenance—it works for its stated purpose but may not evolve with newer VCS features or Python versions. Suitable for stable, long-term workflows; less suitable if you need active development or modern tooling integration.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires native VCS clients (git, hg, svn, bzr) to be installed on the system; vcstool is a wrapper that invokes them, not a reimplementation.
- Installation is straightforward with low friction—just two runtime dependencies (PyYAML and setuptools).
- However, the package is dormant: last release was 2021-08-09, with no recent commits despite an active repository.
License · maintenance · safety
Apache License, Version 2.0 (permissive) — Licensed under Apache License, Version 2.0 (permissive). You can use, modify, and distribute this package freely in commercial and private projects with minimal restrictions.
last release 2021-08-09 (1831 days) · last repo commit 2024-07-17 · 501 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 121,050 downloads/mo, #11,998 on PyPI
Alternatives
Verify before relying
pip install vcstool
vcs status /path/to/repos
vcs export > my.repos
vcs import < my.repos- Whether Python 3.5+ is actually required (requires_python field is empty in metadata)
- Current compatibility with modern Python versions given the dormant maintenance status
- Whether the tool still works reliably with current versions of Git, Mercurial, Subversion, and Bazaar
What it is and what it does
vcstool is a wrapper tool that lets you run version control commands across multiple repositories in one operation. Instead of cd-ing into each repo and running git/hg/svn/bzr individually, you point vcstool at a directory tree, and it recursively discovers all supported repositories and executes your command on each one in parallel (by default, or sequentially if needed). It also provides export/import functionality using YAML files to capture repository metadata—type, URL, and version—so you can reproduce a set of repos elsewhere or share a workspace definition.
The tool depends on PyYAML and setuptools for installation. It's designed to be lightweight and stateless, relying entirely on the native VCS clients already installed on your system rather than reimplementing version control logic. It supports Git, Mercurial, Subversion, and Bazaar, and can also fetch and unpack tarballs or zip files during import.
Use it for
- Manage a workspace of many Git/Hg/Svn repositories and run status, diff, or log across all of them at once.
- Export a snapshot of multiple repositories' URLs and versions to a YAML file for reproducible setup on another machine.
- Import a previously exported repository manifest to clone and check out all repos to their recorded versions.
- Run custom VCS commands (e.g., git log) on a filtered subset of repositories by type.
- Validate a hand-written or exported repository manifest file before importing it.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you actively manage multiple version-controlled repositories and want a lightweight command-line tool to orchestrate them.
The low install friction and permissive license make it easy to try. However, be aware that the package is dormant (last release 2021-08-09) and receives no active maintenance—it works for its stated purpose but may not evolve with newer VCS features or Python versions. Suitable for stable, long-term workflows; less suitable if you need active development or modern tooling integration.
Install
vcstool on PyPI
Before you install
Installation is straightforward with low friction—just two runtime dependencies (PyYAML and setuptools). However, the package is dormant: last release was 2021-08-09, with no recent commits despite an active repository. It remains functional but receives no active maintenance.
Requires native VCS clients (git, hg, svn, bzr) to be installed on the system; vcstool is a wrapper that invokes them, not a reimplementation.
License in practice
Licensed under Apache License, Version 2.0 (permissive). You can use, modify, and distribute this package freely in commercial and private projects with minimal restrictions.
Quickstart
pip install vcstool
vcs status /path/to/repos
vcs export > my.repos
vcs import < my.repos
Verify before relying
- Whether Python 3.5+ is actually required (requires_python field is empty in metadata)
- Current compatibility with modern Python versions given the dormant maintenance status
- Whether the tool still works reliably with current versions of Git, Mercurial, Subversion, and Bazaar
Package facts
| License | Apache License, Version 2.0 permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 2 packagesPyYAMLsetuptools |
| Maintenance | Dormant 1,831 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 121,050 / month, #11,998 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Intended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseProgramming Language :: PythonTopic :: Software Development :: Version ControlTopic :: Utilities |
Evidence: vcstool-0.3.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “multi-repo version control management”
- vcstoolvcstool is a command-line tool that manages multiple version control…
- metagit-cliMetagit provides cross-repository awareness and management for…
- westWest is a meta-tool for managing multiple Git repositories under a…
Give your agent the search over MCP, or paste the wish link into any chat.
More Utilities packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Detects and normalizes text encoding from unknown or ambiguous sources, supporting all IANA character sets that Python's core library provides codecs for, with the ability to register custom codecs.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Pygments is a syntax highlighter that colorizes source code and text in over 500 languages and formats, outputting to HTML, LaTeX, RTF, SVG, images, or ANSI terminal sequences.
Install it if you need to display or transform source code.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
See also mercurial · svn · west · hatch-vcs · vcs-versioning · cwltool · dvc · versioneer · setuptools-scm-git-archive · versioneer-518