# vcspull > CLI workspace manager for VCS repos. Sync, organize, and manage multiple git (and hg/svn) repositories from a single YAML config. ## Documentation - [Quickstart](https://vcspull.git-pull.com/quickstart/): For latest official version: - [CLI Reference](https://vcspull.git-pull.com/cli/): Pull / clone repositories from config. - [Configuration](https://vcspull.git-pull.com/configuration/): Import repos from forges and generate config automatically. - [API Reference](https://vcspull.git-pull.com/api/): Configuration loading and repo extraction. - [Internals](https://vcspull.git-pull.com/internals/): Internal module reference for contributors and plugin authors. - [Project](https://vcspull.git-pull.com/project/): Information for contributors and maintainers. - [Changelog](https://vcspull.git-pull.com/history/): To install the unreleased vcspull version, see developmental releases. - [Migration notes](https://vcspull.git-pull.com/migration/): Migration and deprecation notes for vcspull are here, see changelog as well. ## Documentation - [Config - vcspull.config](https://vcspull.git-pull.com/api/config/): Configuration functionality for vcspull. - [Exceptions - vcspull.exc](https://vcspull.git-pull.com/api/exc/): Exceptions for vcspull. - [Logging - vcspull.log](https://vcspull.git-pull.com/api/log/): Log utilities for formatting CLI output in vcspull. - [Typings - vcspull.types](https://vcspull.git-pull.com/api/types/): Typings for vcspull. - [Utilities - vcspull.util](https://vcspull.git-pull.com/api/util/): Utility functions for vcspull. - [Validation - vcspull.validator](https://vcspull.git-pull.com/api/validator/): Validation of vcspull configuration file. - [vcspull add](https://vcspull.git-pull.com/cli/add/): The vcspull add command registers a repository in your configuration by pointing vcspull at a checkout on disk. The command inspects the directory, merges duplicate workspace roots by default, and ... - [Completions](https://vcspull.git-pull.com/cli/completion/): Provisional support for completions in vcspull 1.15+ are powered by shtab. This must be installed separately, as it’s not currently bundled with vcspull. - [vcspull discover](https://vcspull.git-pull.com/cli/discover/): The vcspull discover command scans directories for existing Git repositories and adds them to your vcspull configuration. This is ideal for importing existing workspaces or migrating from other tools. - [vcspull fmt](https://vcspull.git-pull.com/cli/fmt/): vcspull fmt normalizes configuration files so directory keys and repository entries stay consistent. By default the formatter prints the proposed changes to stdout. Apply the updates in place with ... - [vcspull import codeberg](https://vcspull.git-pull.com/cli/import/codeberg/): Import repositories from Codeberg. - [vcspull import codecommit](https://vcspull.git-pull.com/cli/import/codecommit/): Import repositories from AWS CodeCommit. - [vcspull import forgejo](https://vcspull.git-pull.com/cli/import/forgejo/): Import repositories from a self-hosted Forgejo instance. - [vcspull import gitea](https://vcspull.git-pull.com/cli/import/gitea/): Import repositories from a self-hosted Gitea instance. - [vcspull import github](https://vcspull.git-pull.com/cli/import/github/): Import repositories from GitHub or GitHub Enterprise. - [vcspull import gitlab](https://vcspull.git-pull.com/cli/import/gitlab/): Import repositories from GitLab or a self-hosted GitLab instance. - [vcspull import](https://vcspull.git-pull.com/cli/import/): The vcspull import command bulk-imports repositories from remote hosting services into your vcspull configuration. It connects to the service API, fetches a list of repositories, and writes them to... - [vcspull list](https://vcspull.git-pull.com/cli/list/): The vcspull list command displays configured repositories from your vcspull configuration files. Use this introspection command to verify your configuration, filter repositories by patterns, and ex... - [vcspull search](https://vcspull.git-pull.com/cli/search/): The vcspull search command looks up repositories across your vcspull configuration with an rg-like query syntax. Queries are regex by default, can scope to specific fields, and can emit structured ... - [vcspull status](https://vcspull.git-pull.com/cli/status/): The vcspull status command checks the health of configured repositories, showing which repositories exist on disk, which are missing, and their Git status. This introspection command helps verify y... - [vcspull sync](https://vcspull.git-pull.com/cli/sync/): The vcspull sync command clones and updates repositories defined in your vcspull configuration. It’s the primary command for keeping your local workspace synchronized with remote repositories. - [vcspull worktree](https://vcspull.git-pull.com/cli/worktree/): The vcspull worktree command manages git worktrees declaratively from your vcspull configuration. Instead of manually running git worktree add for each branch or tag, you declare the desired worktr... - [vcspull worktree list](https://vcspull.git-pull.com/cli/worktree/list/): Show configured worktrees and their planned status without making changes. - [vcspull worktree prune](https://vcspull.git-pull.com/cli/worktree/prune/): Remove worktrees that are no longer in your configuration. - [vcspull worktree sync](https://vcspull.git-pull.com/cli/worktree/sync/): Create or update worktrees to match configuration. - [Config generation](https://vcspull.git-pull.com/configuration/generation/): The vcspull import command can generate configuration by fetching repositories from remote services. See cli-import for details. - [vcspull add - vcspull.cli.add](https://vcspull.git-pull.com/internals/api/cli/add/): Add single repository functionality for vcspull. - [vcspull discover - vcspull.cli.discover](https://vcspull.git-pull.com/internals/api/cli/discover/): Discover repositories from filesystem for vcspull. - [vcspull fmt - vcspull.cli.fmt](https://vcspull.git-pull.com/internals/api/cli/fmt/): Format vcspull configuration files. - [vcspull import - vcspull.cli.import_cmd](https://vcspull.git-pull.com/internals/api/cli/import/): vcspull import subcommand package. - [CLI](https://vcspull.git-pull.com/internals/api/cli/): CLI utilities for vcspull. - [vcspull list - vcspull.cli.list](https://vcspull.git-pull.com/internals/api/cli/list/): List repositories functionality for vcspull. - [vcspull search - vcspull.cli.search](https://vcspull.git-pull.com/internals/api/cli/search/): … automodule:: vcspull.cli.search - [vcspull status - vcspull.cli.status](https://vcspull.git-pull.com/internals/api/cli/status/): Repository status checking functionality for vcspull. - [vcspull sync - vcspull.cli.sync](https://vcspull.git-pull.com/internals/api/cli/sync/): Synchronization functionality for vcspull. - [vcspull worktree - vcspull.cli.worktree](https://vcspull.git-pull.com/internals/api/cli/worktree/): Worktree management CLI for vcspull. - [Config reader - vcspull._internal.config_reader](https://vcspull.git-pull.com/internals/api/config_reader/) - [Internal Python API](https://vcspull.git-pull.com/internals/api/) - [PrivatePath – vcspull._internal.private_path](https://vcspull.git-pull.com/internals/api/private_path/): PrivatePath subclasses pathlib.Path and normalizes every textual rendering (str()/repr()) so the current user’s home directory is collapsed to ~. The class behaves exactly like the standard path ob... - [Worktree sync - vcspull._internal.worktree_sync](https://vcspull.git-pull.com/internals/api/worktree_sync/): Core worktree synchronization logic for vcspull. - [Code Style](https://vcspull.git-pull.com/project/code-style/): vcspull uses ruff for formatting and linting. - [Development](https://vcspull.git-pull.com/project/contributing/): Developing python projects associated with git-pull.com all use the same structure and workflow. At a later point these will refer to that website for documentation. - [Releasing](https://vcspull.git-pull.com/project/releasing/): vcspull follows semantic versioning. Internal APIs (everything under _internal/) carry no stability guarantee.