vcspull 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 export structured data for automation.

Command

usage: vcspull list [-h] [-f FILE] [-w DIR] [--tree] [--json] [--ndjson]
                    [--color {auto,always,never}]
                    [pattern ...]

Positional Arguments

pattern

filter repositories by name pattern (supports fnmatch)

Named Arguments

-f, --file

path to config file (default: ~/.vcspull.yaml or ./.vcspull.yaml)

-w, --workspace, --workspace-root

filter by workspace root directory

--tree

display repositories grouped by workspace root

Default: False

--json

output as JSON

Default: False

--ndjson

output as NDJSON (one JSON per line)

Default: False

--color

Possible choices: auto, always, never

when to use colors (default: auto)

Default: 'auto'

Basic usage

List all configured repositories:

$ vcspull list
• tiktoken → ~/study/ai/tiktoken
• GeographicLib → ~/study/c++/GeographicLib
• flask → ~/code/flask

Filtering repositories

Filter repositories using fnmatch-style patterns:

$ vcspull list 'flask*'
• flask → ~/code/flask
• flask-sqlalchemy → ~/code/flask-sqlalchemy

Multiple patterns are supported:

$ vcspull list django flask

Tree view

Group repositories by workspace root with --tree:

$ vcspull list --tree

~/study/ai/
  • tiktoken → ~/study/ai/tiktoken

~/study/c++/
  • GeographicLib → ~/study/c++/GeographicLib
  • anax → ~/study/c++/anax

~/code/
  • flask → ~/code/flask

JSON output

Export repository information as JSON for automation and tooling:

$ vcspull list --json

Output format:

[
  {
    "name": "tiktoken",
    "url": "git+https://github.com/openai/tiktoken.git",
    "path": "~/study/ai/tiktoken",
    "workspace_root": "~/study/ai/"
  },
  {
    "name": "flask",
    "url": "git+https://github.com/pallets/flask.git",
    "path": "~/code/flask",
    "workspace_root": "~/code/"
  }
]

The workspace_root field shows which configuration section the repository belongs to, matching the keys in your .vcspull.yaml file.

Filter JSON output with tools like jq:

$ vcspull list --json | jq '.[] | select(.workspace_root | contains("study"))'

NDJSON output

For streaming and line-oriented processing, use --ndjson:

$ vcspull list --ndjson
{"name":"tiktoken","url":"git+https://github.com/openai/tiktoken.git","path":"~/study/ai/tiktoken","workspace_root":"~/study/ai/"}
{"name":"flask","url":"git+https://github.com/pallets/flask.git","path":"~/code/flask","workspace_root":"~/code/"}

Each line is a complete JSON object, making it ideal for:

  • Processing large configurations line-by-line

  • Streaming data to other tools

  • Parsing with simple line-based tools

$ vcspull list --ndjson | grep 'study' | jq -r '.name'

Choosing configuration files

By default, vcspull searches for config files in standard locations (~/.vcspull.yaml, ./.vcspull.yaml, and XDG config directories).

Specify a custom config file with -f/--file:

$ vcspull list -f ~/projects/.vcspull.yaml

Workspace filtering

Filter repositories by workspace root with -w/--workspace/--workspace-root:

$ vcspull list -w ~/code/
• flask → ~/code/flask
• requests → ~/code/requests

Globbing is supported, so you can target multiple related workspaces:

$ vcspull list --workspace '*/work/*'

The workspace filter combines with pattern filters and structured output flags, allowing you to export subsets of your configuration quickly.

Color output

Control colored output with --color:

  • --color auto (default): Use colors if outputting to a terminal

  • --color always: Always use colors

  • --color never: Never use colors

The NO_COLOR environment variable is also respected.