VS Code Integration

repos provides two commands for IDE integration — generating a multi-root workspace file and configuring GitHub Codespaces authentication.

repos workspace works with VS Code and any other IDE that supports the VS Code workspace format (such as Positron). repos codespace is specific to GitHub Codespaces and VS Code.

repos workspace

Generate (or refresh) the entire-project.code-workspace file in your project directory. Open it to load all cloned repositories as a multi-root workspace:

repos workspace

Once the file is written, open it in your IDE:

code entire-project.code-workspace      # VS Code
positron entire-project.code-workspace  # Positron

Options

Flag Description
-f <file> Use a different list file (default: repos.list)
# Use a custom list file
repos workspace -f my-repos.list

Repository Layout

The workspace file reflects the repository layout in the parent directory:

workspace/
├── my-project/          # your project (contains repos.list)
├── backend/             # cloned from myorg/backend
├── frontend-develop/    # cloned from myorg/frontend@develop
└── docs/                # cloned from myorg/docs

repos codespace

Inject the GH_TOKEN Codespaces secret into every cloned repository that has a devcontainer.json. repos codespaces is an alias for repos codespace.

repos codespace

Options

Flag Description
-f <file> Use a different list file (default: repos.list)
-d <path> Path to a devcontainer.json file (repeatable)
--permissions <all\|contents> Codespaces permission level
-t <tool> Force tool used for JSON processing (jq or python)
# Use a custom list file
repos codespace -f my-repos.list

# Specify a devcontainer.json path
repos codespace -d .devcontainer/devcontainer.json

# Multiple devcontainer paths
repos codespace -d path1/devcontainer.json -d path2/devcontainer.json

GitHub Authentication

repos codespace requires a GitHub token with Codespaces permissions:

export GH_TOKEN="your_personal_access_token"
# or
gh auth login

R and Python APIs

For the R or Python API, see the language-specific wrapper pages:

R package
Python package