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)
--debug Enable debug output to stderr
--debug-file [file] Enable debug output to file (auto-generate temp if no path given)
# 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

Update matching devcontainer.json files by writing repository permission entries under customizations.codespaces.repositories.

repos codespace

Options

Flag Description
-f <file> Use a different list file (default: repos.list)
-d <path> Path relative to .devcontainer/ (repeatable)
--all Update all devcontainer.json files found under .devcontainer/
--permissions <level> Codespaces permission level (default, all, or contents)
--dry-run Preview file updates without writing changes
--debug Enable debug output to stderr
--debug-file [file] Enable debug output to file (auto-generate temp if no path given)

Permission levels:

  • default: actions/contents write, packages read, workflows write
  • all: write-all
  • contents: contents write only
# Use a custom list file
repos codespace -f my-repos.list

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

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

# Update all devcontainer files under .devcontainer/
repos codespace --all

# Preview without changing files
repos codespace --dry-run

R and Python APIs

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

R package
Python package